Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux/PHP堆栈上将文档转换为PDF?_Php_Linux_Pdf - Fatal编程技术网

如何在Linux/PHP堆栈上将文档转换为PDF?

如何在Linux/PHP堆栈上将文档转换为PDF?,php,linux,pdf,Php,Linux,Pdf,我想在我的网站上显示文档。服务器托管在Debian机器上。我想我可以允许上传支持文档,然后使用Linux应用程序或PHP应用程序将文档转换为PDF并在HTML页面中显示。是否有任何API或二进制文件允许我这样做?如果它是一个office文档,一个选项是在无头模式下使用openoffice。请参见此处的python脚本,该脚本演示了如何: 如果它是任何其他类型的文档(例如,您自己的XML文档),那么您需要做更多的工作。我已经成功地使用XSL定义了到docbook格式的转换,然后使用docbook工

我想在我的网站上显示文档。服务器托管在Debian机器上。我想我可以允许上传支持文档,然后使用Linux应用程序或PHP应用程序将文档转换为PDF并在HTML页面中显示。是否有任何API或二进制文件允许我这样做?

如果它是一个office文档,一个选项是在无头模式下使用openoffice。请参见此处的python脚本,该脚本演示了如何:


如果它是任何其他类型的文档(例如,您自己的XML文档),那么您需要做更多的工作。我已经成功地使用XSL定义了到docbook格式的转换,然后使用docbook工具生成PDF(以及各种其他格式)。如果您需要更精确地控制事物的外观,还可以使用XSL直接转到PDF

Pear有一个PHP-PDF类。请参阅:


另一种方法是生成一个HTML文件,其中包含pdf中所需的内容。然后使用htmldoc将其转换为PDF


实际上,这比直接操作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();

还可以将HTML转换为PDF。

一个相对较新的项目,称为phpLiveDocx,可以将文档转换为PDF(以及许多其他格式)。它是一个基于SOAP的服务,可以完全免费使用。有关使用phpLiveDocx将文档转换为PDF的示例代码,请参阅最近的这篇博文:

当然,由于它是基于SOAP的,所以可以在所有支持PHP的操作系统上使用:-)