如何通过PyMuPDF或Adobe Acrobat Pro程序化设置PDF表单域为可见且可打印?
如何通过PyMuPDF或Adobe Acrobat Pro程序化设置PDF表单域为可见且可打印?
我想找一种程序化的方式,修改PDF表单域的属性,让它们可见且可打印。目前这些表单域默认处于“可见但不打印”的状态——我已经能用PyMuPDF读取和修改表单域的内容、样式和外观,但就是找不到修改这个打印设置的方法。
手动在Adobe Acrobat Pro里是可以调整这个属性的(就是下图里的选项),但我需要能自动化完成这个操作的方案。另外要说明的是,把PDF扁平化虽然能让内容被打印,但会导致表单失去可填写性,而这些表单是要提供给用户填写,同时用户可能需要打印的,所以扁平化不是可行的解决办法。
不管是PyMuPDF支持的方法,还是Adobe Acrobat Pro里的自动化方案,我都非常欢迎,麻烦大家了!

补充编辑
我基于@KJ提供的示例文件(里面包含四个文本表单域,分别对应四种可能的属性状态)做了测试,使用PyMuPDF 1.24.10版本时,所有域的widget.field_flags都返回0:
import fitz fname = 'fieldstates.pdf' pdf = fitz.open(fname) for page in pdf: widgets = page.widgets() for widget in widgets: print('********************') print('field_name\t', widget.field_name) print('field_flags\t', widget.field_flags)
运行这段代码后的输出如下:
******************** field_name Text1 field_flags 0 ******************** field_name Text2 field_flags 0 ******************** field_name Text3 field_flags 0 ******************** field_name Text4 field_flags 0
备注:内容来源于stack exchange,提问作者BalooRM




