- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试修改 PDF 文件中的文本。文本可以在 Tj
或 BDC
类型的对象中。我找到了正确的对象,如果我在更改它们后直接读取它们,它们会显示更新后的值。
但是如果我将完整的页面传递给 PdfFileWriter,更改就会丢失。我可能正在更新一个副本而不是真实的对象。我检查了 id()
,它是不同的。有人知道如何解决这个问题吗?
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.generic import TextStringObject, NameObject, ContentStream
from PyPDF2.utils import b_
reader = PdfFileReader("some.pdf")
writer = PdfFileWriter()
for page_idx in range(0, 1):
# Get the current page and it's contents
page = reader.getPage(page_idx)
content_object = page["/Contents"].getObject()
content = ContentStream(content_object, reader)
for operands, operator in content.operations:
if operator == b_("BDC"):
operands[1][NameObject("/Contents")] = TextStringObject("xyz")
if operator == b_("Tj"):
operands[0] = TextStringObject("xyz")
writer.addPage(page)
# Write the stream
with open("output.pdf", "wb") as fp:
writer.write(fp)
最佳答案
解决方法是将正在迭代更改的ContentStream
赋值给之后的页面,再传给PdfFileWriter
:
page[NameObject('/Contents')] = content
writer.addPage(page)
关于python - 为什么 PyPDF2.PdfFileWriter 会忘记我对文档所做的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52499339/
我正在尝试将 pdf 拆分成页面并将每个页面另存为新的 pdf。我试过this上一个问题的方法没有成功,pypdf2 拆分示例来自 here没有成功。编辑:我可以在我的文件中看到它确实成功写入了第一页
我正在尝试修改 PDF 文件中的文本。文本可以在 Tj 或 BDC 类型的对象中。我找到了正确的对象,如果我在更改它们后直接读取它们,它们会显示更新后的值。 但是如果我将完整的页面传递给 PdfFil
我有以下代码: import os from pyPdf import PdfFileReader, PdfFileWriter path = "C:/Real Python/Course mater
我正在尝试使用 python 和谷歌应用引擎将两个 pdf 与 pyPdf 库合并。我从 blobstore 中读取文件,并使用我需要的信息创建 PdfFileWriter 对象,但随后我无法将此 P
我是一名优秀的程序员,十分优秀!