翻譯|使用教程|編輯:吉煒煒|2025-02-17 10:49:30.597|閱讀 118 次
概述:使用 TX Text Control 進(jìn)行基于模板的文本提取提供了一種從 PDF 文檔中檢索結(jié)構(gòu)化數(shù)據(jù)的有效方法。本文介紹如何使用模板從 PDF 文檔中提取文本。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
處理 PDF 文檔時(shí),提取公司名稱、社會(huì)保險(xiǎn)號(hào)或發(fā)票號(hào)等特定信息可能是一項(xiàng)挑戰(zhàn)。在理想情況下,這些數(shù)據(jù)將存在于結(jié)構(gòu)良好的表單字段中,可以通過(guò)編程輕松訪問(wèn)(包括使用 TX Text Control 功能)。但是,許多 PDF 文件都是扁平化的,這意味著表單字段被刪除,只留下原始文本。
	
	 
		TX Text Control 是一款功能類似于 MS Word 的文字處理控件,包括文檔創(chuàng)建、編輯、打印、郵件合并、格式轉(zhuǎn)換、拆分合并、導(dǎo)入導(dǎo)出、批量生成等功能。廣泛應(yīng)用于企業(yè)文檔管理,網(wǎng)站內(nèi)容發(fā)布,電子病歷中病案模板創(chuàng)建、病歷書(shū)寫(xiě)、修改歷史、連續(xù)打印、病案歸檔等功能的實(shí)現(xiàn)。TX Text Control 基于預(yù)定義模板區(qū)域提供了強(qiáng)大的文本提取解決方案,允許您甚至可以從扁平化的 PDF 中提取結(jié)構(gòu)化信息。
	
基于模板的文本提取涉及定義一個(gè)矩形(邊界框),特定文本預(yù)計(jì)會(huì)出現(xiàn)在 PDF 文檔中。定義此區(qū)域后,TX Text Control 便可提取定義矩形內(nèi)的文本行,確保數(shù)據(jù)檢索準(zhǔn)確。
第一步,我們希望確定已知文檔中已知數(shù)據(jù)的文本位置。使用示例 PDF,找到在特定位置一致出現(xiàn)的已知文本(例如公司名稱或發(fā)票號(hào)碼)。
讓我們看一下非常典型的美國(guó)稅表W9。
	 
該文檔仍然啟用了表單字段,如果我們有權(quán)訪問(wèn)該文檔,則只需遍歷表單字段即可使用 TX Text Control 輕松提取數(shù)據(jù)。
但在這種情況下,我們無(wú)法訪問(wèn)源文檔,只能訪問(wèn)扁平化版本,其中所有表單字段都已被刪除,只有文本可見(jiàn)。
	 
現(xiàn)在我們要定義矩形來(lái)搜索公司名稱。
	 
為了演示使用 TX 文本控制庫(kù)實(shí)現(xiàn)這一點(diǎn)有多么簡(jiǎn)單,我們將使用 .NET 控制臺(tái)應(yīng)用程序。
確保您下載了.NET 8 SDK附帶的最新版本的 Visual Studio 2022 。
在 Visual Studio 2022 中,通過(guò)選擇“創(chuàng)建新項(xiàng)目”來(lái)創(chuàng)建新項(xiàng)目。
選擇控制臺(tái)應(yīng)用程序作為項(xiàng)目模板然后單擊下一步確認(rèn)。
為您的項(xiàng)目選擇一個(gè)名稱然后單擊下一步確認(rèn)。
在下一個(gè)對(duì)話框中,選擇.NET 8 (長(zhǎng)期支持)作為框架并通過(guò)創(chuàng)建進(jìn)行確認(rèn)。
在解決方案資源管理器中,選擇您創(chuàng)建的項(xiàng)目,然后從項(xiàng)目主菜單中選擇管理 NuGet 包...。
從包源下拉菜單中選擇文本控制離線包。
安裝以下軟件包的最新版本:
			 
		
以下代碼使用 TX Text Control 查找我們的訓(xùn)練數(shù)據(jù)“Text Control, LLC”的已知值,并返回稍后將用于所有其他文檔的位置。
| using TXTextControl.DocumentServer.PDF.Contents; | |
| try | |
| { | |
| string pdfFilePath = "FormW9.pdf"; | |
| // Check if the file exists before processing | |
| if (!File.Exists(pdfFilePath)) | |
| { | |
| Console.WriteLine($"Error: File '{pdfFilePath}' not found."); | |
| return; | |
| } | |
| // Load PDF lines | |
| var pdfLines = new Lines(pdfFilePath); | |
| // Find the target text | |
| var trainLines = pdfLines.Find("Text Control, LLC"); | |
| // Check if any lines were found before accessing the index | |
| if (trainLines.Count > 0) | |
| { | |
| Console.WriteLine(trainLines[0].Rectangle.ToString()); | |
| } | |
| else | |
| { | |
| Console.WriteLine("Text not found in the PDF."); | |
| } | |
| } | |
| catch (Exception ex) | |
| { | |
| Console.WriteLine($"An error occurred: {ex.Message}"); | |
| } | 
控制臺(tái)包含找到的文本的位置。
{X=1192,Y=2566,Width=1510,Height=180}
下一個(gè)代碼片段加載第二個(gè)文檔并在給定的矩形中搜索文本,該文本是我們從訓(xùn)練數(shù)據(jù)中檢索到的。
| using System.Drawing; | |
| using TXTextControl.DocumentServer.PDF.Contents; | |
| try | |
| { | |
| string pdfFilePath = "FormW9_2.pdf"; | |
| // Check if the file exists before processing | |
| if (!File.Exists(pdfFilePath)) | |
| { | |
| Console.WriteLine($"Error: File '{pdfFilePath}' not found."); | |
| return; | |
| } | |
| // Load PDF lines | |
| var pdfLines = new Lines(pdfFilePath); | |
| // Define the search area | |
| var searchRectangle = new Rectangle(1192, 2566, 1510, 180); | |
| // Find text within the defined rectangle (include partial matches) | |
| var contentLines = pdfLines.Find(searchRectangle, true); | |
| // Filter only page 1 content lines | |
| var page1ContentLines = contentLines.Where(cl => cl.Page == 1).ToList(); | |
| // Check if any content was found | |
| if (page1ContentLines.Count > 0) | |
| { | |
| Console.WriteLine(page1ContentLines[0].Text); | |
| } | |
| else | |
| { | |
| Console.WriteLine("No content found in the specified rectangle on page 1."); | |
| } | |
| } | |
| catch (Exception ex) | |
| { | |
| Console.WriteLine($"An error occurred: {ex.Message}"); | |
| } | 
控制臺(tái)包含從第二個(gè)文檔中提取的文本。
Document Processing Enterprises Ltd.
因?yàn)槲覀兪褂昧?/span>Findtrue方法的第二個(gè)參數(shù),所以搜索將返回整行,即使在這種情況下公司名稱更長(zhǎng)。
即使公司名稱到了行末,它也會(huì)找到正確的值。
	 
This is a very long company name - This is a very long company name - This is a very long company name
基于模板的文本提取是一項(xiàng)強(qiáng)大的功能,可用于從 PDF 文檔中提取結(jié)構(gòu)化信息。通過(guò)在已知文本周?chē)x一個(gè)矩形,TX Text Control 可以從類似文檔中提取文本,即使文本不在表單字段中。
	
	 
		慧都是Text Control的官方授權(quán)代理商,提供TX Text Control 系列產(chǎn)品免費(fèi)試用,咨詢,正版銷(xiāo)售等于一體的專業(yè)化服務(wù)。
	 
		下載或體驗(yàn)產(chǎn)品,請(qǐng)咨詢,或撥打產(chǎn)品熱線:023-68661681
	
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn