我正在尝试使用 PyPDF2 向 PDF 添加书签。我运行以下没有问题。但是永远不会创建书签。关于我做错了什么的任何想法。PDF 有 2 页长。
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter() # open output
input = PdfFileReader(open('test.pdf', 'rb')) # open input
output.addPage(input.getPage(0)) # insert page
output.addBookmark('Hello, World Bookmark', 0, parent=None) # add bookmark
Run Code Online (Sandbox Code Playgroud)
小智 9
我运行了您的代码(在其下方添加文本以写出 pdf)并发现实际上创建了一个书签。
output = PdfFileWriter() # open output
input = PdfFileReader(open('test.pdf', 'rb')) # open input
output.addPage(input.getPage(0)) # insert page
output.addBookmark('Hello, World Bookmark', 0, parent=None) # add bookmark
outputStream = file('result.pdf','wb') #creating result pdf JCT
output.write(outputStream) #writing to result pdf JCT
outputStream.close() #closing result JCT
Run Code Online (Sandbox Code Playgroud)
检查结果中的书签面板。拥有书签不会自动导致 PDF 打开书签面板。
要使用 PyPDF2 打开书签面板,请添加一行:
output = PdfFileWriter() # open output
input = PdfFileReader(open('test.pdf', 'rb')) # open input
output.addPage(input.getPage(0)) # insert page
output.addBookmark('Hello, World Bookmark', 0, parent=None) # add bookmark
output.setPageMode("/UseOutlines") #This is what tells the PDF to open to bookmarks
outputStream = file('result.pdf','wb') #creating result pdf JCT
output.write(outputStream) #writing to result pdf JCT
outputStream.close() #closing result JCT
Run Code Online (Sandbox Code Playgroud)
感谢詹姆斯的代码。但它只输出一页pdf文件,并且不显示如何添加多个书签。这是他的代码的修订版本。
from PyPDF2 import PdfFileReader, PdfFileWriter
reader = PdfFileReader("test.pdf") # open input
writer = PdfFileWriter() # open output
n = reader.getNumPages()
for i in range(n):
writer.addPage(reader.getPage(i)) # insert page
# add a bookmark on the first page
writer.addBookmark("Hello, World Bookmark", 0, parent=None)
# add a bookmark on the sixth page
par = writer.addBookmark("Second Bookmark", 5, parent=None)
# add a child bookmark on the eighth page
writer.addBookmark("Third Bookmark", 7, parent=par)
with open("result.pdf", "wb") as fp: # creating result pdf JCT
writer.write(fp) # writing to result pdf JCT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3324 次 |
| 最近记录: |