最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

程序環(huán)境

本次測試時(shí),在程序中引入 Spire.PDF.dll 文件。

方法1:

將 ? ?Free Spire.PDF for .NET?? 下載到本地,解壓,找到 BIN 文件夾下的 Spire.PDF.dll。然后在 Visual Studio 中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”,將本地路徑 BIN 文件夾下的 dll 文件添加引用至程序。

方法2:

通過NuGet??安裝。可通過以下 2 種方法安裝:

1. 可以在 Visual Studio 中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理 NuGet 包”,然后搜索“Free Spire.PDF”,點(diǎn)擊“安裝”。等待程序安裝完成。

2. 將以下內(nèi)容復(fù)制到 PM 控制臺安裝。

Install-Package FreeSpire.PDF -Version 8.6.0

從PDF中提取表格具體步驟

實(shí)例化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)
        {
            //實(shí)例化PdfDocument類的對象
            PdfDocument pdf = new PdfDocument();

            //加載PDF文檔
            pdf.LoadFromFile("編程語言1.pdf");

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

            //實(shí)例化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())
      '實(shí)例化PdfDocument類的對象
      Dim pdf As New PdfDocument()

      '加載PDF文檔
      pdf.LoadFromFile("編程語言1.pdf")

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

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

相關(guān)文章

  • c# linq的差集,并集,交集,去重代碼(分享)

    c# linq的差集,并集,交集,去重代碼(分享)

    下面小編就為大家分享一篇c# linq的差集,并集,交集,去重代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • C#多線程之Semaphore用法詳解

    C#多線程之Semaphore用法詳解

    這篇文章主要為大家詳細(xì)介紹了C#多線程之Semaphore用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • c# 識別圖片格式的方法

    c# 識別圖片格式的方法

    這篇文章主要介紹了c# 識別圖片格式的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-02-02
  • c# 數(shù)據(jù)標(biāo)注與數(shù)據(jù)校驗(yàn)

    c# 數(shù)據(jù)標(biāo)注與數(shù)據(jù)校驗(yàn)

    這篇文章主要介紹了c# 數(shù)據(jù)標(biāo)注與數(shù)據(jù)校驗(yàn)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-10-10
  • C#利用ASP.NET?Core開發(fā)學(xué)生管理系統(tǒng)詳解

    C#利用ASP.NET?Core開發(fā)學(xué)生管理系統(tǒng)詳解

    隨著技術(shù)的進(jìn)步,跨平臺開發(fā)已經(jīng)成為了標(biāo)配,在此大背景下,ASP.NET?Core也應(yīng)運(yùn)而生。本文主要利用ASP.NET?Core開發(fā)一個(gè)學(xué)生管理系統(tǒng),感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • C#中圖片如何自適應(yīng)pictureBox大小

    C#中圖片如何自適應(yīng)pictureBox大小

    文章描述了如何在C#中實(shí)現(xiàn)圖片自適應(yīng)pictureBox大小,并展示修改前后的效果,修改步驟包括兩步,作者分享了個(gè)人經(jīng)驗(yàn),希望對大家有所幫助
    2025-01-01
  • C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法

    C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法

    這篇文章主要介紹了C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法,涉及C#線程與隊(duì)列的相關(guān)操作技巧,需要的朋友可以參考下
    2015-07-07
  • C# OpenVINO讀取百度模型實(shí)現(xiàn)印章檢測

    C# OpenVINO讀取百度模型實(shí)現(xiàn)印章檢測

    這篇文章主要為大家詳細(xì)介紹了C# OpenVINO如何通過直接讀取百度模型實(shí)現(xiàn)印章檢測,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C#接口interface用法實(shí)例

    C#接口interface用法實(shí)例

    這篇文章主要介紹了C#接口interface用法,實(shí)例分析了C#接口的基本使用方法,需要的朋友可以參考下
    2015-06-06
  • C# Main方法的傳入?yún)?shù)研究

    C# Main方法的傳入?yún)?shù)研究

    這篇文章主要介紹了C# Main方法的傳入?yún)?shù)研究,相信大家不管是在java中還是C#中都經(jīng)常見到public static void Main(string[] args)類似的語句,那這個(gè)args到底有什么用,你又知道多少呢?本文就專門研究了這個(gè)參數(shù),相信可以讓漲姿勢,需要的朋友可以參考下
    2015-06-06

最新評論

武宁县| 城步| 罗城| 葵青区| 红安县| 类乌齐县| 沛县| 通城县| 兴文县| 德令哈市| 东乌珠穆沁旗| 东阳市| 色达县| 叙永县| 洛川县| 礼泉县| 宁国市| 安西县| 团风县| 贺州市| 通许县| 白河县| 陆良县| 鄱阳县| 梁平县| 湄潭县| 德庆县| 绥德县| 东城区| 河源市| 滨海县| 浦城县| 宁化县| 乌什县| 甘德县| 利川市| 库车县| 东平县| 林口县| 大同市| 永川市|