如何在 Abbyy Fine Reader Engine 12 中启用条码识别?

How to enable the Barcode recognization in Abbyy Fine Reader Engine 12?

条形码识别在 Abbyy Fine Reader Engine 12 中默认禁用。 为了启用它,我需要将 PageAnalysisParams 对象的 DetectBarcodes 属性 设置为 TRUE。 任何人都可以帮助我,我怎样才能在我的 java 代码 sdk 中设置这个 属性 true?

这是我们要设置的属性:

  public native void setDetectBarcodes(boolean arg0);

我们如何从 java 代码中调用本机函数?

因为直接调用它给出的对象的错误。

错误:局部变量pageAnalysisParams可能还没有初始化Java(536870963)

要 get/initalize 一个 IPageAnalysisParams 的实例,您可以:

IPageAnalysisParams pageAnalysisParams = engine.CreatePageAnalysisParams();

您还可以从“文档处理参数”中获取实例,例如:

IDocumentProcessingParams documentparams = engine.CreateDocumentProcessingParams();
IPageAnalysisParams pageAnalysisParams = documentparams.getPageProcessingParams().getPageAnalysisParams();

来源:https://github.com/search?q=IPageAnalysisParams&type=code

查看 public 代码示例,您应该:

  1. 获取IDocumentProcessingParamsdpParams)的实例。
  2. 调整该对象(和子对象(页面分析参数))。
  3. 并将其传递给:document.Process(dpParams);

正如@xerx593 所建议的,以编程方式调整文档处理参数是一个完全有效的答案。

另一个有效的答案是使用配置文件,例如custom_barcode_profile.ini,并根据您的需要进行填充。这使您可以更好地控制和阅读您的个人资料:

...
[PageAnalysisParams]
DetectBarcodes = TRUE
...

使用您的 ABBYY SDK 文档 and/or ABBYY java 包装器 类 微调其他参数,然后不使用 document.Process(dpParams);,实例化一个引擎对象并传递您的custom_barcode_profile.ini 文件给它:

IEngine engine = Engine.InitializeEngine(<your sdk & license params>);
engine.LoadProfile("custom_barcode_profile.ini");
IFRDocument document = engine.CreateFRDocument();
document.AddImageFile("document.png", null, null);
document.Process(null);
document.Export("result.xml", FileExportFormatEnum.FEF_XML, null);

您不能以编程方式将多个预定义配置文件“混合”为一个,您需要将参数添加到自定义配置文件,甚至创建另一个配置文件并将其传递给您的引擎对象。

要在我们稍后定义的配置文件中启用table检测,请在文档中查找影响table检测的参数,例如DetectTables,并将其添加到您的自定义配置文件中:

...
[PageAnalysisParams]
DetectBarcodes = TRUE
DetectTables = TRUE
...