如果您直接运行开发包中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);
修改后,打印预览时签名可以显示,效果如下: