<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
PDF是辦公中比較常見的一種檔案格式,在工作中應用也越來越普遍。由於PDF檔案整合度和安全可靠性都較高,所以在PDF中編輯內容是一件比較複雜且困難的事。但有時因工作需要,要求我們從中提取資料或表格該怎麼辦呢?別擔心,今天為大家介紹一種通過C#/VB.NET程式碼從PDF中提取表格內容的方法。下面是我整理的思路步驟及程式碼供大家參考。
本次測試時,在程式中引入 Spire.PDF.dll 檔案。
方法1:
將 Free Spire.PDF for .NET 下載到本地,解壓,找到 BIN 資料夾下的 Spire.PDF.dll。然後在 Visual Studio 中開啟“解決方案資源管理器”,滑鼠右鍵點選“參照”,“新增參照”,將本地路徑 BIN 資料夾下的 dll 檔案新增參照至程式。
方法2:
通過NuGet安裝。可通過以下 2 種方法安裝:
1. 可以在 Visual Studio 中開啟“解決方案資源管理器”,滑鼠右鍵點選“參照”,“管理 NuGet 包”,然後搜尋“Free Spire.PDF”,點選“安裝”。等待程式安裝完成。
2. 將以下內容複製到 PM 控制檯安裝。
Install-Package FreeSpire.PDF -Version 8.6.0
範例化PdfDocument類的物件並呼叫PdfDocument.LoadFromFile()方法載入檔案。
通過 PdfTableExtractor.ExtractTable(int pageIndex) 方法提取指定頁面中的表格。
通過 PdfTable.GetText(int rowIndex, int columnIndex) 方法將獲取具體行和列中的單元格文字內容。
將獲取的表格內容儲存為TXT檔案。
C#
using Spire.Pdf; using Spire.Pdf.Utilities; using System.IO; using System.Text; namespace ExtractTable { class Program { static void Main(string[] args) { //範例化PdfDocument類的物件 PdfDocument pdf = new PdfDocument(); //載入PDF檔案 pdf.LoadFromFile("程式語言1.pdf"); //建立StringBuilder類的物件 StringBuilder builder = new StringBuilder(); //範例化PdfTableExtractor類的物件 PdfTableExtractor extractor = new PdfTableExtractor(pdf); //宣告PdfTable類的表格陣列 PdfTable[] tableLists; //遍歷PDF頁面 for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++) { //從頁面提取表格 tableLists = extractor.ExtractTable(pageIndex); //判斷表格列表是否為空 if (tableLists != null && tableLists.Length > 0) { //遍歷表格 foreach (PdfTable table in tableLists) { //獲取表格中的行和列數 int row = table.GetRowCount(); int column = table.GetColumnCount(); //遍歷表格行和列 for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { //獲取行和列中的文字 string text = table.GetText(i, j); //寫入文字到StringBuilder容器 builder.Append(text + " "); } builder.Append("rn"); } } } } //儲存提取的表格內容為txt檔案 File.WriteAllText("提取表格.txt", builder.ToString()); } } }
VB.NET
Imports Spire.Pdf Imports Spire.Pdf.Utilities Imports System.IO Imports System.Text Namespace ExtractTable Class Program Private Shared Sub Main(args As String()) '範例化PdfDocument類的物件 Dim pdf As New PdfDocument() '載入PDF檔案 pdf.LoadFromFile("程式語言1.pdf") '建立StringBuilder類的物件 Dim builder As New StringBuilder() '範例化PdfTableExtractor類的物件 Dim extractor As New PdfTableExtractor(pdf) '宣告PdfTable類的表格陣列 Dim tableLists As PdfTable() '遍歷PDF頁面 For pageIndex As Integer = 0 To pdf.Pages.Count - 1 '從頁面提取表格 tableLists = extractor.ExtractTable(pageIndex) '判斷表格列表是否為空 If tableLists IsNot Nothing AndAlso tableLists.Length > 0 Then '遍歷表格 For Each table As PdfTable In tableLists '獲取表格中的行和列數 Dim row As Integer = table.GetRowCount() Dim column As Integer = table.GetColumnCount() '遍歷表格行和列 For i As Integer = 0 To row - 1 For j As Integer = 0 To column - 1 '獲取行和列中的文字 Dim text As String = table.GetText(i, j) '寫入文字到StringBuilder容器 builder.Append(text & Convert.ToString(" ")) Next builder.Append(vbCr & vbLf) Next Next End If Next '儲存提取的表格內容為txt檔案 File.WriteAllText("提取表格.txt", builder.ToString()) End Sub End Class End Namespace
效果圖
注意:
測試程式碼中的檔案路徑為程式 Debug 路徑,僅供參考,檔案路徑可自定義為其他路徑。
到此這篇關於C#實現從PDF中提取表格的方法詳解的文章就介紹到這了,更多相關C# PDF提取表格內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45