2012-10-01 37 views
19

我已經掃描了600 dpi,〜9.36x12.67英寸的一些材料並以PostScript(PS)格式進行了準備。如何使用Ghostscript設置自定義頁面尺寸

現在,當我嘗試用PS,我會被切去輸出,我認爲GS的默認頁面大小設置爲A4的Ghostscript(GS)轉換爲PDF。我在這裏找到GS的可用模板:http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes但沒有匹配我的PS文件的尺寸,所以:

我可以指示GS輸出自定義大小,如果是這樣?

-sPAPERSIZE指令似乎只接受預定義的模板名稱,如鏈接文檔中所示。

回答

25

可以其中NNMN是像素以720 DPI(720個像素== 1英寸)的寬度,並且是MMMM在720dpi的像素高度與-gNNNNxMMMM設置的使用的頁大小。

或者您可以使用-dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h在PostScript (72磅== 1英寸)中設置自定義尺寸。

如果我沒有錯,9.36英寸≈ = 674點12.67英寸≈ = 912點

您還需要申請-dPDFFitPage以便將您的意見輸入頁面。

所以,你可以使用任何

gs       \ 
    -o output.pdf   \ 
    -sDEVICE=pdfwrite  \ 
    -dDEVICEWIDTHPOINTS=674 \ 
    -dDEVICEHEIGHTPOINTS=912 \ 
    -dPDFFitPage    \ 
    input.ps 

gs     \ 
    -o output.pdf  \ 
    -sDEVICE=pdfwrite \ 
    -r600    \ 
    -g8112x7596  \ 
    -dPDFFitPage  \ 
    input.ps 
+0

我想你想使用'-r720'爲720 dpi。無論如何感謝您的回答 – Dorian

+0

我有一個使用Ghostscriptsharp(C#實現)的應用程序。這只是一個.dll,並沒有所有的命令行選項(我可以找到)的自定義頁面大小。關於如何在這個包裝中實現這個想法的任何想法? – Valien

+0

rasterizer.CustomSwitches.Add(「 - dMySwitch」); – wbt11a

3

什麼工作對我來說:

gs -sDEVICE=pdfwrite -r720 -g4308x6066 -dPDFFitPage -o out.pdf in.pdf

4308x6066是像素數,-r720是每英寸像素數。

所以這裏我們有720dpi,例如5英寸,這將是3600像素。

1

我發現gs是我的削波輸出,即使我已經迫使該頁面的最大標準尺寸,A0。

的原因竟然是由groff/grops發送到gs的PostScript文檔包含一個%%DocumentMedia規範,是壓倒一切的Ghostscript的選擇。

的解決方案是給groff命令行標誌-p-P48i,48i-p告訴groff將其餘選項通過grops。該-P48i,48igrops 48英寸設置紙張尺寸以48英寸。