2017-02-01 37 views
0

我在Windows命令提示符下使用Ghostcript 9.20。 Ghostscript應從文件中讀取文件名,儘管一些文件對於例如文件有「Umlaute」。 üäö這樣用文件名「Jürgen1.pdf」 「Jürgen2.pdf」。但是Ghostscript 9.20會吞下變音符號,並且無法用Umlaute讀取文件名。我究竟做錯了什麼?ghostscript輸入從CMD中的文件讀取具有umlaute的文件名

chcp 1252 
set file_output=Jürgen_merged 
dir "Jürgen*.pdf" /b /o:n > files.txt 
"C:\Program Files (x86)\Gawk\gawk4.1\gawk" "{ print \"\042\" $0 \"\042\" }" files.txt > files.lst 
"C:\Program Files (x86)\gs\gs9.20\bin\gswin64c" -sPAPERSIZE=a4 -sDEVICE=pdfwrite -o "%file_output%.pdf" @files.lst 
del files.lst 
+0

它應該工作,我建議你打開一個文件,顯示問題的錯誤報告。只有一個文件和一個簡單的命令行,請不要使用腳本。 – KenS

+0

[Windows命令提示符不是* DOS提示符!](https://scalibq.wordpress.com/2012/05/23/the-windows-command-prompt-is-not-a-dos-prompt/ ) – aschipfl

+0

我試圖使用此iconv -f WINDOWS-1252 -t UTF-8 files.txt> files.lst將@ files.lst轉換爲UTF8,但它仍然無法工作或吞下變音符號。 – sdf

回答

0

認爲的問題是,@語法的File.List不支持從Windows代碼頁轉換爲UTF-8,我們在內部使用。這是因爲@ file.list選項的內容實際上是在Postscript中處理的(它不知道代碼頁等)。所以我認爲如果您將您的file.lst文件轉換爲UTF-8編碼,它可能會工作。

+0

不,它不工作看到我的帖子關於從iconv -f WINDOWS-1252-t UTF-8 txt轉換。我用Notepad ++檢查了該文件,並且該文件確實轉換爲沒有BOM的UTF-8。 Ghostscript仍然省略Umlaute並隨後無法從文件列表中讀取文件。 – sdf

+0

好吧,正如我的同事上面所說的,在https://bugs.ghostscript.com/上打開一個錯誤附加我們需要重現問題的方法,我們會研究它。 – chrisl

+0

我不熟悉這類錯誤報告,因爲我不是專業用戶。 Jut使用Ghostscript作爲私人用戶。我會盡力。與此同時,我做了一個工作,通過gawk將它傳遞給腳本,然後再次傳遞給像這樣的變量 – sdf

0

現在隨着Ghostscript 9.21更新die @file函數和「Umlaute」在這個文件中的作品。該錯誤已修復。