首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个合适的开源或低成本的.net SDK,它具有解析PDF文本的功能?

是否有一个合适的开源或低成本的.net SDK,它具有解析PDF文本的功能?
EN

Software Recommendation用户
提问于 2023-04-20 17:40:23
回答 2查看 33关注 0票数 0

我试图编写一个独立的Windows应用程序,或者使用C#或VB .net编写一个VSTO外接程序,它可以读取一个PDF文件并从中提取数据。我得到的文件是从州数据库中创建的交通事故记录列表,每一次事故记录都包括环境数据、事故细节和涉及各方的信息。

在我收到的PDF清单中,每一次坠机的所有数据都被一个方框包围,因此为了获取数据,我设想首先检测记录周围的正方形,然后从该方块的左上角或右上坐标开始,大多数不同的数据总是位于相同的相对位置。但是正方形的大小并不总是一样的,因为可能会有多方参与,每个方都列在每个记录的底部。当解析器到达盒子底部的y坐标时,我会指示解析器查找下一个崩溃记录。可以有其他策略来提取数据,但这种方法似乎是目前最容易编码的方法。信息已经是可搜索的文本,所以我不需要OCR来数字化数据。我只需要把它放在Excel电子表格或其他类型的文件中,这些文件可以被Excel读取以进行计算。我不需要API,只要它将与Visual集成。

这纯粹是为了帮助我自己的工作,我不打算出售我的产品使用SDK,所以版税不是一个问题。我不是专业的软件开发人员,但我学习了C#和VB .net,这样我就可以自动化重复或迭代计算,并执行其他与工程相关的普通任务。我不需要创建PDF,也不需要编辑它们,我只需要读取数据。因为我不打算直接从这个项目中赚到钱,所以我不能为只用于解析这些PDF文件的SDK支付年度许可证或一次性费用。我不期望免费得到它,如果它的成本对我有限的使用来说是合理的,我愿意为此付出代价。

我的预算大概在250美元以下。对我来说,不用手工解析事故历史是很有价值的。我会接受更高的成本,但不会更高。

有什么建议吗?

EN

回答 2

Software Recommendation用户

发布于 2023-04-25 10:51:04

您可以尝试同步PDF库

这种高性能和功能丰富的.NET PDF框架不依赖Adobe。它有一个PDF创建和编辑库,允许您在任何.NET应用程序中以编程方式创建、读取和编辑PDF文件。它提供PDF查看器控件来查看、查看和打印PDF文件。它强大的转换API使其易于将HTML、Word、Excel、PowerPoint和图像转换为PDF格式。

https://www.syncfusion.com/document-processing/pdf-framework/net

Syncfusion还提供了免费的社区许可证。https://www.syncfusion.com/products/communitylicense

注:我在同步公司工作。

票数 0
EN

Software Recommendation用户

发布于 2023-04-25 18:20:19

既然您提到Excel,我想您也有Office,或者至少WORD,在这种情况下,您可以使用word的pdf函数,并在您的.net代码中使用它们。下面是一个使用VBA将pdf数据输入excel的示例,没有外部程序(除了office本身)。这是为了从表中获取数据,而不是从框中获取数据(我认为这些数据需要使用形状而不是表格,或者可能是.Pages(1).Rectangles.Item(n).Range)。

代码语言:javascript
复制
Sub read_pdf_document_tables()

Const PDFPath As String = "C:\Users\xxxxxx\Documents\Book2.pdf"

Dim sht As Worksheet
Dim WDoc As Word.Document
Dim WApp As Word.Application
Dim i As Long, r As Long, c As Long
Dim rng As Range, t As Word.Table

    Set WApp = CreateObject("Word.Application")
    WApp.Visible = True
    Set WDoc = WApp.Documents.Open(PDFPath, ConfirmConversions:=False, ReadOnly:=False)

    Set sht = Sheets("Temp")
    Set rng = sht.Range("A1")
    sht.Activate

    For Each t In WDoc.Tables
        t.Range.Copy
        rng.Select
        rng.Parent.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
        With rng.Resize(t.Rows.Count, t.Columns.Count)
            .Cells.UnMerge
            Cells.Columns.AutoFit
            Cells.Rows.AutoFit
        End With

        Set rng = rng.Offset(t.Rows.Count + 2, 0)
    Next t
    WDoc.Close
    WApp.Quit
End Sub
票数 0
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/86879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档