ilovecomputer66 发表于 2022-11-28 09:44

求个C#用PdfSharp或其他库读取PDF中标准表格的例子(PDF应该就是word或excel转的PDF)

本帖最后由 ilovecomputer66 于 2022-11-28 09:54 编辑

手头有一些很标准的pdf表格(可以保证标准,来源应该就是word或者excel直接转为的,因为我通过在线付费的转换网站,可以把PDF转为excel),想用C#编程,读取其中的内容

求个例子,pdfsharp官网的sample没有类似的,基本都是在合并、裁剪或者写内容这种简单的

Broadm 发表于 2022-11-28 11:16

到悬赏区吧

zhang120300 发表于 2022-11-28 11:49

使用Spire.Pdf中 ExtractText就能读取PDF内容了。前提是你那PDF里面放的不是图片,如果是放图片只能去提取出图片 然后识别图片了。

StringBuilder content = new StringBuilder();
            foreach (PdfPageBase page in doc.Pages)
            {
                content.Append(page.ExtractText());
            }

ilovecomputer66 发表于 2022-11-28 11:52

zhang120300 发表于 2022-11-28 11:49
使用Spire.Pdf中 ExtractText就能读取PDF内容了。前提是你那PDF里面放的不是图片,如果是放图片只能去 ...

这样出来。还有表格格式么?还能分清行列么。。

xzqsr 发表于 2022-11-28 13:09

https://stackoverflow.com/a/44902182

PDF中并没有“表格对象”这种数据结构,你看到的表格,其底层是文字和直线,只不过位置排列得很整齐而已。
所以似乎没有能够直接取出“表格对象”的方法。只能通过提取文字,并通过“某种方式”分析出文字之间的关系,恢复表格。例如:


| 今天真是个 | 明天应该有 |
| 好天气   | 大暴雨   |


从上表中应该能够提取出“今天真是个”、“明天应该有”、“好天气”、“大暴雨”四句话,但你应该设法以“某种方式”将其恢复成“今天真是个好天气”和“明天有大暴雨”两句,才是真正的单元格内容。

关于“某种方式”如何实现,上面的链接中已经给出了一些方法,并且给出了一个例子:
https://github.com/bubibubi/ExtractTablesFromPdf

ilovecomputer66 发表于 2022-11-28 14:23

xzqsr 发表于 2022-11-28 13:09
https://stackoverflow.com/a/44902182

PDF中并没有“表格对象”这种数据结构,你看到的表格,其底层是 ...

它这个方法做的效果很差,一个表格单元格中如果有换行,它无法正常分辨,就使得不同行和一个行中内容的回车,全部混淆

比网上转换网站的效果差太远

陈总ing丶 发表于 2022-12-20 10:06

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]
查看完整版本: 求个C#用PdfSharp或其他库读取PDF中标准表格的例子(PDF应该就是word或excel转的PDF)