我使用 Mac OS X 雪豹。我有一个包含表单域、注释和图章的 PDF。我想冻结(或“展平”)该 PDF,以便无法更改表单字段并且注释/图章不再可编辑。由于我实际上有很多这样的 PDF,我想在命令行上自动执行此操作。
我尝试/考虑过的一些事情,以及它们的成功程度:
pdftk与flatten选项一起使用。但这只会使表单字段变平,而不是邮票和其他注释。cupsfilter它可以从多种文件格式创建 PDF。像pdftk这样只压平了表单字段。cups-pdf挂接到Mac的打印服务器,并保存为PDF文件,而不是打印。我使用了macports 版本。生成的文件是扁平的但很大。我在一个 8MB 的文件上试过这个;扁平化的 PDF 是 358MB!也许这可以与Ubuntu Tip:Howto reduce PDF file size from command line 中的 ghostscript 调用结合使用。任何其他建议将不胜感激。
小智 11
尝试使用pdf2ps和ps2pdf连续。这有点麻烦,但它帮助我将 30MB 的文档减少到 17MB。没有我想要的那么多,但仍然更好。我从一个朋友那里得到了这个想法,他使用这种方法来摆脱 pdf 上的密码权限。
pdf2ps your_pdf_file.pdf your_pdf_file.ps
ps2pdf your_pdf_file.ps your_pdf_file_from_ps.pdf
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
编辑2020-07-25 这曾经有效但不再有效。现在这些命令继续保留 PDF 图层。
所以这就是我最近一直在使用的。我认为它在功能上与 做同样的事情pdf2ps file.pdf - | ps2pdf - file_flat.pdf,但它似乎更适合我。
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<newfile> <oldfile>
Run Code Online (Sandbox Code Playgroud)
使用 gs 或 pdf2ps 后跟 ps2pdf 将产生一个多层PDF,其内容在以原始形式存在的注释下。您可以通过使用全选,然后复制,然后粘贴到 TextEdit 窗口(在富文本模式下)来验证预览中的此缺陷。例如,您将在编辑注释下看到文本或图形。如果您在法律上需要从输出中删除该内容,这显然非常糟糕。
ImageMagick 可以使用以下命令生成具有每页光栅的可配置质量、多页、单层平展 PDF:
convert -density 150 document_original.pdf document_flat.pdf
Run Code Online (Sandbox Code Playgroud)
此命令光栅化 document_original.pdf,以 150 DPI 制作每个页面的基于像素的图像,并将结果输出为 document_flat.pdf。
由于光栅化,它会生成一个不可缩放(缩放,你会看到文本或原始矢量图像变成像素化)PDF。除非原始文件具有非常复杂的矢量内容,例如百万点散点图,否则它可能会具有更大的文件大小。
通过更改密度,您可以用更大的文件大小换取更高分辨率的输出。
所有文本都将转换为每个页面图像中的原始像素。文本和矢量图受到的影响最大,因此请尝试使用 DPI,直到获得可用的输出文件。
| 归档时间: |
|
| 查看次数: |
17889 次 |
| 最近记录: |