我試圖用itextsharp庫來分析一個PDF檔案......最終的目的是讀取所有文本并對每一行進行分割。
為了做到這一點,我使用了一個已讀文本的分割函式......我把完整的文本放在一個字串var中,就像這樣。
Dim RigheTesto As String()
RigheTesto = testoEstrapolato.Split({vbCrLf, vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries)
Split函式作業正常,我獲得了一個字串陣列,如 "資料型別:值",原檔案的每一行都有一個陣列......
。......但是當分割遇到頁面變化時(在原始PDF中)不理解是一個不同的行,它與之前的合并 ...
請問您知道如何解決這個問題嗎?
謝謝您的時間!
您知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
下面顯示了如何使用NuGet包iTextSharp從PDF檔案中提取文本(它已經使用v5.5.13.2測驗)。
下載/安裝NuGet包 iTextSharp
創建一個類(名稱:PdfPageInfo.vb)
Public Class PdfPageInfo
Public Property PageNumber As Integer
Public Property Lines As List(Of String) = New List(Of String)
結束 類別
創建一個模塊(名稱:HelperiTextSharp.vb)
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser
Module HelperiTextSharp
Public Function ExtractText(filename As String) As List(Of PdfPageInfo)
Dim pageInfoList As List(Of PdfPageInfo) = New List(Of PdfPageInfo)
Using reader As PdfReader = New PdfReader(filename)
For i As Integer = 1 To reader. NumberOfPages Step 1 讀者。
'創建新實體。
Dim pageInfo As PdfPageInfo = New PdfPageInfo()
'設定值'從PDF頁面獲取文本。
Dim pageText As String = PdfTextExtractor.GetTextFromPage(reader, i)
'在新行上分割,并設定值New String() {vbCrLf, vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries).ToList()
'添加。
pageInfoList.Add(pageInfo)
下一步
End Using
Return pageInfoList
End Function[/span
End Module[/span
使用:
Dim ofd As OpenFileDialog = New OpenFileDialog()
ofd.Filter = "PDF檔案(*.pdf)|*.pdf"。
If ofd.ShowDialog = DialogResult.OK Then
Dim pdfPageInfoList As List(Of PdfPageInfo) = HelperiTextSharp.ExtractText(ofd.FileName)
For Each pInfo As PdfPageInfo In pdfPageInfoList
Debug.WriteLine("Page Number: " & pInfo.PageNumber.ToString()
For i As Integer = 0 To pInfo. Lines.Count - 1 Step 1
Debug.WriteLine("[" & i & "]。" & pInfo.Lines(i))
接下來
Debug.WriteLine("---------------------------------" & vbCrLf)
下一步
End If
資源:
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/325299.html
標籤:
