【C#】利用免费PdfPig库读取PDF并提取表格内容保存为TXT文本文件代码
|
admin
2025年2月20日 16:38
本文热度 1525
|
如果你需要完全免费的 PDF 处理库,可以考虑PdfPig方案:
以下是一个使用 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";
var tableData = ExtractTableFromPdf(pdfPath);
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) 代码说明
效果说明:
下面是原始PDF文件样式:

下面是解码结果:
总结
该文章在 2025/2/20 16:43:20 编辑过