如何在PHP中将PDF版本1.5转换为1.4版

时间:2012-06-13 14:56:17

标签: php pdf-generation

如何在PHP中将PDF版本1.5转换为1.4版本?有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:11)

我有类似的要求,发现Ghostscript可以修改PDF版本。文档在这里:http://ghostscript.com/doc/current/Use.htm

但是,我没有在文档中找到有关dCompatibilityLevel选项的具体内容。相反,我发现这篇文章证明了它的用法:http://rohieb.wordpress.com/2012/06/09/use-ghostscript-to-convert-pdf-files/

这是命令:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH 
  -sOutputFile=new-pdf1.5.pdf original.pdf

答案 1 :(得分:3)

您可以轻松地将PDF版本1.5转换为1.4。目前我正在处理我需要转换pdf版本的相同情况。在我的情况下,我注意到从" dompdf"生成的PDF库是版本1.3,我使用的是最新的mozilla firefox但是当我尝试阅读我的PDF时,mozilla仍显示黑屏。 (我的多页PDF的任何页面上的黑屏,不是全部)。

所以当我的dompdf生成PDF版本1.3时,我会将其转换为1.4版本,因为我的mozilla firefox和所有浏览器都可以使用1.4。

您可以使用两种方式转换PDF版本。

1)使用ghostscript命令行工具

<?php
exec('gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH 
  -sOutputFile=new.pdf old.pdf')
?>

2。使用github提供的PHP库。 从here

下载

我正在研究这个加密pdf文件的工具。它几乎完成并准备好使用。 Here

答案 2 :(得分:2)

我有同样的问题多年,没有重新安装任何东西,有一个在线转换器:https://docupub.com/pdfconvert/

答案 3 :(得分:1)

这是一个可以正常工作的完整脚本,不是完美的而是简单的。 脚本从c:\ temp_in \读取所有pdf文件,将其转换并将其保存为1.4版,位于文件夹c:\ temp_done中。幻影脚本的路径遇到了一些麻烦,因此在shell_exec中完全声明了路径。还通过实现“ 2>&1”在脚本中添加了一些调试功能。 (显然,需要安装Ghost脚本。)

<?php
if ($handle = opendir("c:/temp_in/")) {
while (false !== ($file = readdir($handle))) {
    if ('.' === $file) continue;
    if ('..' === $file) continue;

    $result = shell_exec('"C:\Program Files\gs\gs9.27\bin\gswin64c" -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -sOutputFile="c:\temp_done\\'.$file.'" "c:\temp_in\\'.$file.'" 2>&1');
    echo $result;

}
closedir($handle);
}
?>