将可搜索PDF转换为不可搜索PDF
我有一个PDF是可搜索的,我需要把它转换成一个不可搜索的 我尝试使用Ghostscript并将其改为JPEG,然后再改回PDF,这样做很有效,但文件大小太大,无法接受 我尝试使用Ghostscript先将PDF转换为PS,然后再转换为PDF,这也很管用,但质量还不够好将可搜索PDF转换为不可搜索PDF,pdf,ghostscript,Pdf,Ghostscript,我有一个PDF是可搜索的,我需要把它转换成一个不可搜索的 我尝试使用Ghostscript并将其改为JPEG,然后再改回PDF,这样做很有效,但文件大小太大,无法接受 我尝试使用Ghostscript先将PDF转换为PS,然后再转换为PDF,这也很管用,但质量还不够好 gswin32.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pswrite -r1000 -sOutputFile=out.ps in.pdf gswin32.exe -q -dNOPAUS
gswin32.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pswrite -r1000 -sOutputFile=out.ps in.pdf
gswin32.exe -q -dNOPAUSE -dBATCH -dSAFER -dDEVICEWIDTHPOINTS=596 -dDEVICEHEIGHTPOINTS=834 -dPDFSETTINGS=/ebook -sDEVICE=pdfwrite -sOutputFile=out.pdf out.ps
有没有一种方法可以提高PDF的质量
或者,有没有更简单的方法将可搜索的PDF转换为不可搜索的PDF?从可搜索的矢量PDF生成不可搜索的矢量PDF的可能方法是
pdftk file.pdf突发
for f in *.pdf; do pdftocairo -svg $f; done
pdftk *.pdf cat output out.pdf
我认为转换成jpg这样的图像是一种可行的方法,它可能值得转换成am图像,优化/缩小图像的大小,然后用这些图像创建PDF?您可以使用Ghostscript来实现这一点。您需要两个步骤:
-dNOCACHE
参数输入:
gs -o somepdf.ps -dNOCACHE -sDEVICE=pswrite somepdf.pdf
这将导致输出设备pdfwrite
、ps2write
和eps2write
“将字形“展平”为“基本”标记操作(而不是将字体写入输出)”
这意味着可以避免上述两个步骤,只需一个命令即可实现所需的结果:
-dNoOutputFonts
gs -o somepdf-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite somepdf.pdf
注意事项:我已经使用基于当前Git源代码的自编Ghostscript对一些输入文件进行了测试。它在每种情况下都能完美地工作 依我拙见,我建议先在postscript中转换:
gs-dBATCH-dNOPAUSE-dNOCACHE-dSAFER-sDEVICE=pswrite-sOutputFile=output.ps input.pdf
,然后将生成的postscript传递给ps2pdf。如果您的页面具有自定义页面大小(例如17x24 cm),则需要将-g开关传递到ps2pdf,例如,对于17x24 cm页面大小:ps2pdf-g4820x6800 input.ps output.pdf
;换句话说,查看点的页面大小(使用pdfinfo),然后将两个维度乘以10@Dingo:如果使用最新的GS版本,-o out.ps
与-dBATCH-dNOPAUSE-soutput file=out.ps
相同。此外,GS的最新版本会自动将输出文件(PostScript)的页面大小设置为与输入文件(PDF)相同的大小。如果您想安全起见,可以使用-gNNNxMMM
对其进行额外设置,而不会出现问题。在大多数情况下,我不喜欢ps2pdf
,因为它是一个Ghostscript命令行的包装器那么,你的最新推荐和我的有什么不同呢?你是对的。我以前没有仔细阅读过。对不起,谢谢你给我的好建议!在我的gentoo系统上,它也与gs-o somepdf-with-outlines.pdf-dNoOutputFonts-sDEVICE=pdfwrite somepdf.pdf配合得很好。9.10太旧了,但9.15可以很好地转换为曲线。也许一步解决方案中有一些亮点:)步骤4的for可以与以下命令一起使用:$for*.svg中的f;dorasterizer-m应用程序/pdf$f;完成
。PS:我不太确定这两个工具是如何关联或重叠的,但是……扩大原始问题的范围,这将是裁剪结果文件的一种方法:
-dNoOutputFonts
gs -o somepdf-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite somepdf.pdf