【发布时间】:2008-12-18 07:46:33
【问题描述】:
我想在我的网站上显示文档。服务器托管在 Debian 机器上。我在想我可以允许上传支持文档,然后使用 Linux 应用程序或 PHP 应用程序将文档转换为 PDF 并在 HTML 页面中显示。是否有任何 API 或二进制文件允许我这样做?
【问题讨论】:
我想在我的网站上显示文档。服务器托管在 Debian 机器上。我在想我可以允许上传支持文档,然后使用 Linux 应用程序或 PHP 应用程序将文档转换为 PDF 并在 HTML 页面中显示。是否有任何 API 或二进制文件允许我这样做?
【问题讨论】:
如果是办公文档,一种选择是在无头模式下使用 openoffice。请参阅此处以获取显示如何操作的 python 脚本:http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html
如果它是任何其他类型的文档(例如您自己的 XML 文档),那么您需要做更多的工作。我使用 XSL 定义了文档格式的翻译,然后使用文档工具生成 PDF(和各种其他格式),取得了一些成功。如果您需要更精确地控制事物的外观,也可以使用 XSL 直接转至 PDF。
【讨论】:
您可以创建 PDF 打印到文件打印机,并通过 lpr 将任意数量的文档发送到打印机。
function lpr($STR,$PRN,$TITLE) {
$prn=(isset($PRN) && strlen($PRN))?"$PRN":C_DEFAULTPRN ;
$title=(isset($TITLE))?"$TITLE":"stdin" . rand() ;
$CMDLINE="lpr -P $prn -T $title";
$pipe=popen("$CMDLINE" , 'w');
if (!$pipe) {print "pipe failed."; return ""; }
fwrite($pipe,$STR);
pclose($pipe);
} // lpr()
//open document...
//read into $source
lpr($source, "PDF", $title); //print to device
exit();
HTMLDOC 还可以将您的 HTML 转换为 PDF。
【讨论】:
一个名为 phpLiveDocx 的相对较新的项目可以将 DOC 转换为 PDF(除了许多其他格式)。它是一个基于 SOAP 的服务,可以完全免费使用。有关使用 phpLiveDocx 将 DOC 转换为 PDF 的示例代码,请查看最近的博客文章:
http://www.phplivedocx.org/2009/02/06/convert-doc-to-pdf-in-php/
当然,由于它是基于 SOAP 的,它可以在所有支持 PHP 的操作系统上使用 :-)
【讨论】:
另一种方法是生成一个 HTML 文件,其中包含您需要的 pdf 文件。然后使用 htmldoc 将其转换为 PDF。
http://www.easysw.com/htmldoc/
这实际上比直接操作 PDF 文档中的对象要容易得多。
【讨论】: