求个C#用PdfSharp或其他库读取PDF中标准表格的例子(PDF应该就是word或excel转的PDF)
本帖最后由 ilovecomputer66 于 2022-11-28 09:54 编辑手头有一些很标准的pdf表格(可以保证标准,来源应该就是word或者excel直接转为的,因为我通过在线付费的转换网站,可以把PDF转为excel),想用C#编程,读取其中的内容
求个例子,pdfsharp官网的sample没有类似的,基本都是在合并、裁剪或者写内容这种简单的 到悬赏区吧 使用Spire.Pdf中 ExtractText就能读取PDF内容了。前提是你那PDF里面放的不是图片,如果是放图片只能去提取出图片 然后识别图片了。
StringBuilder content = new StringBuilder();
foreach (PdfPageBase page in doc.Pages)
{
content.Append(page.ExtractText());
} zhang120300 发表于 2022-11-28 11:49
使用Spire.Pdf中 ExtractText就能读取PDF内容了。前提是你那PDF里面放的不是图片,如果是放图片只能去 ...
这样出来。还有表格格式么?还能分清行列么。。 https://stackoverflow.com/a/44902182
PDF中并没有“表格对象”这种数据结构,你看到的表格,其底层是文字和直线,只不过位置排列得很整齐而已。
所以似乎没有能够直接取出“表格对象”的方法。只能通过提取文字,并通过“某种方式”分析出文字之间的关系,恢复表格。例如:
| 今天真是个 | 明天应该有 |
| 好天气 | 大暴雨 |
从上表中应该能够提取出“今天真是个”、“明天应该有”、“好天气”、“大暴雨”四句话,但你应该设法以“某种方式”将其恢复成“今天真是个好天气”和“明天有大暴雨”两句,才是真正的单元格内容。
关于“某种方式”如何实现,上面的链接中已经给出了一些方法,并且给出了一个例子:
https://github.com/bubibubi/ExtractTablesFromPdf
xzqsr 发表于 2022-11-28 13:09
https://stackoverflow.com/a/44902182
PDF中并没有“表格对象”这种数据结构,你看到的表格,其底层是 ...
它这个方法做的效果很差,一个表格单元格中如果有换行,它无法正常分辨,就使得不同行和一个行中内容的回车,全部混淆
比网上转换网站的效果差太远 using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System.IO;
// 读取 PDF 文件
PdfDocument document = PdfReader.Open("table.pdf");
// 获取 PDF 中第一页
PdfPage page = document.Pages;
// 使用 PdfSharp 绘图功能渲染 PDF 页面
XGraphics gfx = XGraphics.FromPdfPage(page);
// 使用 XPdfForm 来渲染 PDF 表格
XPdfForm form = XPdfForm.FromTemplate(page);
gfx.DrawImage(form, 0, 0);
// 使用 XFont 和 XBrush 在 PDF 表格上绘制文本
XFont font = new XFont("Arial", 10, XFontStyle.Regular);
XBrush brush = XBrushes.Black;
gfx.DrawString("Hello, World!", font, brush, 10, 10);
// 保存渲染后的 PDF 页面到新文件
document.Save("table_modified.pdf");
页:
[1]