You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PyMuPDF为PDF下拉框设置显示值与导出值?

PyMuPDF设置PDF下拉框(ComboBox)的显示值与导出值问题

在Adobe JavaScript中,我们可以通过f.setItems( ["Ohio", "OH"], ["Oregon", "OR"], ["Arizona", "AZ"] );同时为下拉框定义显示文本和对应的导出值,但在PyMuPDF里,仅设置widget.choice_values = ["Ohio", "Oregon", "Arizona"]只能添加显示选项,无法关联导出值,甚至尝试其他写法会导致Jupyter Notebook内核崩溃。

解决方法

PyMuPDF其实支持设置导出值,只需配合使用widget.export_values属性,它和choice_values是两个平行列表,索引位置一一对应即可:

import fitz

# 打开目标PDF
doc = fitz.open("your_form.pdf")
# 获取第一页的表单控件
page = doc[0]
widgets = page.widgets()

# 定位到目标ComboBox控件
combo_box = None
for w in widgets:
    if w.field_type == fitz.PDF_WIDGET_TYPE_COMBOBOX:
        combo_box = w
        break

# 设置显示值和对应的导出值
combo_box.choice_values = ["Ohio", "Oregon", "Arizona"]
combo_box.export_values = ["OH", "OR", "AZ"]

# 保存修改后的PDF
doc.save("updated_form.pdf")
doc.close()

注意事项

  • choice_values和export_values的列表长度必须完全一致,每个位置的元素对应一个下拉选项的显示文本和导出值。
  • 之前内核崩溃大概率是因为错误的赋值方式(比如直接传入类似JS的嵌套列表格式),PyMuPDF不支持这种写法,分开设置两个平行列表即可避免问题。

内容的提问来源于stack exchange,提问作者Camilo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:30:05