2016-05-30 45 views
4

我有PDF文件,其中包含水平對齊,垂直對齊和反向對齊等四種不同方向的文本。使用PDFBox API從pdf中讀取文本時,我獲得了良好的水平對齊文本輸出,但在其他情況下卻沒有。 例如,如果「斜體」單詞水平對齊,則輸出爲「斜體」。如果它是垂直對齊的,那麼輸出在整個行上分割,如「 」it a
li c「(這裏」it「,」a「,」li「,」c「在不同的行中)。 我想知道是否有任何方法可以獲得良好的輸出,即使是垂直和反向對齊的文本。如何使用PDFBox API從PDF獲取文本的方向

+0

很抱歉,您不會共享一個示例PDF。雖然有垂直書寫的PDF字體,但我認爲PDF中的字體不是那種類型。如果我的假設是正確的,那麼「*垂直對齊*」文本實際上由橫跨多行的正常水平對齊文本組成。因此,輸出*分割爲「它是一個 李c」*將是正確的。 – mkl

+0

但是,如果我的假設是錯誤的,PDFBox仍然不會提取文本,因爲它是在考慮水平文本的情況下實現的。但是,在這種情況下,你可能會相應地重寫'org.apache.pdfbox.text.PDFTextStripper.writePage()'。 – mkl

+0

您可以請分享您使用的代碼,因爲我面臨類似的問題。 –

回答

2

您可以重寫PDFTextStripper的processTextPosition()方法並編寫邏輯來獲取每個字符的方向,x和y值。通過根據其方向對角色進行分組,您可以單獨剪裁它們。

+0

它看起來很有前途。謝謝你,請嘗試讓你知道結果 – sagar

+0

謝謝你的男人......它像一個魅力。 – sagar