0
我無法閱讀帶有頁眉和頁腳的PDF,但在您的身體中有2列。iTextSharp - 用2列閱讀PDF
我已經有列的寬度和高度的標題,但我需要的代碼來閱讀列的頁面。
任何人都可以提供一段代碼來讀取PDF列嗎?
謝謝
我無法閱讀帶有頁眉和頁腳的PDF,但在您的身體中有2列。iTextSharp - 用2列閱讀PDF
我已經有列的寬度和高度的標題,但我需要的代碼來閱讀列的頁面。
任何人都可以提供一段代碼來讀取PDF列嗎?
謝謝
這是很難達到你想要什麼,如果你不知道列的位置,但我認爲你有它的座標,因爲你說「我已經有列的寬度和高度」。在這種情況下,你的問題是不是從張貼在StackOverflow上這個的其他問題不同:iTextSharp read from specific position
假設rect
是一個列的位置相對應的Rectangle
,那麼你就需要這樣的代碼:
RenderFilter[] filter = {new RegionTextRenderFilter(rect)};
ITextExtractionStrategy strategy = new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), filter);
String single_column = PdfTextExtractor.GetTextFromPage(reader, i, strategy));
現在,您只有一列中的文字。您需要爲網頁上的每一列重複此操作。
額外的評論:雖然使用RegionTextRenderFilter
大多數情況下會工作得很好,少數病例(其中列通過簡單地插入的行額外的空格字符創建)可能需要分割文本塊來處理提前。這可以通過例如通過使用來自this answer的TextRenderInfoSplitter
並將FilteredTextRenderListener
包裝在其中。
雖然在大多數情況下使用'RegionTextRenderFilter'可以很好地工作,但少數情況下(通過在行中插入額外的空格字符來創建列)可能需要將文本塊提前處理。這可以通過例如通過使用[本答案](http://stackoverflow.com/questions/21000256/pdf-reading-highlighed-text-highlight-annotations-using-c-sharp/21023311#21023311)中的'TextRenderInfoSplitter'幷包裝' FilteredTextRenderListener'在裏面。 – mkl
好評,mkl,我會將您的評論添加到答案中。 –
感謝Bruno, 但是這種策略正在改變\ n的雙打\ n文本。 而且我需要在SimpleTextExtractionStrategy()中完成的\ n的兩倍\ n 您知道如何使用矩形而不會丟失雙精度\ n嗎? –