【发布时间】:2010-09-25 04:22:09
【问题描述】:
我有来自扫描仪的 PDF 文档。此 PDF 包含由工作人员填写并签署的一天工作表格。我想在每种表单类型上放置 OCR 文本的条形码或标准区域,以便可以根据表单类型以编程方式将批量扫描拆分为单独的 PDF 文档。
我想在 Microsoft .net 2.0 中执行此操作
如果没有可用的开源命名空间/dll,我可以购买完成任务所需的 Adobe 或其他命名空间/dll。
【问题讨论】:
我有来自扫描仪的 PDF 文档。此 PDF 包含由工作人员填写并签署的一天工作表格。我想在每种表单类型上放置 OCR 文本的条形码或标准区域,以便可以根据表单类型以编程方式将批量扫描拆分为单独的 PDF 文档。
我想在 Microsoft .net 2.0 中执行此操作
如果没有可用的开源命名空间/dll,我可以购买完成任务所需的 Adobe 或其他命名空间/dll。
【问题讨论】:
不是免费或开源选项,但您也可以将 ABCPdf by webSuperGoo 视为 Adobe 的另一种替代方案。
【讨论】:
您可以研究 iTextSharp 库,它可以拆分 pdf 文件。 但这对于阅读实际的pdf并不是很好。所以我不知道它怎么知道在哪里拆分它们。
有些公司已经为您做到了这一点。 你可以研究一下 kwiktag 公司。
【讨论】:
iTextSharp 将帮助您将条形码拆分、重组和应用到 .NET 语言的 pdf。我不认为它可以 OCR 文档,但我没有看过(我使用 Abby Fine Reader 引擎)。
【讨论】:
根据您问题的标题,我假设您只需要拆分 PDF 文件并且它们已经进行了 OCR 处理。有一些开源的 .NET PDF 库。我在自己的项目中成功使用了PDFSharp。
这是一个快速的 sn-p,它展示了如何使用 PDFSharp 从 PDF 文档中剔除每一页:
string filePath = @"c:\file.pdf";
using (PdfDocument ipdf = PdfReader.Open(filePath, PdfDocumentOpenMode.ReadOnly))
{
int i = 1;
foreach (PdfPage page in ipdf.Pages)
{
using (PdfDocument opdf = new PdfDocument())
{
opdf.Version = ipdf.Version;
opdf.AddPage(page);
opdf.Save("page " + i++ + ".pdf");
}
}
}
假设您还需要访问文档中的文本以进行分组,您可以使用 PdfPage.Contents 属性。
【讨论】:
您可以使用多个,试试这些免费工具:
【讨论】:
查看Tesseract .NET wrapper (v 2.04.0) 围绕着 hp 在 90 年代后期开发的同名 c++ ocr 引擎,它因其独创性而获奖
【讨论】: