我试图制作新的PDF,只改变第一页的尺寸(使用CropBox)。我使用了How do I crop pages 3&4 in a multipage pdf using ghostscript
的修改版本这有什么奇怪的:一切都运行正常,但是当我在典型的应用程序(预览,Acrobat等)中打开PDF时,它们会崩溃或者我得到一个"警告:页面的尺寸可能超出范围"错误。在Acrobat中,只显示一个页面,即使页数为2,45,60或其他任何页面。
更奇怪的是:我通过电子邮件将PDF发送给某人,看是否是特定于机器的问题。在Gmail中,Google Apps的PDF查看器中的所有内容都很好看。所以这个过程很有效,'但看起来有关于维度或页面大小的问题会导致其他应用程序失效。
我尝试了多个GS选项(dPDFFitPage,dPrinted = false,dUseCropBox,将纸张大小更改为合法以外的其他内容),但似乎没有任何效果。
我附加了经历此过程的PDF版本并生成了这些错误。 https://www.dropbox.com/s/ka13b7bvxmql4d2/imfwb.pdf?dl=0
修改后的输出如下。 xmin,ymin,xmax,ymax,height,width是在较大的脚本中其他地方定义的变量,GS是其中的一部分。使用pdfinfo
抓取数据gs \
-o output/#{filename} \
-sDEVICE=pdfwrite \
-c \"<</EndPage {
0 eq {
pop /Page# where {
/Page# get
1 eq {
(page 1) == flush
[/CropBox [#{xmin} #{ymin} #{xmax} #{ymax}] /PAGE pdfmark
true
}
{
(not page 1) == flush
[/CropBox [0 #{height.to_f} #{width.to_f} #{height.to_f}] /PAGE pdfmark
true
} ifelse
}{
true
} ifelse
}
{
false
}
ifelse
}
>> setpagedevice\" \
-f #{filename}"
`#{cmd}`
答案 0 :(得分:0)
对于第一次设置后的页面
[/CropBox [0 #{height.to_f} #{width.to_f} #{height.to_f}] /PAGE pdfmark
即。一个零高度的裁剪框!
E.g。如果您的示例文档第2页有裁剪框[0 792.0 612.0 792.0]
。
这肯定不是你想要的......
如果你真的想&#34;生成新的PDF只改变第一页的尺寸(使用CropBox)&#34; ,你为什么要改变后面页面的裁剪框呢? ?在这种情况下,根本不做任何事情!
为什么&#34; Page的尺寸可能超出范围&#34; ?
嗯,ISO 32000-1在其规范性附录C中声明:
默认用户空间中,最小页面大小应为3乘3单位
因此,根据较旧的PDF规范,页面高度0确实超出了PDF的范围!
与此同时,虽然ISO 32000-2已经放弃了这个要求,但严格来说,页面高度为零应该没什么可抱怨的......