我有一个横向的pdf,是一个“页面传播”。
我需要在中间垂直地将页面分成两半。
我使用此设置将pdf切成两半:这个获取页面的左侧部分
"C:\Program Files (x86)\gs\gs9.10\bin\gswin32c.exe" -o output.pdf
-sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dSubsetFonts=true -dEmbedAllFonts=true -g 750x1085 -c
"<</BeginPage{0.95 0.96 scale 20 22 translate}>> setpagedevice" "<</PageOffset [0 0]>> setpagedevice" -f input.pdf
上面的命令工作正常。我现在的问题是我需要将Mediabox,Cropbox,Bleedbox,Trimbox和artbox设置为与分割页面的大小相似。在上面的例子中;它应该是750x1085。
在GS上运行的正确命令/设置应该是什么,以便Mediabox,Cropbox,Bleedbox,Trimbox和artbox具有相同的大小?
更新
这是我试图削减的PDF文件样本:
PDF FILE TO SPLIT
我现在正在使用/ PAGE pdfmark,这是我正在尝试使用的命令:
"C:\Program Files (x86)\gs\gs9.10\bin\gswin32c.exe" -o output.pdf -sDEVICE=pdfwrite -dNOPAUSE -dBATCH
-dSAFER -dUseCropbox -dSubsetFonts=true -dEmbedAllFonts=true -g7500x10850
-c "[/CropBox [0 0 750 1085] /PAGES pdfmark"
"[/MediaBox [0 0 750 1085] /PAGES pdfmark"
"[/TrimBox [0 0 750 1085] /PAGES pdfmark"
"[/BleedBox [0 0 750 1085] /PAGES pdfmark"
"[/ArtBox [0 0 750 1085] /PAGES pdfmark"
"<</BeginPage{0.95 0.96 scale 20 22 translate}>> setpagedevice"
"<</PageOffset [0 0]>> setpagedevice"
-f input.pdf
我仍然无法设置具有相同大小的Cropbox,MediaBox,TrimBox,BleedBox,ArtBox。
该命令的正确设置应该是什么?
答案 0 :(得分:0)
在这里回答,评论太小了。
您的基本问题是原始PDF文件已包含您尝试修改的所有Box参数。对于某些类别的输出设备,Ghostscript PDF解释器将通过将自己的pdfmark版本写入设备来保留这些框。因为在你的pdfmark之后会发生,它会取代你的。
遗憾的是,没有机制来禁用此功能。此外,由于您使用的是Windows,因此您拥有ROM文件系统中内置的资源,因此您无法轻易修改它们。
所以在这一点上你无能为力。如果您愿意下载源代码并介入一些PostScript让我知道,我想我可以为您提供解决方案(您不需要重建GS,但PostScript资源不能单独提供)。
编辑以包含一些建议的解决方法
在pdf_main.ps中:
% Test whether the current output device handles pdfmark.
/.writepdfmarkdict 1 dict dup /pdfmark //null put readonly def
/.writepdfmarks { % - .writepdfmarks <bool>
currentdevice //.writepdfmarkdict .getdeviceparams
mark eq { //false } { pop pop //true } ifelse
systemdict /DOPDFMARKS known or
} bind def
您可以将/.writepdmarks更改为:
/.writepdfmarks { % - .writepdfmarks <bool>
false
} bind def
但请注意,输出PDF文件中会停止发送许多其他内容。
相反,您可以查看pdf_showpage_finish中的代码:
/pdfshowpage_finish { % <pagedict> pdfshowpage_finish -
save /PDFSave exch store
...
...
.writepdfmarks {
% Copy the boxes.
{ /CropBox /BleedBox /TrimBox /ArtBox } {
2 copy pget {
% .pdfshowpage_Install transforms the user space do same here with the boxes
oforce_elems
2 { Page pdf_cached_PDF2PS_matrix transform 4 2 roll } repeat
normrect_elems 4 index 5 1 roll fix_empty_rect_elems 4 array astore
mark 3 1 roll {/PAGE pdfmark} stopped {cleartomark} if
} {
pop
} ifelse
} forall
您可以修改“{/ CropBox / BleedBox / TrimBox / ArtBox}”行,您不想保留的任何框都可以从该行中删除。
如果您想阻止任何覆盖您的规范,请将“%复制框”中的行删除为“%复制注释和链接”
请注意,此仅适用于资源未内置到ROM文件系统中的系统,或资源至少在磁盘上可用的系统,并且指定了资源文件的路径使用-I开关。