2014-03-19 10 views
1

我使用PDFBox的1.8.4將PDF轉換爲字符串。 例如我的pdf包含:Pólya,G.和G.Szegő, 輸出:Po'lya,G.和G.Szego˝PDFBox的性格壞字符字符串談話

有沒有什麼辦法可以解決這個問題? (是的,我知道我可以用replaceAll(「o'」,「ó」)來改變)

PDDocument doc = PDDocument.load(path); 
    PDFTextStripper strp = new PDFTextStripper("UTF-8"); 
    System.out.println(strp.getText(doc)); 

歡迎任何建議!

編輯1: PDF_Example

+0

請出示有問題的PDF。這可能是PDFBox的一個缺點,但它也可能是PDF的一個問題。 – mkl

+0

嗨。我將它添加到問題中。 – hEngi

回答

2

由OP呈現的文檔包含例如這條線

Attila Gobi, Zalan Sz}ugyi and Tamas Kozsik

這很可能是他已確定這個問題的一個樣本。

查看頁面內容流,不過,

[(A)32(ttila)-384(G\023)575(obi,)-383 
(Zal)8(\023)567(an)-383(Sz)-32(})607(ugyi)-384(and)-383 
(T)96(am)8(\023)567(as)-384(Kozsik)]TJ 

人們看到的是如在(G\023)575(obi,)ó由第一繪製\ 023),然後回到該字形(575)的寬度,然後拉伸該Ó創建。

因此,你確實有這些兩個字形Ó在相同的位置印刷,而不是單個字形ó

PDFBox的PDFTextStripper目前不結合在比滴下在大約相同的位置繪製兩次相同的字形其他相同的位置打印的字符。

因此從的replaceAll一邊(「O「」,‘O’)作爲由OP提到,還可以延長PDFTextStripper某些字形結合,無論是在其方法processTextPositionwriteString(String text, List<TextPosition> textPositions)晚早。