2016-06-28 33 views
3

我不能夠講好英語,但我希望有人能幫助我在這一個...Ghostscript的 - PDF文件,與多個托盤,並在此有很多問題

我花了好幾天,但我無法自己弄清楚。這裏的交易:

我有4000+的PDF文件,TrimBox頁邊距,每頁有16頁,顏色。

我需要批量打印出來:在使用上紙盤3紙張

  • 打印頁數1-10;
  • 使用紙盒4上的紙張打印第11-15頁,兩份不合頁。使用
  • 打印16頁紙張上紙盤3

我使用的是京瓷7550ci,the PPD is here.

我已經安裝了Ghostscript的9.19,也與gsprint GSView程序。 Windows 7 SP1。

當我第一次嘗試做任何事情,不知道ghostscript或如何使用它,但做一些閱讀我設法「種」解決問題。我重複的Windows控制面板上的打印機,設置好的每一個與我想要的配置,並做了GSPRINT以下命令:

gsprint -printer "Kyocera TASKalfa 7550ci KX" -color -dUseTrimBox -dFitPage -from 1 -to 10 s_file0001.pdf 
gsprint -printer "ALT Kyocera" -color -dUseTrimBox -dFitPage -from 11 -to 15 -copies 2 s_file0001.pdf 
gsprint -printer "Kyocera TASKalfa 7550ci KX" -color -dUseTrimBox -dFitPage -from 16 -to 16 s_file0001.pdf 

(我設置好的TASKalfa 7550ci默認的驅動程序才能使用紙盒3,和ALT京瓷使用托盤4和uncollat​​e)。

它工作正常,但對於Windows進程以及要處理的打印機都很痛苦。我很快意識到GSPRINT很慢,因爲它必須將整個圖像渲染爲位圖,並開始查看是否可以使用純GhostScript來完成這項工作。

gswin32c -dBATCH -dNOPAUSE -q -dUseTrimBox -dFitPage -dFirstPage=1 -dLastPage=10 -sDEVICE=mswinpr2 -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f test.pdf 
gswin32c -dBATCH -dNOPAUSE -q -dUseTrimBox -dFitPage -dFirstPage=11 -dLastPage=15 -sDEVICE=mswinpr2 -sOutputFile="%printer%ALT Kyocera" -f test.pdf 
gswin32c -dBATCH -dNOPAUSE -q -dUseTrimBox -dFitPage -dFirstPage=16 -dLastPage=16 -sDEVICE=mswinpr2 -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f test.pdf 

但我還是有很多的問題......我很沮喪,我不能得到它的工作,即使真的已經很努力閱讀手冊,並四處搜尋。

  • 使用mswinpr2仍然非常慢,給我錯誤的顏色,並且無法弄清楚如何選擇紙盒。
  • 使用任何包含PCL驅動程序,altrought是快速和成功地選擇使用dMediaPosition正確的托盤,還有的只有黑色和白色的司機...
  • 使用pdfwrite,不正確的比例裁切框,以適應整個頁面,並且無法選擇正確的紙盒。
  • 使用ps2write,無法選擇紙盤並與頁面位置混亂。

我迷路了。有人可以給我一些方向?另外,還有一種方法可以將每個字母作爲一個文件發送給打印機?

謝謝大家!

---編輯---

感謝你們的答案!

我設法使其工作:

gswin32c -dBATCH -dNOPAUSE -q -dPDFFitPage -dUseTrimBox -dFirstPage=1 -dLastPage=10 \ 
     -dMediaPosition=7 -sDEVICE=pxlcolor \ 
     -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f in.pdf 

gswin32c -dBATCH -dNOPAUSE -q -dPDFFitPage -dUseTrimBox -dFirstPage=11 -dLastPage=15 \ 
     -dMediaPosition=5 -sDEVICE=pxlcolor -dNumCopies=2 \ 
     -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f in.pdf 

gswin32c -dBATCH -dNOPAUSE -q -dPDFFitPage -dUseTrimBox -dFirstPage=16 -dLastPage=16 \ 
     -dMediaPosition=7 -sDEVICE=pxlcolor \ 
     -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f in.pdf 

的唯一的事情是,網頁無法正確縮放到pxlcolor(它在ljet4,但它是黑色和白色)。

我快到了!謝謝^^。如果有人知道這個問題,我將不勝感激。

回答

0

有沒有簡單的方法來做到這一點。雖然PDF本身不提供切換紙盒的設施,但您需要將此流轉換爲另一個PDL。 PostScript是一個不錯的選擇。

雖然轉換成PostScript你可以注入像那些在PPD發現PostScript紙盤切換命令:

<< /ManualFeed false >> setpagedevice statusdict begin 5 setpapertray end 

在Windows平臺上,你對實現選擇:

  1. 改變PPD使它在每個頁面之前注入PostScript代碼。代碼應該保持一個頁面計數器並相應地執行托盤切換命令。
  2. 購買提供此功能的第三方軟件。
  3. 使用注入PostScript代碼的DLL擴展打印機驅動程序。

第一個可能不適用於您的打印機潛水員。然後,您可以嘗試在作業開始時注入PostScript代碼。代碼應該覆蓋showpage,並使用第一個選項中描述的功能進行擴展。

相同的代碼重載showpage如果您有權訪問控制器的內部,則可以在PostScript解釋器啓動順序中注入該代碼。

+0

你知道的任何支付程序,做到這一點? –

+0

不幸的是沒有。我的企業正在按需實施這三種解決方案中的任何一種。 –

3

你問了一個很多的問題,一次,這不是一個真正的好方法得到有用的答案。另外你對於一些問題並沒有太清楚。

1)如果你想使用TrimBox作爲媒體大小,那麼你必須告訴Ghostscript你想使用TrimBox,你可以通過-dUseTrimBox來做到這一點,不管你想用什麼設備。

2)mswinpr2設備通過爲打印機創建Windows DeviceContext,將輸入呈現爲(RGB)位圖,然後將位圖傳送給DeviceContext並告訴其打印自身來工作。這很慢,因爲它會涉及將大位圖(大小取決於打印機分辨率)渲染到內存,然後將大位圖發送到設備。

它的一個很大的優點是它可以工作,不管你有什麼打印機。

GSPrint使用'相似'但有點不同的技術,並聲稱速度更快。

請注意,這兩個設備都使用打印機的默認設置,這可能不適合您的複雜需求。

色彩管理,當然,最多到Windows在這種情況下,但如果說CMYK指定您的原始PDF那麼這將涉及轉換的CMYK-> RGB->這勢必會造成色差CMYK。

3)有在Ghostscript的可用的顏色PCL設備,例如cdeskjet設備。如果選擇-dUseTrimBox

4)pdfwrite將使用裁切框。由於它創建了一個PDF文件,所以很難看到它如何「選擇正確的紙盒」。如果您要將PDF文件發送到打印機,那麼您可以簡單地使用原始PDF文件。 PDF文件不能包含設備相關標準,如紙盒選擇。 5)使用當前版本的ps2write,您可以添加特定於設備的操作,請參閱ghostpdl/doc/VectorDevices.htm(也可在ghostscript.com網站上獲得)第6.5節「PostScript文件輸出」並查找PSDocOptionsPSPageOptions鍵。您可以使用PSPageOptions陣列向每個頁面引入單獨的媒體選擇命令。我不知道你說「弄亂了頁面位置」的意思,但是再一次,如果你不選擇-dUseTrimBox那麼它將不會使用裁切框........

哦,如果你要「縮放裁切框,以適應整個頁面」(你只關於pdfwrite提),那麼你將不得不設置要擴展到(-dFIXEDMEDIA-dDEVICEHEIGHTPOINTS=-dDEVICEWIDTHPOINTS=)的頁面大小的一個固定的媒體,選擇-dUseTrimBox-dPDFFitPage

+0

謝謝!我更新了我的帖子,只剩下一個問題... –

+0

PDFFitPage不會做任何有用的**除非**您設置了固定的頁面大小。這樣做的方式是,PDF解釋器爲每個頁面請求特定的媒體大小,如果確切的媒體不可用,那麼有些策略定義要做什麼,我不想現在進入。但是,您可以使用-dFIXEDWIDTHPOINTS和-dFIXEDHEIGHTPOINTS聲明特定的介質大小,然後使用-dFIXEDMEDIA使其不可更改。如果你這樣做,那麼-dPDFFitPage將縮放內容以適應規定的媒體大小。否則它不會做任何事情。 – KenS

+0

'gswin32c -dBATCH -dNOPAUSE -q -dFIXEDWIDTHPOINTS = 595 -dFIXEDHEIGHTPOINTS = 842 -dFIXEDMEDIA -dUseTrimBox -dPDFFitPage -dFirstPage = 1 -dLastPage = 1 -dMediaPosition = 7 -sDEVICE = pxlcolor -sOutputFile =「%printer%Kyocera TASKalfa 7550ci KX 「-f in.pdf' 還是不工作... –