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

PyPDF2 add_bookmark用/XYZ参数报错ValueError,求正确语法

PyPDF2 add_bookmark 精确位置书签的正确用法

你遇到的ValueError是因为使用fit="/XYZ"时,必须同时传入left、top、zoom三个参数——这三个参数对应PDF/XYZ定位方式的三个坐标值,缺一不可,你只指定了fit="/XYZ"但没传这三个值,所以触发了解包错误。

正确语法示例

1. 指向精确坐标位置

如果你需要跳转到某页的特定位置,比如第1页(索引0)的左边界0、顶部1000点、缩放1.0倍,代码应该这样写:

writer.add_bookmark("Hello, World", page_number=0, parent=parent, fit="/XYZ", left=0, top=1000, zoom=1.0)
  • 这里的left是页面左偏移量,top是页面顶部偏移量(PDF坐标原点在左下角,单位为点),zoom是缩放比例(1.0就是原大小)。
  • 如果不需要嵌套书签,parent可以设为None。

2. 指向页面默认位置(无需精确坐标)

如果只是想跳转到某页的默认显示位置,不需要精确坐标,可以改用其他fit类型,比如"/Fit"(适配页面到窗口),此时不需要额外参数:

writer.add_bookmark("Hello, World", 0, parent=None, fit="/Fit")

补充说明

PyPDF2的add_bookmark方法中,不同的fit值对应不同的参数要求:

  • /Fit、/FitH、/FitV等类型不需要额外坐标参数;
  • /XYZ必须配合left、top、zoom三个参数使用,否则会触发参数缺失错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:42:06