使用 PyPDF2 将嵌套书签添加到 PDF

2024-03-01

的文档PyPDF2 https://github.com/mstamy2/PyPDF2/指出可以向 PDF 文件添加嵌套书签,并且代码出现(阅读后)以支持此操作。

向根树添加书签很容易(请参见下面的代码),但我无法弄清楚我需要传递什么作为parent创建嵌套书签的参数。我想创建一个像这样的结构:

Group A
    Page 1
    Page 2
Group A
    Page 3
    Page 4 

这可能吗?

将书签添加到树根的示例代码:

#!/usr/bin/env python
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter() # open output
input = PdfFileReader(open('input.pdf', 'rb')) # open input
output.addPage(input.getPage(0)) # insert page
output.addBookmark('Hello, World', 0, parent=None) # add bookmark

PyPDF2 addBookmark 函数:https://github.com/mstamy2/PyPDF2/blob/master/PyPDF2/pdf.py#L517 https://github.com/mstamy2/PyPDF2/blob/master/PyPDF2/pdf.py#L517


The addBookmark方法返回对其创建的书签的引用,该书签可以用作另一个书签的父级。例如

from PyPDF2 import PdfReader, PdfWriter

writer = PdfWriter()
reader = PdfReader("introduction.pdf")
writer.add_page(reader.pages[0])

reader2 = PdfReader("hello.pdf")
writer.add_page(reader2.pages[0])

parent = writer.add_bookmark("Introduction", 0)  # add parent bookmark
writer.add_bookmark("Hello, World", 0, parent)  # add child bookmark
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PyPDF2 将嵌套书签添加到 PDF 的相关文章

  • 查找公因数以将浮点数列表转换为整数列表

    我有一个来自其他函数的浮点数列表 我所知道的是 在理想世界中存在一个共同因素 可用于将每一项相乘以获得整数列表 可能存在一些小的数值噪声 1e 14 例如 2 3333333333333335 4 666666666666667 1 0 1
  • 使用 pycharm 进行交互式 shell 调试

    我是 PyCharm 新手 我已经使用 IDLE 很长时间了 在IDLE中执行脚本后使用Python对象非常方便 有没有办法在使用 PyCharm 与交互式 python shell 执行后使用脚本对象 例如 我们有一个 测试 项目 其中包
  • 如何在基于其他数据帧的数据帧中创建联接?

    我有 2 个数据框 一份包含学生批次详细信息 另一份包含分数 我想加入 2 个数据框 数据框1包含 s1 s2 s3 Stud1 Stud2 Stud3 Stud2 Stud4 Stud1 Stud1 Stud3 Stud4 数据框2包含
  • 使用 Python pdb 检查未处理异常原因的最简单方法是什么?

    我刚刚将所有单元测试数据从 JSON 转换为 YAML 现在代码中的某处引发了异常 更具体地说 这是打印的回溯 Traceback most recent call last File tests test addrtools py lin
  • 有没有纯Python的表类?

    我正在构建一个需要分析表格数据的应用程序 我想执行一些列操作 例如重命名列 删除列以及根据现有列的值计算新列的能力 我的第一选择是 Pandas 之类的东西 但是一个限制是这个项目必须是跨平台的并且非常容易在 virtualenv 中部署
  • 根据日期列过滤并创建列

    我有一个样本数据如下 date Deadline 2018 08 01 2018 08 11 2018 09 18 2018 12 08 2018 12 18 我想用代码中描述的条件填写截止日期列 如 1 DL 2 DL 3 DL 等 基于
  • Python 中的密码子生成

    我有这段代码 用于将 DNA 字符串转换为密码子列表 然后将此列表转换为具有各自氨基酸的字符串 然而 当我运行代码并且 DNA 字符串以一对核苷酸 例如 CT 而不是三联体结尾时 代码不会生成氨基酸序列 正如您在输出中看到的 from co
  • 表单输入框不显示

    我正在尝试使用 Django 显示一个简单的表单输入文本框 我正在亚马逊 AWS 上部署 该网站在不同的服务器 pythonanywhere 上运行良好 但在 AWS 上存在主要问题 具体来说 输入框没有被显示 我使用的模板如下 首页 ht
  • Redis 队列工作程序在 utcparse 中崩溃

    我正在尝试按照以下教程获得基本的 rq 工作 https blog miguelgrinberg com post the flask mega tutorial part xxii background jobs https blog m
  • PDF 附件 NodeMailer

    预先感谢您的回复 我编写了一些使用nodemailer 0 7 1的代码 它发送电子邮件并将pdf附加到电子邮件中 但是 pdf 附件在编码时会自行损坏或截断或发生其他情况 我之所以说这是附件之前的文件 即我本地的文件 是512kb 而电子
  • 确定列的累积最大值

    我正在尝试以下代码 df pd DataFrame 23 52 36 49 52 61 75 82 97 12 columns A B df C np where df A gt df C shift df A df C shift pri
  • 使用Python处理Sqlite数据库中的换行符“\n”?

    我有一个名为 test db 的 Sqlite 数据库 其中包含两个表 其结构如下 表 1 ID 整数主键自动增量 名称 varchar 500 颜色 varchar 500 表2 ID INTEGER PRIMARY KEY AUTOIN
  • pyqt4窗口调整大小事件

    我正在使用 python3 和 pyqt4 我希望每次运行时都会运行一些代码QMainWindow已调整大小 我想要这样的东西 self window resized connect self resize but resized不是内置函
  • 如何将 MP3 音频文件读入 numpy 数组/将 numpy 数组保存到 MP3?

    有没有办法从 MP3 音频文件中读取 写入 MP3 音频文件numpy具有类似 API 的数组scipy io wavfile read https docs scipy org doc scipy 0 14 0 reference gen
  • 如何让 IPython 按类别组织制表符补全的可能性?

    当一个对象有数百个方法时 制表符补全很难使用 通常 有趣的方法是由被检查对象的类而不是其基类定义或重写的方法 如何让 IPython 对其制表符完成可能性进行分组 以便首先检查对象的类中定义的方法和属性 然后是基类中的方法和属性 看起来像是
  • 适用于 Python 的 GitLab CI 共享 Windows 运行器

    我在 GitLab 中有一个 python 项目仓库 我看到 GitLab 共享了可用的测试版 Windows 运行程序 请参阅this https about gitlab com blog 2020 01 21 windows shar
  • Python UPnP/IGD 客户端实现?

    我正在寻找一个开源实现UPnP http elinux org UPnPPython 中的客户端 更具体地说是它的互联网网关设备 http en wikipedia org wiki Internet Gateway Device Prot
  • python webdriver_manager chrome 自定义配置文件

    如何使 webdriver manager chrome 使用自定义 chrome 用户配置文件 我知道对于 selenium webdriver 我可以这样指定 options Options options add argument f
  • Django中的自动递增值

    我在 django 中有一个表并尝试自动递增它的序列号 在自定义模板中 for 循环用于变量 自定义模板 for i in getodeskview tr td 1 td td i odesk id td td i hours td td
  • pandas - 组合行的字符串

    我有一个像这样的数据框 id text 1 DM HTN Enlarged prostate 2 hypertensive and on regular treatment 2 LBP 3 DM HTN Enlarged prostate

随机推荐

  • RAND_MAX 宏:有符号还是无符号?

    我查阅了 C 标准 从 1999 年开始 它只说RAND MAX应该至少为 32767 但没有说明该宏是否应扩展为有符号整数或无符号整数 单一 UNIX 规范 link 1 http pubs opengroup org onlinepub
  • fileprivate 和 private 扩展名之间的区别?

    斯威夫特3 0 我知道fileprivate访问级别修饰符限制对声明它的源文件的函数 属性的使用 并且private 仅限于声明的词法范围 但似乎这条规则不适用于延期 例如 此代码有效 class Foo fileprivate exten
  • 如何从 GoDaddy 导入证书进行 Java 代码签名? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要能够使用 CA 的证书对 jar 文件进行签名 我按照 GoDaddy 文档中有关如何执行此操作
  • oop 中具有状态和行为的对象

    我不断听到术语 对象具有行为和状态 或只是其中之一 但有什么区别或者它意味着什么 如果有人能举一个例子 我将非常感激 灯是一个物体 lamp 中的 状态 开和关 lamp 中的 行为 打开和关闭 在编程中 您在 字段 中声明状态 在 方法
  • 加载 gif 图像在 IE 和 Chrome 中不显示

    我正在使用 JQuery ajax 调用向服务器发送同步调用 并希望显示当时的加载图像 但是加载图像在 Firefox 中可见 但在 IE 和 chrome 中不可见 当我调试时 我发现在 IE 中 当我们调用 java 脚本时 它会停止在
  • MATLAB sgolay(k, f) 的 Python 等效项是什么?

    我在 MATLAB 中有一个函数 b g sgolay k f 它输出一个 f x f 矩阵 当我在 Python 中对相同的 k 和 f 值运行相同的操作时 使用 scipy signal savgol coeffs f k 它输出一个完
  • 在 Bitbucket 中创建拉取请求:错误“不相关的分支”

    我有一个小团队在单个存储库上工作 我要求每个队友创建自己的分支并在该分支上工作 他们所有人都克隆了存储库 然后执行了以下命令 git checkout b BitPankaj BitPankaj是插图分支名称 他们开始在这个分支上工作并通过
  • 我可以使用 LLVM(低级虚拟机)为哪些平台编译二进制文件?

    我对使用 LLVM 的 Clang 编译器感兴趣 LLVM 声称是跨平台的 但尚不清楚可以针对哪些平台 我对此做了很多谷歌搜索 但似乎没有太多关于 LLVM 支持的平台的信息 我唯一发现的是 this http llvm org docs
  • 使用用户的 UID 发送 Firebase 云消息

    我想构建一个 Android 应用程序 允许用户向其他用户发送通知和数据消息 我最近才开始使用 Firebase Firebase 云消息传递对我来说仍然很困惑 我已经实现了向特定的发送消息device使用 Firebase 实例 ID 但
  • 未定义的引用 Json::Value 和 Json::Reader [重复]

    这个问题在这里已经有答案了 当我运行以下代码时 include
  • 从 CSV 文件读取/写入嵌套字典列表 (Python)

    我有一个如下所示的数据结构 data key 1 calc1 42 calc2 3 142 key 2 calc1 123 4 calc2 1 414 key 3 calc1 2 718 calc2 0 577 我希望能够将数据保存 加载到
  • Jenkins 建立健康阈值

    有没有办法改变 Jenkins 根据失败的测试计算构建运行状况的方式 我希望詹金斯治疗any失败的测试不是 阳光明媚 的 但到目前为止 我寻找一种方法来做到这一点还没有结果 标准设置是否允许这种级别的控制 或者是否有插件可以做到这一点 如果
  • 如何在 Android 上将 Google Drive 与 Picasso 集成?

    我正在编写一个在 Google Drive 中存储图像的应用程序 我想显示这些图像的图库 GridView 为了提高性能 即异步 我想将其与Picasso 但是Picasso load String 只是一个别名load Uri parse
  • 来自不同类的特定实例的 Swift 引用变量

    总的来说 我对 Swift 和 iOS 都很陌生 我正在使用 Swift 编写一个应用程序 这个应用程序有两个文件 ViewController swift and BTService swift ViewController swift有
  • 更改控制台中特定字母的颜色

    我正在使用几个形成一个特定的字符串strcat并将其显示到控制台中 该字符串包含以下字符 1 2 3 4 5 6 7 8 9 0 E我正在使用fprintf s 以此目的 例如 2E4137E65922 是代码的可能结果 无论如何我可以写信
  • 如何在 Rails 3 应用程序中分析请求

    如何在 Rails 3 应用程序中分析请求 这个答案 https stackoverflow com questions 2716418 how can i profile a request in rails似乎只适用于 2 我应该如何在
  • Java位移位的奇怪之处

    Java 有 2 个用于右移的位移运算符 gt gt shifts right and is dependant on the sign bit for the sign of the result gt gt gt shifts righ
  • Python + Beam + Flink

    我一直在尝试让 Apache Beam 可移植性框架与 Python 和 Apache Flink 一起使用 但我似乎找不到一套完整的指令来让环境正常工作 是否有任何参考资料包含使简单的 python 管道正常工作的先决条件和步骤的完整列表
  • PHP:如何彻底防止XSS攻击?

    如何才能完全防止 PHP 中的 xss 攻击 这是假设我不关心任何 HTML 标签或其他格式 仅运行 strip tags 并使其完全安全就足够了吗 Both htmlspecialchars and strip tags 被认为可以安全地
  • 使用 PyPDF2 将嵌套书签添加到 PDF

    的文档PyPDF2 https github com mstamy2 PyPDF2 指出可以向 PDF 文件添加嵌套书签 并且代码出现 阅读后 以支持此操作 向根树添加书签很容易 请参见下面的代码 但我无法弄清楚我需要传递什么作为paren