2016-11-03 65 views
0

我最近問this question about changing paper size,並有一個擴展的指揮得當大多數時間:使用的Ghostscript從A4等改變頁面大小爲Letter

gs -sDEVICE=pdfwrite -sOutputFile= $outFile -dBATCH -dNOPAUSE -q -dDEVICEHEIGHTPOINTS=792 -dDEVICEWIDTHPOINTS=612 -dPDFFitPage -dFIXEDMEDIA $inFile

我們需要把它產生是美國輸出頁面信。我可以發佈兩個問題文件。一個需要額外的空白;另一個只需要一個非常小的重新縮放,但它會得到一個截然不同的輸出。

first file是一個A4文件。該命令將其縮放到792的高度,寬度縮放爲559.667。它的尺寸準確無誤,但我們需要在兩側或右側留出空白。我如何修改我的命令(或運行第二個命令)來執行此操作?

second file是8.52「×11.02」。對於這一個,我得到一個549.127 x 709.8點的輸出文件,我完全沒有理解它。 0.02「在我們的印刷公差範圍內,所以我們可以放棄它,但a)我寧願只有一個工藝b)可能問題不在於縮放比例的調整,也許這對其他文件來說是個問題

回答

1

這些以及您以前的問題都與PDF文件中提供的各種不同的盒子以及PDF處理器處理可用盒子的各種方式有關。

對於您的第一個文件;輸出的pdfwrite有一個612x792的MediaBox,但是一個[26.1662903 0 585.83374 792.0]的裁剪框,當然是不是Letter。它是將A4縮小到Letter的中心結果,並且在Letter介質上縮小了縮小區域的中心。

如果您刪除CropBox(使用二進制編輯器)並在Acrobat中打開該文件,則會看到空白區域均勻分佈在頁面的左側和右側。

所以它真的取決於您的印刷過程。無論您需要告訴該過程使用MediaBox並忽略CropBox,或者在CropBox與媒體不相同時讓CropBox居中放置在媒體上。

您的第二個文件有一個MediaBox爲684x864,它是9.5x12英寸。但是它有一個TrimBox,它是[33.8027 33.7217 647.533 827.028]做的算術是8.524x11.018英寸。

很明顯,Acrobat(或者你正在用來獲取大小的任何東西)正在使用TrimBox,而不是MediaBox。 Ghostscript默認使用MediaBox,如果你想讓它使用一個不同的* Box,那麼你可以這麼說。嘗試將-dUseTrimBox添加到您的命令行。看到我對你以前的問題的答案:-)

+0

再次謝謝你的另一個詳細的答覆,肯。很明顯,我有一點要了解PDF的內部工作原理。我是否正確地嘗試使用pdfinfo和gs來自動化流程?我們正在使用PHP編寫腳本(並不重要)。 –

+0

我們正在嘗試完全通過自動化完成此操作,因此我嘗試使用第一個文件-dUseMediaBox(我不知道如何告訴它忽略CropBox)。我不控制打印過程,因此我的目標可能是通過軟件將CropBox放在介質上。對於第二個文件,-dUseTrimBox將其帶到612.00 x 791.07。在這裏,以媒體爲中心的裁剪/裁剪框也會非常好。但我根本看不到如何去做。 FWIW,我正在使用gs v8.70。謝謝! –

+0

您不必(或不應該)需要告訴Ghostscript忽略CropBox,它總是使用MediaBox,因此沒有開關'UseMediaBox',它的默認行爲。 CropBox *以媒體爲中心,這就是爲什麼左下角不是0,0。你真的**需要更新你的Ghostscript版本。 8.70現在已經7歲了,我不知道它在這方面的表現如何(並且沒有研究它的傾向!)。我真的不能給你一個關於自動化你的方案的意見,因爲我真的不明白你想達到什麼...... – KenS

相關問題