我在 datacap 中有一个项目,可以读取图像、pdf 和 csv,识别表格并以 JSON 格式导出这些表格。
为此,我使用 Datacap Template for C# 编写了一个自定义操作。
此自定义操作中的第一种方法用于加载 CSV,它工作正常,因为它从批处理级别开始,因此我直到后来才意识到我的问题。
这是原型
public bool XLSToJPG(string filePath);
一切都很好,直到我编写了第二种方法来为我的 datacap 中识别的每个字段(例如字符的置信度)编写一些日志。意识到我不能调用其他级别而不是批处理,例如文档、页面、字段或字符级别。
第二种方法的原型
public bool getFieldInfo();
我在调用该方法进行测试时打印当前级别的日志。如果打印 0 则为 Batch 级别,1、2、3、4 分别为 Document、Page、Field 和 Character
我写了日志,试图查看是否为任何级别调用了该方法。在规则集中,我设置了“在...开始时运行”并选择“任何对象”而不是字段。这意味着应该为所有级别调用它。没用。
我尝试什么级别并不重要,它总是打印 0 作为当前级别。
首先,在获得前一个函数的字段后立即在函数内部调用方法(动作),然后我尝试使用自己的规则,然后在自己的规则集中尝试,0 运气;'(。
这是我要运行的方法
public bool getFieldInfo() {
bool response = false;
WriteLog("Getting field confidence...");
WriteLog("Current Level: " + DCO.ObjectType());
string confidence = DCO.AltConfidenceString[0];
WriteLog("The current field confidence is: " + confidence);
response = true;
//switch (DCO.ObjectType()) {
// case Level.Field:
// break;
// default:
// WriteLog("getFieldInfo should run on the field level.");
// break;
//}
return response;
}
您可以看到我是如何用尽选项并移除开关以在每次调用时打印日志的,它总是打印“getFieldInfo 应该在字段级别运行”。
当我在规则的属性中将其设置为执行此操作时,应仅在字段级别调用该操作。
目前我让它在“任何对象”上运行