2013-04-12 91 views
1

我使用Ghostscript 9.07使用批處理腳本將PDF文件從顏色轉換爲灰色。該腳本的工作原理是將顏色轉換爲灰色,但僅適用於第一頁。在我嘗試的每個PDF上(12 PDF),轉換策略恢復爲在第一頁之後保持顏色不變。使用ghostscript在一頁之後出現顏色轉換錯誤

腳本:

C:\working-environment\gs9.07\bin\gswin64c -o C:\Test\converted.pdf -sDEVICE=pdfwrite -dLastPage=20 -dColorConversionStrategy=/Gray -dProcessColorModel=/DeviceGray C:\Test\original.pdf 

注:我正在運行的腳本在Windows 7 PC以管理員身份上。 -dLastPage參數已設置,因爲我有很長的PDF(500多頁)。

錯誤:

Unable to convert color space to Gray. reverting strategy to LeaveColorUnchanged. 

注: 我使用的Oracle和Postgress手冊,因爲我希望看到的表現了。

回答

2

幾乎可以肯定的「後續」的頁是使用其作爲消息通知你,不能轉換到DeviceGray的顏色空間。沒有看到文件(我真的不想要一個500 +頁面文件作爲例子),我不能告訴你是什麼原因導致你的問題。如果你能製作一個展示這個的小文件,我會看看它。

請注意,這不是一個錯誤,它是一個警告。錯誤會中止工作。在Ghostscript的下一個版本的

新的色彩管理應該意味着不會發生這種情況呢。

[編輯]

對於我這個文件給人的第一頁上的警告,不管自己是否使用當前代碼或發佈9.07。由於色彩空間問題發生在頁面內容的後期,因此在此之前的所有內容確實轉換爲灰色,但後續內容不是。

的問題時,因爲PDF文件使用/分離/所有色彩空間繪製「印刷標記」網頁上。當前的代碼不能轉換/分離顏色空間,也不能保存它,因此它將恢復爲'保持顏色不變'。由於打印機標記是頁面上的最後一件事,並且因爲/ All標記所有印版並且因此似乎是黑色的,所以看起來整個頁面已經被轉換,但情況並非如此。

通過分割文件分成3個單獨的頁面,你做了什麼似乎是三個獨立的「正確」的網頁,但實際上每一個部分地轉換,仍然包含/分離打印機標記/全部。

Ghostscript Git存儲庫中的當前代碼在設置爲使用新的CMS方案時,會轉換此文件而不發出警告,並且表面上正確地處理多頁文件,但此代碼尚未完成。它應該與GS 9.08一起發佈。

+0

謝謝您的快速回答,這裏是[測試PDF](https://www.dropbox.com/s/fghiwjbyk619va2/test .pdf) - 只有3頁。如果我將每個頁面拆分爲單個文件,請轉換單個文件,然後再將它合併到一個文件,但它不能成爲最好和最高性能的解決方案。如果我在整個文檔上運行腳本,則在成功轉換第一頁後,顏色轉換策略會恢復爲保持顏色不變。 –

+0

@ michael.niix PDF不存在因此無法使用源代碼檢查這些答案中的任何一個 – baxx

3

我有與Ghostscript 9.06相同的問題。在將文檔傳遞給Ghostscript之前,使用pdftops -level3sep將文檔轉換爲CMYK顏色。例如在bash:

gs -o converted.pdf -sDEVICE=pdfwrite -dColorConversionStrategy=/Gray \ 
    -dProcessColorModel=/DeviceGray <(pdftops -level3sep input.pdf -) 

相關搜索:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH \ 
    -dAutoRotatePages=/None -dUseCIEColor -sOutputFile=output.pdf input.pdf 
+0

與gs 9.10有同樣的問題。你的回答救了我。謝謝! –

+0

這些都不適合我,Ubuntu 14.04與ghostscript 9.10。 – baxx

+0

也許你想打開一個錯誤報告。如果出現問題,我寧願理解並解決問題,也無法運用部分解決方案/解決方法/ kludges操作。沒有看到文件,我無法做到這一點。然而,你應該嘗試的第一件事是更新到當前的**版本的Ghostscript 9.16,9.10是2歲,當然,已經修復了已報告的錯誤。 – KenS

相關問題