欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)從PDF中提取表格的方法詳解

 更新時間:2022年08月02日 11:30:28   作者:毛毛雨大人  
PDF是辦公中比較常見的一種文件格式,在工作中應用也越來越普遍。今天為大家介紹一種通過C#/VB.NET代碼從PDF中提取表格內(nèi)容的方法,感興趣的可以動手嘗試一下

PDF是辦公中比較常見的一種文件格式,在工作中應用也越來越普遍。由于PDF文件集成度和安全可靠性都較高,所以在PDF中編輯內(nèi)容是一件比較復雜且困難的事。但有時因工作需要,要求我們從中提取數(shù)據(jù)或表格該怎么辦呢?別擔心,今天為大家介紹一種通過C#/VB.NET代碼從PDF中提取表格內(nèi)容的方法。下面是我整理的思路步驟及代碼供大家參考。

程序環(huán)境

本次測試時,在程序中引入 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. 將以下內(nèi)容復制到 PM 控制臺安裝。

Install-Package FreeSpire.PDF -Version 8.6.0

從PDF中提取表格具體步驟

實例化PdfDocument類的對象并調(diào)用PdfDocument.LoadFromFile()方法加載文檔。

通過 PdfTableExtractor.ExtractTable(int pageIndex) 方法提取指定頁面中的表格。

通過 PdfTable.GetText(int rowIndex, int columnIndex) 方法將獲取具體行和列中的單元格文本內(nèi)容。

將獲取的表格內(nèi)容保存為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");

            //創(chuàng)建StringBuilder類的對象
            StringBuilder builder = new StringBuilder();

            //實例化PdfTableExtractor類的對象
            PdfTableExtractor extractor = new PdfTableExtractor(pdf);

            //聲明PdfTable類的表格數(shù)組
            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)
                    {
                        //獲取表格中的行和列數(shù)
                        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("\r\n");
                        }
                    }
                }
            }

            //保存提取的表格內(nèi)容為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")

      '創(chuàng)建StringBuilder類的對象
      Dim builder As New StringBuilder()

      '實例化PdfTableExtractor類的對象
      Dim extractor As New PdfTableExtractor(pdf)

      '聲明PdfTable類的表格數(shù)組
      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
            '獲取表格中的行和列數(shù)
            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

      '保存提取的表格內(nèi)容為txt文檔
      File.WriteAllText("提取表格.txt", builder.ToString())
    End Sub
  End Class
End Namespace

效果圖

注意:

測試代碼中的文件路徑為程序 Debug 路徑,僅供參考,文件路徑可自定義為其他路徑。

到此這篇關(guān)于C#實現(xiàn)從PDF中提取表格的方法詳解的文章就介紹到這了,更多相關(guān)C# PDF提取表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)在線更新軟件

    C#實現(xiàn)在線更新軟件

    winform程序相對web程序而言,功能更強大,編程更方便,但軟件更新卻相當麻煩,要到客戶端一臺一臺地升級,面對這個實際問題,在最近的一個小項目中,本人設計了一個通過軟件實現(xiàn)自動升級技術(shù)方案,彌補了這一缺陷,有較好的參考價值
    2015-05-05
  • C#使用泛型實現(xiàn)刪除數(shù)組中重復元素

    C#使用泛型實現(xiàn)刪除數(shù)組中重復元素

    這篇文章主要為大家詳細介紹了C#如何使用泛型實現(xiàn)刪除數(shù)組中重復元素,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • HighCharts圖表控件在ASP.NET WebForm中的使用總結(jié)(全)

    HighCharts圖表控件在ASP.NET WebForm中的使用總結(jié)(全)

    這篇文章主要介紹了HighCharts圖表控件在ASP.NET WebForm中的使用總結(jié)(全),需要的朋友可以參考下
    2015-08-08
  • C#生成PDF的方法

    C#生成PDF的方法

    這篇文章主要介紹了C#生成PDF的方法,幫助大家更好的理解和使用c#編程語言,感興趣的朋友可以了解下
    2020-12-12
  • C#如何實現(xiàn)用戶名與密碼登錄

    C#如何實現(xiàn)用戶名與密碼登錄

    這篇文章主要介紹了C#如何實現(xiàn)用戶名與密碼登錄問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解C#中String.ToCharArray方法的使用

    詳解C#中String.ToCharArray方法的使用

    這篇文章主要為大家詳細介紹了C#中String.ToCharArray方法的使用的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • C#使用LINQ查詢表達式的基本子句總結(jié)

    C#使用LINQ查詢表達式的基本子句總結(jié)

    這篇文章主要介紹了C#使用LINQ查詢表達式的基本子句總結(jié),在C#程序中我們可以使用LINQ基本查詢表達式模式來查詢和轉(zhuǎn)換SQL數(shù)據(jù)庫、ADO.NET數(shù)據(jù)集、XML文檔和流以及.NET集合中的數(shù)據(jù),需要的朋友可以參考下
    2016-03-03
  • C#初始化數(shù)組的方法小結(jié)

    C#初始化數(shù)組的方法小結(jié)

    這篇文章主要介紹了C#初始化數(shù)組的方法,總結(jié)分析了C#聲明與初始化一維數(shù)組及多維數(shù)組的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 詳解C#擴展方法原理及其使用

    詳解C#擴展方法原理及其使用

    這篇文章主要介紹了C#擴展方法原理及其使用的的相關(guān)資料,文中代碼非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C#從文件流讀取xml文件到DataSet并顯示的方法

    C#從文件流讀取xml文件到DataSet并顯示的方法

    這篇文章主要介紹了C#從文件流讀取xml文件到DataSet并顯示的方法,實例分析了C#操作XML文件的技巧與DataSet的使用方法,需要的朋友可以參考下
    2015-04-04

最新評論