Ghostscript裁剪PDF不正确



inputpdf

使用 gswin32c.exe -o nul -sDEVICE=bbox bbox.pdf,i'v hnow hnow the pdf的边界箱是

%%界箱:6292 6865 8108 7535

%% hiresboundingbox:6292.907808 6865.505790 8107.091753 7534.493770,

我想在边界盒中获得带有内容的PDF。

我正在使用以下命令裁剪PDF:

 gswin32c -sDEVICE=pdfwrite -dFirstPage=1 -dLastPage=1 -o croped.pdf -dDEVICEWIDTHPOINTS=1815 -dDEVICEHEIGHTPOINTS=670 -dFIXEDMEDIA -c "6292 6865 translate 6292 6865 8107 7534 rectclip" -f bbox.pdf

gswin32c -dQUIET -dBATCH -dNOPAUSE -dNOPROMPT -sDEVICE=pdfwrite -dFirstPage=1 -dLastPage=1 -o croped.pdf -dDEVICEWIDTHPOINTS=1815 -dDEVICEHEIGHTPOINTS=670 -dFIXEDMEDIA -c "<</PageOffset [6292 6865]>> setpagedevice" -f bbox.pdf

我一个空白的pdf文件。

此命令

gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=croped.pdf -c "[/CropBox [6292.907808 6865.505790 8107.091753 7534.493770] /PAGES pdfmark" -f bbox.pdf

我是原始文件。

我如何正确裁剪这个pdf。

非常感谢!

边界箱对我看起来可疑。

在任何情况下,您都不能轻描淡写地尝试使用Ghostscript,因为PDF解释器使用PDF文件中的信息来设置媒体大小。

前两个命令行"可能"工作,但是您已将CTM转换为错误的方向。您已经从左下,向上和向右移动了原点(0,0)。这已经将页面的内容移开了媒体,这就是为什么您获得空白页面的原因。您可以尝试使用相同的值,但被否定,以使原点向下移动并向左移动。从您引用的边界盒中,这是正确的方向。

gswin32c -sDEVICE=pdfwrite -dFirstPage=1 -dLastPage=1 -o croped.pdf -dDEVICEWIDTHPOINTS=1816 -dDEVICEHEIGHTPOINTS=670 -dFIXEDMEDIA -c "-6292 -6865 translate" -f bbox.pdf

您不需要RectClip,因为内容已经夹在页面上。

第三个命令行也可以工作,除了您在处理PDF文件之前设置了cropbox ,因此PDF解释器从PDF文件读取Cropbox并覆盖您设置的一个。尝试在输入文件之后设置它。

gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=croped.pdf bbox.pdf -c "[/CropBox [6292.907808 6865.505790 8107.091753 7534.493770] /PAGES pdfmark" -f

[编辑]

好,所以第一命令行不起作用的原因(如我所怀疑),因为PDF解释器在运行PDF之前重置图形状态,因此它只是将"翻译"扔掉。

如果您在pageoffset的阵列中否定操作数:

,那么第二个命令行对我来说很好
gswin32c -sDEVICE=pdfwrite -sOutputFile=tempout.pdf -dDEVICEWIDTHPOINTS=1815 -dDEVICEHEIGHTPOINTS=670 -dFIXEDMEDIA -c "<</PageOffset [-6292 -6865]>>setpagedevice" -f D:UserskenDownloadsbbox.pdf

第三个命令行不起作用,因为它为所有页面设置了农作物盒,这是默认的,可以通过在每个页面上设置一个裁切箱来覆盖。您的原始PDF文件包含一个由PDF解释器保留的裁切箱(与Mediabox相同),因此页面杂技盒被特定于页面的裁切盒覆盖。

但是上面的命令行对我来说很好。

最新更新