2016-05-27 60 views
3

我有一些PDF文件,我需要裁剪(作物裁切框等),我可以用下面的命令ImageMagick的PDF作物留住優秀

convert -define pdf:use-trimbox=true -density 300 original.pdf outcome.pdf 

它的工作不過outcome.pdf質量做如果不像原始PDF那樣尖銳。當我在我的桌面軟件(Acrobat Pro)上裁剪它們時,結果與ImageMagick中的質量相同,我無法在結果中保持相同的質量。

我的問題是我如何裁剪pdf頁面而不損害質量?

我一直在尋找和嘗試不同的設置爲幾周,但沒有succesfull。

+0

ImageMagick的'convert'命令在後臺使用Ghostscript將(可能的)矢量PDF頁面轉換爲柵格圖像。然後它將「trimbox」應用於圖像,並將整頁光柵圖像再次封裝到PDF頁面容器中。換句話說,你把整塊肉都改成了碎肉 - 而且沒有辦法讓你的整塊肉都回來。 (您必須使用避免柵格化的其他工具。) –

回答

4

最有可能的問題是,ImageMagick的是有渲染爲位圖的PDF通過Ghostscript,然後導出包裝在PDF文件中的位圖。沒有看到原始的我不能肯定地說,但如果原始包含JPEG圖像,那麼很可能你最後是兩次應用JPEG,或者只是簡單地渲染導致問題。

最好的辦法是使用一個工具,它可以簡單地將一個裁剪框應用到頁面上。例如,你可以用Ghostscript來做到這一點(它也可以用其他方式修改PDF,包括雙倍JPEG量化,所以要小心)。

gs -sDEVICE=pdfwrite \ 
    -sOutputFile=cropped.pdf \ 
    -dBATCH -dNOPAUSE \ 
    -c "<</ColorImageFilter /FlateEncode>> setdistillerparams" \ 
    -f <input.pdf> \ 
    -c "[ /CropBox [ 0 0 100 100] /PAGES pdfmark" \ 
    -f 

-c-f之間的第一部分告訴pdfwrite設備使用FlateEncode的彩色圖像,默認爲JPEG,使用Flate將確保你沒有得到量化塗抹兩次。

-c-f之間的第二部分告訴pdfwrite設備將CropBox寫入文件並使其爲0,0至100,100。這些單位是PDF中的常用單位; 1/72英寸,你可以使用小數值。

我確定還有其他工具可以做到這一點,甚至更容易。