我通過使用模板並填寫表單字段來創建PDF文件。然後我平整PDF以防止對其進行更改。我現在需要解析PDF並從表單字段獲取數據;但是,當我解析PDF時,表單字段所在的文本缺失。看來我不能引用字段,因爲PDF被夷爲平地,解析PDF跳過其中的文字是和返回使用itextsharp解析PDF文檔 - 缺少拼合的表單字段值
名字字段:姓:
但PDF實際上有
名字:簡姓:李四
我怎樣才能在表單字段用來是文本?
UPDATE
Dim text As StringBuilder = New StringBuilder()
If File.Exists(filename) Then
Dim pdfReader As New PdfReader(filename)
For page As Integer = 1 To pdfReader.NumberOfPages
Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy()
Dim currentText As String = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy)
currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)))
text.Append(currentText)
Next
pdfReader.Close()
textBox1.Text = text.ToString()
textBox1.SelectionStart = 0
End If
我不能在原始文件後,由於它們內部的信息,但我可以張貼說明我在做什麼2示例文件。
我使用一個模板PDF這樣的... fw4.pdf
我然後用數據填充它和壓扁它,所以它是這樣的... final_fw4.pdf
當我解析使用的代碼上面我得到這個... parsed_pdf_text.txt
view the files
無數據是在解析的文字!
請給出你如何做文本解析。特別是,您正在使用哪種文本提取策略。另外提供一個樣本PDF文件。 – mkl
已添加文件和更多細節! –
我看到你使用簡單的文本提取策略。你是否也嘗試過位置文本提取策略?簡單的假設內容流已經處於正確的閱讀順序,在形式扁平的情況下它肯定不是。 – mkl