2012-06-25 54 views
0

提取的頁面我分裂PDF爲頁面與使用命令行的幫助:Ghostscript的失去字體,同時從PDF

for G in $(seq 1 $(pdfinfo 47.pdf | sed -n 's/Pages:[^0-9]*\([0-9]*\).*/\1/p')) ; do 
    gs \ 
    -dSAFER \ 
    -sDEVICE=pdfwrite \ 
    -dBATCH \ 
    -dNOPAUSE \ 
    -dFirstPage=$G \ 
    -dLastPage=$G \ 
    -o $G.pdf \ 
    47.pdf ; 
done 

但某些頁面顯示沒有文字(圖形仍然存在)

所以,我已嘗試從PDF中提取嵌入的字體:

gs -q -dNODISPLAY extractFonts.ps -c "(47.pdf) extractFonts quit" 

這些字體已安裝在系統字體文件夾中。

之後,我再次分裂,沒有發生變化。

如何確保頁面將被正確提取,我現在不知道。

+0

從PDF中提取字體以重複使用它們的方式通常不會像預期的那樣工作。大多數PDF嵌入字體只有*子集*(不是包含所有字形的完整字體),並且在提取後它們將具有不同的名稱(通常以6個字母作爲前綴的名稱),並且它們將具有非標準編碼......所有這些都使得不可能以可靠的方式重新使用提取的字體。 –

回答

2

Ghostscript和pdfwrite實際上並不是用於分割PDF文件的目的,還有其他工具可能會更好,爲什麼不嘗試pdftk?

如果你真的想使用Ghostscript,那麼我會建議你從Git倉庫中獲取最新的出血性代碼,在該代碼中,pdfwrite設備將接受包含'%d'的輸出文件名和會每頁寫一個文件。

除此之外,對於我來說,如果字體丟失,文本仍然會以不同的字體顯示,那麼您很可能只是遇到了一個錯誤,而不是「丟失字體」。您使用的是哪個版本的GS?

+0

GPL Ghostscript 9.04(2011-08-05) –

+3

那麼這是'合理的'最近,因爲它不到一年。但是目前的版本是9.05,下一個版本將在2-3個月內發佈。我建議你找到單頁文件,它在通過pdfwrite傳遞時出現問題,用當前版本檢查它,如果它仍然存在問題,請在http://bugs.ghostscript.com上提出錯誤報告,附上文件並指定用於重現問題的命令行。 – KenS

+0

@KenS:很高興聽到*'%d'*善良很快就會到達pdfwrite :-)太棒了! –