0

Abbyy Fine Reader Engine 12 中默认禁用条形码识别。为了启用它,我需要将 PageAnalysisParams 对象的 DetectBarcodes 属性设置为 TRUE。谁能帮助我,如何在我的 java 代码 sdk 中将此属性设置为 true?

这是我们必须设置的属性:

  public native void setDetectBarcodes(boolean arg0);

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

因为直接用对象调用它会出错。

错误:局部变量 pageAnalysisParams 可能尚未初始化Java(536870963) 在此处输入图像描述

4

2 回答 2

0

要获取/初始化您的实例,IPageAnalysisParams您可以:

IPageAnalysisParams pageAnalysisParams = engine.CreatePageAnalysisParams();

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

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

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

查看公共代码示例,您应该:

  1. 获取IDocumentProcessingParams( dpParams) 的实例。
  2. 调整该对象(和子对象(页面分析参数))。
  3. 并将其传递给:document.Process(dpParams);
于 2021-11-10T12:08:53.177 回答
0

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

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

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

使用您的 ABBYY SDK 文档和/或 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);

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

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

...
[PageAnalysisParams]
DetectBarcodes = TRUE
DetectTables = TRUE
...    
于 2021-11-19T15:45:40.607 回答