我正在寻找一种C#解决方案,将数据从PDF文档导入到我们的数据库中,在一个商业应用程序中。我们的客户将期待进口任何任意文件。通常,我认为这是完全不可能的,但是他们正在导入的文档将在他们自己的设置布局中。
我的计划是让PDF呈现为静态图像,然后允许用户设置自己的模板,这基本上是在PDF中的预定义像素偏移提取文本,使用OCR。对于表,它们定义表的位置以及列和行大小的进一步值。然后,我们可以将模板应用于该文档类型。
所以,我真正要找的是两个库:一个把PDF转换成图像,另一个转换到OCR --这些图像。
要求:
我们当然不介意为一个商业解决方案付费,但我们不想为软件的每个发行版支付费用。
我知道这是一个非常具体的要求--也许对某些人来说,这已经足够让一些人认为这个问题过于本土化了,但我希望有人能提出一种方法和一些图书馆,这些方法和图书馆对我和其他人都有帮助。
我看过的PDF方面的东西:
对于OCR方面,我可能最终会使用Tesseract,因为Apache许可证是允许的,并且得到了很好的评价。如果有别的选择,我也会对此感兴趣的。
发布于 2012-05-31 17:58:06
发布于 2012-05-31 13:30:51
我想为这项任务推荐Amyuni创造者.Net。
第一种场景:
如果您的PDF文件定义良好(没有缺少字体信息等),则可以通过在方法GetObjectsInRectangle中指定矩形区域直接从PDF中提取文本。您还应该使用选项acGetRectObjectsOptimize
在返回文本对象之前对它们进行优化。也就是说,将彼此相近的文本对象组合成一个文本对象。
第二个场景:
如果涉及的图像也包含文本,则将整个页面呈现为图像,然后应用OCR可能是一个更好的选择。您可以使用Amyuni .Net使用ExportToTiff、ExportToJPeg或RasterizePageRange方法来完成此操作。
从文件中:
IacDocument.RasterizePageRange法 RasterizePageRange方法将页面内容转换为颜色或灰度图像。在归档文档或执行OCR时,有时最好将所有页面存储为图像,而不是复杂的文本和图形操作。
然后,您可以使用与Tesseract OCR集成的OCR加件,最后我们再次进入第一个场景(GetObjectsInRectangle)。为了将OCR应用于您的文件,您可以使用OCRPageRange方法。
void OCRPageRange(int startPage,int EndPage,string Language,acOCROptions选项)
关于许可,Amyuni .Net提供(每个应用程序)免费许可。
通常免责声明适用
https://stackoverflow.com/questions/10831963
复制相似问题