2012-11-26 58 views
1

我們想打印大圖紙繪製A3 LaserJet4(人像)(高達A0和一些時間更長),以A3打印機使用的Ghostscript:打印大,景觀PDF使用ghostscript的9.0

gs -o - -sDEVICE=pdfwrite -r1200x1200 -sPAPERSIZE=a3 -f 
/S/tmp/SamplePDFnewStamp.pdf | gs -o resized.pcl -sDEVICE=ljet4 
-g7012x4961 -dPDFFitPage - 

我得到A4在A3肖像紙上的風景。我也嘗試旋轉:

gs -sOutputFile="-" -sDEVICE=pdfwrite -r1200x1200 -sPAPERSIZE=a3 -d 
-dBATCH -dNOPAUSE -dAutoRotatePages=/None -dPDFFitPage -c "<</Orientation 1>> setpagedevice 90 rotate 0 -595 translate" -f 
/S/tmp/SamplePDFnewStamp.pdf -c quit | gs -o resized.pcl 
-sDEVICE=ljet4 -g7012x4961 -dPDFFitPage - 

得到相同的結果。

回答

0

我找到了解決方案:


GS -q -sDEVICE = ljet4 -sOutputFile = out.pcl -dFIXEDMEDIA -dPDFFitPage -sPAPERSIZE = A3 \
- C 「<</Install {-1 -1 scale -843 -1192 translate}>> setpagedevice」
-f SamplePDFnewStamp.pdf -c退出

+0

是的,PDFFitPage是我會推薦的。當使用-dFIXEDMEDIA時,它自動旋轉並且 –

+0

(oops)居中以達到頁面大小。 –

1

在沒有看到PDF文件的情況下無法評論它,但是您使用的許多命令行選項在您的組合中沒有意義。

第一個我會做的就是停止管道這樣的命令,至少在調查問題時。做爲2個階段,這將允許您(和其他人)查看中間PDF文件。其次,我不相信你可以做你似乎在努力做的事情。它看起來像你試圖通過第二次調用來管理第一次調用gs產生的PDF。我沒有看到任何可行的方法,pdfwrite設備需要尋找文件以創建外部參照表,它至少在當前版本中不能使用stdout。你使用的是什麼版本的Ghostscript?

我也看不到這一點,爲什麼拿一個PDF,從它做一個新的PDF,然後呈現第二個PDF?爲什麼不直接渲染原圖呢?

您指定的任何介質尺寸開關都不起作用,因爲您尚未告知Ghostscript介質尺寸已修復(使用-dFIXEDMEDIA)。因此PDF解釋器會將媒體大小設置爲與PDF文件中的MediaBox相同。類似的問題適用於發送PostScript並希望在渲染PDF文件時改變Ghostscript的行爲。

設置pdfwrite的分辨率不是一個好主意,並且一般不起作用。即使它確實有效,您可能不希望將其設置爲設備的分辨率(並且-g值似乎表明這不是1200dpi設備)。分辨率的唯一影響是,由於無法用PDF表示對象,所以必須將對象渲染爲圖像。您不想在打印機分辨率下創建圖像,分辨率通常在1/4到1/2之間。

如果您願意共享示例PDF文件,我可能會告訴您如何解決您的定位問題。你需要解釋爲什麼你通過pdfwrite運行它之前去PCL,但我看不出有任何理由。

此:

gs -sDEVICE=pdfwrite -sOutputFile=\temp\out.pdf -dDEVICEHEIGHTPOINTS=2386.08 -dDEVICEWIDTHPOINTS=1685.7600 -dFIXEDMEDIA -dPDFFitPage SamplePDFnewStamp.pdf 

將你原有的PDF文件,併產生旋轉90度的PDF文件。如果我然後執行:

gs -sDEVICE=ljet4 -sOutputFile=\temp\out.pcl \temp\out.pdf 

我得到一個PCL文件,當被GhostPDL適當的介質尺寸加工,似乎做你想要什麼。

我還沒有嘗試過,由於缺乏實際的設備上打印的,但我希望是:

gs -sDEVICE=ljet4 -sOutputFile=\temp\out.pcl -dDEVICEHEIGHTPOINTS=2386.08 -dDEVICEWIDTHPOINTS=1685.7600 -dFIXEDMEDIA -dPDFFitPage SamplePDFnewStamp.pdf 

會產生相同的文件中的一個步驟。

This is the result

+0

我剛剛找到一種方法將我的[PDF(DIN A1)轉換爲PCL(DIN A3)](https://transfer.doppelmayr.com/pickup.php?claimID=ijTpB4p8Hv9DebCv&claimPasscode=vPEwdCdEuiCCkPZD&emailAddr=hl%40doppelmayr.com )
Horst

+0

對不起,我無法編輯上面的評論。 @KenS: 我只是找到了一種方法,以我的[PDF(DIN A1)到PCL(DIN A3)轉換(https://transfer.doppelmayr.com/pickup.php?claimID=KdfbPJobWy6AVGfA&claimPasscode=arwiguCD6ekXFmRH&emailAddr=hl% 40doppelmayr.com) GS -q -o - -sDEVICE = ljet4 -g9921x7015 -dPDFFitPage \ -f /S/tmp/rot_a3.ps -f /S/tmp/SamplePDFnewStamp.pdf \ | sed「s/l0o/l2o /」| sed「s/l-180u/l140u /」> testA3.pcl rot_a3.ps for rotation也在下載中 我可以直接在Ghostscript中替換sed hack嗎? – Horst

+0

我已將編輯添加到我的答案中,因爲我無法格式化評論。 – KenS