[英]PDFTron: What is the proper way to find date fields in a PDF form
[PdfTron 5.2]我有一个包含文本和日期字段的PDF表单。 我想找到日期字段。 我可以使用getActions()获取该字段的操作。
field.getActions()
回报
{"F":[{"yc":"JavaScript","Gt":"AFDate_FormatEx(\"dd.mm.yyyy\");"}],
"K":[{"yc":"JavaScript","Gt":"...);","ey":null}]}
如您所见,日期在actions.F[0].Gt
。 但是检查actions.F[0].Gt
中的“ AFDate”似乎是错误的,这太低了。
有没有更好的API函数可以找出我有一个日期字段?
谢谢。
你是对的。 Gt属性会被混淆和缩小,这是易变的,不打算使用。 如果您需要API,请参阅我们的文档 。 除了一些内容(其中一个将在下面使用)之外,所有内容都应该可用。但是,如果您确实需要帮助,请随时与我们联系!
不幸的是,目前没有API可以获取该类型。 据我有限的理解,字段的“类型”是由附加的操作确定的,而不仅仅是特定的类型或标志。 这表明所有字段都是具有特殊格式设置操作的文本字段,以使其看起来和日期日期或数字字段相似。
在这种情况下,您将必须检查格式化操作( F ),就像您已经注意到的日期格式化功能( AFDate_FormatEx )一样。 要从该操作中获取JavaScript,您应该在文档中未使用的操作上使用javascript属性。 但是,如果您通过控制台记录操作,则可以看到它。
这是一个例子:
const dateActionJs = /.+:"AFDate_FormatEx\(.*/;
instance.docViewer.on('annotationsLoaded', () => {
const annotations = annotManager.getAnnotationsList();
annotations.forEach(annot => {
const actions = annot.getField().getActions();
if (actions.F && actions.F[0] && actions.F[0].javascript && dateActionJs.test(actions.F[0].javascript)) { // F = Format Action
console.log('Found Date');
}
});
});
让我知道这是否有帮助!
编辑:您可以搜索AFDate而不是AFDate_FormatEx足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.