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

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

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

如果你需要完全免费的 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