我有来自扫描仪的 PDF 文档。此 PDF 包含由工作人员填写并签署的一天工作表格。我想在每种表单类型上放置 OCR 文本的条形码或标准区域,以便可以根据表单类型以编程方式将批量扫描拆分为单独的 PDF 文档。
我想在 Microsoft .net 2.0 中执行此操作
如果没有可用的开源名称空间/dll,我可以购买完成任务所需的 Adobe 或其他名称空间/dll。
不是免费或开源选项,但您也可以将webSuperGoo 的 ABCPdf作为 Adobe 的另一种替代品。
您可以研究 iTextSharp 库,它可以拆分 pdf 文件。但这对于阅读实际的pdf并不是很好。所以我不知道它怎么知道在哪里拆分它们。
有些公司已经为您这样做了。您可以研究 kwiktag 公司。
iTextSharp 将帮助您将条形码拆分、重组和应用到 .NET 语言的 pdf 中。我不认为它可以 OCR 文档,但我没有看过(我使用了 Abby Fine Reader 引擎)。
从您的问题标题中,我假设您只需要拆分 PDF 文件并且它们已经是 OCR 了。有一些开源的 .NET PDF 库。我已经在自己的项目中成功使用了PDFSharp。
这是一个快速片段,展示了如何使用 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 属性。
查看 hp 在 90 年代后期开发的 c++ ocr 引擎周围的Tesseract .NET 包装器(v 2.04.0),它因其独创性而获奖