【问题标题】:PHP LaTeX to PDF Conversion/Compiling [closed]PHP LaTeX 到 PDF 的转换/编译 [关闭]
【发布时间】:2012-01-24 12:32:32
【问题描述】:

我已经广泛搜索以找到一个基于 PHP 的工具来将 LaTeX 转换为 PDF,但没有成功。我知道 LaTeX 在服务器端运行,但是我仍然需要基于 PHP 的命令进程才能使用 LaTeX 生成所述 PDF 文件。

编辑

此外,在服务器上安装二进制文件、库或工具是禁止的。我可以使用的工具是 PHP 及其内置的功能。任何可以将 LaTex 转换为 PDF 的类或 PHP 工具都非常有用。

任何指导将不胜感激。

【问题讨论】:

  • LaTeX 不会被转换成 PDF,而是被编译。只需在服务器端的临时文件上使用pdflatex 编译器..
  • tex.stackexchange.com 存在;你可能想在那里问。

标签: php pdf latex tex


【解决方案1】:

我刚刚安装了包 texlive-binaries 并使用带有 pdflatex 命令的 shell exec 从 (La)TeX 文件生成 PDF:

shell_exec("/usr/bin/pdflatex --interaction batchmode $filename");

我知道这不是您所要求的,但我不知道 php 库与现有的乳胶编译器一样完整。

为什么还要重新发明轮子?

更新:当你有足够的空间时,安装textlive-full 而不是texlive-binaries。这将安装所有可用的包、字体等,并避免您因文档呈现错误而头疼。

【讨论】:

  • 如何在窗口和 linux 服务器上安装 texlive-binaries?
  • 在 debian linux 上,您只需执行 sudo apt-get install texlive-binaries。在 Windows 系统上,您按照 texlive website 上的说明进行操作
  • 我无法在我的服务器环境中完成这样的任务。我可以使用的工具是 PHP 及其具有的功能。除非有什么 Class 或 PHP 工具可以将 LaTex 转换为 PDF,否则恐怕没有任何帮助。
  • 使用 shell_exec() 是一个安全问题。请注意。
  • @josh122a123 不,不是。传递未经过滤的用户输入是您正在考虑的安全问题。这同样适用于数据库查询、所有类型的文件操作或任何其他类型的特权访问,即后端 API 调用。使用 shell_exec() 本身并不是一个安全问题。
【解决方案2】:

如果您无法更改服务器设置以安装 LaTeX 的服务器包,则您无法将 LaTeX 文件转换为 PDF...

但是您可以检查什么以在没有 LaTeX 的情况下直接转换为 PDF,但这取决于您想要完成什么?它可能值得一看...fpdf...

【讨论】:

  • 我已经研究了 fpdf,正如我之前的问题所看到的那样:stackoverflow.com/questions/8478720/… 我可以编写一个脚本来将 XML 转换为 LaTeX,我只是试图找到一种输出某些特征 LateX 的方法碰巧提供。
  • 所以现在我想到了一个问题:使用 LaTeX 的原因是什么?你需要 LaTeX 的哪些功能?
  • LaTex 有一个内置的Screenplay 类,正如@Blender 所指出的那样,它具有某些难以重新创建的功能。 LaTeX 提供了一个更简单的解决方案(如我之前的问题中所述)。
  • 好的..我知道 LaTeX 所以你需要在服务器上安装一个 LaTeX 系统才能使用它。这才是重点。似乎没有办法绕过它。
【解决方案3】:

这是我的例子: 名称:phplatex.php

<?php
$data = shell_exec('/Library/TeX/texbin/pdflatex --interaction=nonstopmode -output-directory=/Users/arico/a/destino /Users/arico/a/fuente/prueba.tex');
echo ('Latex: ' . $data . '');
?>

pdflatex 可执行文件的路径: /图书馆/TeX/texbin/pdflatex

pdf中输出文件的路径:(您需要写入权限) -output-directory=/Users/arico/a/destino

latex 中源文件的路径: /Users/arico/a/fuente/prueba.tex

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2012-10-01
    • 2015-11-10
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 2010-11-18
    • 2011-02-24
    • 2010-11-27
    相关资源
    最近更新 更多