【问题标题】:Cropping a PDF / Adding crop box using Ghostscript使用 Ghostscript 裁剪 PDF/添加裁剪框
【发布时间】:2011-08-13 11:03:17
【问题描述】:

我有几百个 PDF 需要裁剪 - 我愿意裁剪实际文档或简单地为每个文档添加一个裁剪框,以便在打开 PDF 时显示正确的可视区域。

如何使用 Ghostscript (v8.71) 做到这一点?我发现了这个:

gs -sDEVICE=pdfwrite -sOutputFile=marked.pdf [/CropBox [54 54 1314 810] /PAGES pdfmark original.pdf

我已经尝试过这个(以及我能想到的所有变体),但我总是收到如下错误:

Error: /undefinedfilename in ([/CropBox)

我试过移动命令的参数,但似乎没有任何效果。有谁知道如何做到这一点?

更新:修正语法后仍然没有裁剪框,​​查看结果 -

结果:pdfinfo -box -f 1 -l 3 original.pdf

Producer:       PDFlib 7.0.2 (PHP5/Linux)
CreationDate:   Wed Oct 21 11:41:04 2009
ModDate:        Wed Oct 21 13:38:22 2009
Tagged:         no
Pages:          1
Encrypted:      no
Page    1 size: 1423 x 918 pts
Page    1 MediaBox:     0.00     0.00  1423.00   918.00
Page    1 CropBox:      0.00     0.00  1423.00   918.00
Page    1 BleedBox:    54.00    54.00  1369.00   864.00
Page    1 TrimBox:      0.00     0.00  1423.00   918.00
Page    1 ArtBox:       0.00     0.00  1423.00   918.00
File size:      914373 bytes
Optimized:      no
PDF version:    1.4`


结果:pdfinfo -box -f 1 -l 3 marked.pdf

Producer:       GPL Ghostscript 8.71
CreationDate:   Wed Apr 27 15:43:38 2011
ModDate:        Wed Apr 27 15:43:38 2011
Tagged:         no
Pages:          1
Encrypted:      no
Page    1 size: 1423 x 918 pts
Page    1 MediaBox:     0.00     0.00  1423.00   918.00
Page    1 CropBox:      0.00     0.00  1423.00   918.00
Page    1 BleedBox:     0.00     0.00  1423.00   918.00
Page    1 TrimBox:      0.00     0.00  1423.00   918.00
Page    1 ArtBox:       0.00     0.00  1423.00   918.00
File size:      392382 bytes
Optimized:      no
PDF version:    1.4

更新:发布的示例 PDF -

able_to_crop.pdf
cannot_crop.pdf

【问题讨论】:

  • 您的 Ghostscript 命令确实“起作用”,创建了新的输出——但它忽略了您的(错误的)pdfmark 参数(它试图在传递给它的文件名时对其进行干扰)。在输出文件中,Ghostscript 使所有“盒子”都相同。

标签: pdf crop ghostscript


【解决方案1】:

您在正确的轨道上,尝试使用 pdfmark/Ghostscript 添加 CropBox。但是你的语法不是 100% 正确的。

试试这个:

 gs \
  -sDEVICE=pdfwrite \
  -o marked.pdf \
  -c "[/CropBox [54 54 1314 810] /PAGES pdfmark" \
  -f original.pdf

【讨论】:

  • @Brian: 告诉我这个命令的输出:pdfinfo -box -f 1 -l 3 original.pdf,我会告诉你一些示例值,你可以将它们用于你的gs 命令来实现真正的 CropBox 效果...
  • @Brian:如果你使用-o marked.pdf,你可以避免GS>-prompting。
  • @Brian:请注意,如果您可以让替换原始 CropBox 定义的字符数与原始字符数相同(如上面我的情况),那真是太幸运了。您可以在替换中插入任意数量的空格,或者您可以删除/CropBox [ 之后的空格以使其成为/CropBox[ 没有问题。但是,如果您添加到总数中。字符,您将看到 '文件已损坏,需要重建外部参照部分'-消息...
  • 是的...... pdfmark 似乎无法修改任何已经存在的东西,它只能添加到已经存在的东西。你可以做一个“page” pdfmark 而不是“pages” pdfmark,但你首先需要知道有多少页。 OTOH,PS 是一种完整的编程语言,因此您可以想象编写一些可以检查页数和正常工作的东西。理论上。
  • Cropping a PDF using Ghostscript 9.01 的回答说如果命令行参数/CropBox 已经在文件中定义,则它会被忽略。解决方法是预处理文件并更改大小写,例如/crOPbOX 所以内部设置被忽略了。
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-05
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多