繁体   English   中英

PDFTron:在PDF表单中查找日期字段的正确方法是什么

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM