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

如何用Python的PyPDF2库勾选PDF中的单选按钮?

解决PyPDF2无法勾选PDF单选按钮的问题

问题分析

你用PyPDF2填充文本字段正常,但无法勾选名为“Case d'option 1”的单选按钮组(含5个选项),核心原因是你尝试的两种方式都不符合PyPDF2处理单选按钮的逻辑——单选按钮组不需要传入复杂字典或选项列表,直接给组名设置对应选项的导出值即可。

解决步骤

  1. 确认单选按钮的导出值
    先运行以下代码,查看目标单选按钮组的详细信息,找到每个选项对应的导出值(/V字段):

    import PyPDF2
    from PyPDF2 import PdfReader
    
    reader = PdfReader("c3.pdf")
    fields = reader.get_fields()
    # 遍历找到目标字段
    for field_name, field_data in fields.items():
        if field_name == "Case d'option 1":
            print("字段详情:", field_data)
            # 查看子选项的导出值
            if "/Kids" in field_data:
                for kid in field_data["/Kids"]:
                    kid_field = fields.get(kid)
                    if kid_field:
                        print(f"子选项值: {kid_field.get('/V')}, 显示文本: {kid_field.get('/Opt')}")
    

    运行后你会看到类似/1、/2或者Choix1、Choix2这样的导出值,这就是勾选对应选项需要设置的值。

  2. 修改填充代码
    直接在update_page_form_field_values中给“Case d'option 1”赋值对应导出值即可,比如勾选第一个选项(假设导出值是/1):

    import PyPDF2
    import os
    from PyPDF2 import PdfReader, PdfWriter
    
    os.chdir("D:\User\Desktop\fill_PDF_PY")
    
    reader = PdfReader("c3.pdf")
    writer = PdfWriter()
    page = reader.pages[0]
    writer.add_page(page)
    
    nomeid= "test"
    
    writer.update_page_form_field_values(
        writer.pages[0], {
            "Champ de texte 1": nomeid,
            "Champ de texte 5": "works1",
            "Champ de texte 6": "works2",
            "Champ de texte 8": "works3",
            "Champ de texte 144": "data in",
            "Champ de texte 143": "data out",
            "Case d'option 1": "/1"  # 替换为你查到的第一个选项的导出值
            # 若要勾选第二个选项,改为对应的值比如"/2"或"Choix2"
        }
    )
    
    with open("filled-out5.pdf", "wb") as output_stream:
        writer.write(output_stream)
    

关键说明

  • 单选按钮组共享同一个字段名,直接给组名赋值选中选项的导出值,PyPDF2会自动处理勾选逻辑。
  • 不同PDF的单选按钮导出值格式可能不同,必须通过第一步的代码确认具体值,不能凭猜测填写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:35:27