如何使用java OCR阅读PDF模板

时间:2012-07-24 04:36:04

标签: java pdf ocr

有人可以为下面的情况提出解决方案吗?

我们有餐厅的菜单。每间餐厅都有自己的菜单。目标是识别菜单中的元素,如菜单项,浇头,价格等,并更新数据库。

Fox示例:餐馆菜单可以包含名为“Sandwiches”的组中的“Chicken”,“Vegetarian”等菜单项。

为此,我计划使用OCR的java实现。这会成功吗?

4 个答案:

答案 0 :(得分:1)

如果您想在代码中使用OCR,可以使用Tessrect-OCR进行本地开发。它是一个非常强大的库,具有快速输出。此链接用于Tessrect的包装类,或者您也可以使用{ {3}}替代Tesjeract(第一个)。这是谷歌使用的相同库,你也可以添加多种语言支持。

答案 1 :(得分:1)

将PDF转换为图像(使用javacv等)并使用tesseract或tess4j对其进行OCR。它不是永久性或最佳解决方案,但效果很好!

答案 2 :(得分:0)

如果您正在输入PDF,然后使用它,则无需执行此操作;只需阅读PDF(见下文)。但是,如果您正在扫描PDF(图像而非文本),则需要使用OCR。

要从文件中读取PDF,您可以使用iTextPDFBox

之类的内容

答案 3 :(得分:0)

有趣的项目! Java或任何其他语言,我认为OCR不够准确,无法满足您的需求。菜单通常使用非标准字体打印,有时使用背景图像,这使得OCR难以准确读取每个单词。然后你有格式化的挑战。有些菜单可以按鸡肉,素食,牛肉来组织内容。其他可能有Light Fare,Entree,Appetizer,small plates等类别。

这对我来说是一次真正的数据工程挑战。虽然菜单看起来像是分层的,但它们的实际结构非常灵活,各种各样的东西各不相同。在这个混乱中加入OCR会给这个混乱带来错别,现在你需要寻找像“鸡”这样的词,因为你可能实际上有Chicen或Cichen或者(h1ckn。

也许我从来没有使用过非常棒的OCR软件,我想象的是一个不存在的问题。我认为大多数餐馆都会在电脑上输入菜单,你最好还是让他们与你分享这些文件。