LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】利用免费PdfPig库读取PDF并提取表格内容保存为TXT文本文件代码

admin
2025年2月20日 16:38 本文热度 297

如果你需要完全免费的 PDF 处理库,可以考虑PdfPig方案:

  • 特点:PdfPig 是一个开源的 .NET 库,专注于读取 PDF 文件内容(包括文本、表格等)。

  • 许可证:Apache 2.0 许可证,完全免费,可用于商业项目。

  • GitHub 地址https://github.com/UglyToad/PdfPig

  • 适用场景:适合提取 PDF 中的文本和表格数据。

以下是一个使用 PdfPig 提取 PDF 表格并保存为 Excel 的示例代码:

(1) 安装 NuGet 包

Install-Package PdfPig

(2) 示例代码

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using UglyToad.PdfPig;

using UglyToad.PdfPig.Content;

using OfficeOpenXml;

class Program

{

    static void Main(string[] args)

    {

        string pdfPath = "input.pdf";

        string excelPath = "output.xlsx";

        // 提取 PDF 中的表格数据

        var tableData = ExtractTableFromPdf(pdfPath);

        // 将表格数据保存为 Excel 文件

        SaveTableToText(tableData, excelPath);

        Console.WriteLine("PDF 表格已成功转换为 Excel 文件。");

    }


    static List<List<string>> ExtractTableFromPdf(string pdfPath)

    {

        var tableData = new List<List<string>>();

        using (var pdfDocument = PdfDocument.Open(pdfPath))

        {

            foreach (var page in pdfDocument.GetPages())

            {

                var words = page.GetWords(); // 获取页面中的单词

                var lines = words.GroupBy(w => w.BoundingBox.Bottom) // 按行分组

                                  .OrderByDescending(g => g.Key);

                foreach (var line in lines)

                {

                    var columns = line.OrderBy(w => w.BoundingBox.Left) // 按列排序

                                      .Select(w => w.Text)

                                      .ToList();

                    tableData.Add(columns);

                }

            }

        }

        return tableData;

    }


    static void SaveTableToText(List<List<string>> tableData, string excelPath)

    {

        for (int i = 0; i < tableData.Count; i++)

        {

            string tmpStr="";

            for (int j = 0; j < tableData[i].Count; j++)

            {

                tmpStr = tmpStr + "|" + tableData[i][j];

            }

            Console.WriteLine("----------------------");

            Console.WriteLine(tmpStr);

        }

    }

}

(3) 代码说明

  • ExtractTableFromPdf:使用 PdfPig 提取 PDF 中的文本,并按行和列组织成表格数据。

  • SaveTableToExcel:使用 EPPlus 将表格数据保存为 Excel 文件。


效果说明:

下面是原始PDF文件样式:

 下面是解码结果:

 



总结

  • 如果你需要完全免费的解决方案,推荐使用 PdfPig

  • 如果你需要更强大的功能,并且可以接受商业许可,可以选择 iTextSharp 或 iText 7


该文章在 2025/2/20 16:43:20 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved