如何在PHP中将PDF版本1.5转换为1.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);
}
?>