生成的电子签名在预览文档时可见,但在打印时没有显示。该怎么处理?

如果您直接运行开发包中Signature示例,会发现生成的带签名的文档。用福昕阅读器或其他软件打开,签名时可以显示的。如果选择打印,会发现打印预览里签名并没有显示。如下图所示:

这是因为签名域外观是由Widget类型的注释构成,注释可以设置多钟flag,其中就包括是否在打印时显示的标志:Annot.e_FlagPrint

改为打印时可见。请参考下方示例,在签名前对签名域的flag进行修改:

com.foxit.sdk.pdf.Signature new_sig = pdf_page        .addSignature(new_sig_rect);
//获取签名域当前的flags
        int flgas= new_signature.getControl(pdf_page,0).getWidget().getFlags();
  //加上打印显示的flag
new_signature.getControl(pdf_page,0).getWidget().setFlags(flgas|Annot.e_FlagPrint);

修改后,打印预览时签名可以显示,效果如下: