You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过PyMuPDF或Adobe Acrobat Pro程序化设置PDF表单域为可见且可打印?

如何通过PyMuPDF或Adobe Acrobat Pro程序化设置PDF表单域为可见且可打印?

我想找一种程序化的方式,修改PDF表单域的属性,让它们可见且可打印。目前这些表单域默认处于“可见但不打印”的状态——我已经能用PyMuPDF读取和修改表单域的内容、样式和外观,但就是找不到修改这个打印设置的方法。

手动在Adobe Acrobat Pro里是可以调整这个属性的(就是下图里的选项),但我需要能自动化完成这个操作的方案。另外要说明的是,把PDF扁平化虽然能让内容被打印,但会导致表单失去可填写性,而这些表单是要提供给用户填写,同时用户可能需要打印的,所以扁平化不是可行的解决办法。

不管是PyMuPDF支持的方法,还是Adobe Acrobat Pro里的自动化方案,我都非常欢迎,麻烦大家了!

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

火山引擎 最新活动