Python 如何获取PDF书签并将书签添加到新PDF?
我正在将一个PDf合并到另一个PDf,工作正常,但最终PDf中缺少书签 以下是PDF生成代码:Python 如何获取PDF书签并将书签添加到新PDF?,python,pdf,reportlab,pypdf,Python,Pdf,Reportlab,Pypdf,我正在将一个PDf合并到另一个PDf,工作正常,但最终PDf中缺少书签 以下是PDF生成代码: #- Create One Page PDF with some text from reportlab.pdfgen import canvas as canx c = canx.Canvas('transparent.pdf') c.setStrokeColor((1, 0, 0)) transparentwhite = canx.Color(255, 255, 255, alpha = 0.0)
#- Create One Page PDF with some text
from reportlab.pdfgen import canvas as canx
c = canx.Canvas('transparent.pdf')
c.setStrokeColor((1, 0, 0))
transparentwhite = canx.Color(255, 255, 255, alpha = 0.0)
c.setFillColor(transparentwhite)
t = c.beginText()
t.setTextRenderMode(2)
c._code.append(t.getCode())
c.setFont('Helvetica', 48)
c.saveState()
c.translate(100, 100)
c.rotate(45)
c.drawCentredString(500, 100, 'DRAFT')
c.save()
#- Merge PDF.
transparentbannerfile = open('transparent.pdf', 'rb')
testpagefile = open('NOID_body20160202T133650.pdf', 'rb')
outputfile = open('mergedtransparent.pdf', 'wb')
import PyPDF2 as pdf
readerbanner = pdf.PdfFileReader(transparentbannerfile)
readertestpages = pdf.PdfFileReader(testpagefile)
bannerpage = readerbanner.getPage(0)
writeroutput = pdf.PdfFileWriter()
for x in xrange(readertestpages.getNumPages()):
pagex = readertestpages.getPage(x)
pagex.mergePage(bannerpage)
writeroutput.addPage(pagex)
writeroutput.write(outputfile)
outputfile.close()
transparentbannerfile.close()
testpagefile.close()
from pyPdf import PdfFileReader
pdf_toread = PdfFileReader(open('NOID_body20160202T133650.pdf', "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print pdf_info
以下是合并代码:
#- Create One Page PDF with some text
from reportlab.pdfgen import canvas as canx
c = canx.Canvas('transparent.pdf')
c.setStrokeColor((1, 0, 0))
transparentwhite = canx.Color(255, 255, 255, alpha = 0.0)
c.setFillColor(transparentwhite)
t = c.beginText()
t.setTextRenderMode(2)
c._code.append(t.getCode())
c.setFont('Helvetica', 48)
c.saveState()
c.translate(100, 100)
c.rotate(45)
c.drawCentredString(500, 100, 'DRAFT')
c.save()
#- Merge PDF.
transparentbannerfile = open('transparent.pdf', 'rb')
testpagefile = open('NOID_body20160202T133650.pdf', 'rb')
outputfile = open('mergedtransparent.pdf', 'wb')
import PyPDF2 as pdf
readerbanner = pdf.PdfFileReader(transparentbannerfile)
readertestpages = pdf.PdfFileReader(testpagefile)
bannerpage = readerbanner.getPage(0)
writeroutput = pdf.PdfFileWriter()
for x in xrange(readertestpages.getNumPages()):
pagex = readertestpages.getPage(x)
pagex.mergePage(bannerpage)
writeroutput.addPage(pagex)
writeroutput.write(outputfile)
outputfile.close()
transparentbannerfile.close()
testpagefile.close()
from pyPdf import PdfFileReader
pdf_toread = PdfFileReader(open('NOID_body20160202T133650.pdf', "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print pdf_info
但元数据中缺少书签和标题
什么是'bookmarkshorizontalAbsolute'、画布
对象的方法
同样的问题也在这里我可以从以下代码中获得标题:
#- Create One Page PDF with some text
from reportlab.pdfgen import canvas as canx
c = canx.Canvas('transparent.pdf')
c.setStrokeColor((1, 0, 0))
transparentwhite = canx.Color(255, 255, 255, alpha = 0.0)
c.setFillColor(transparentwhite)
t = c.beginText()
t.setTextRenderMode(2)
c._code.append(t.getCode())
c.setFont('Helvetica', 48)
c.saveState()
c.translate(100, 100)
c.rotate(45)
c.drawCentredString(500, 100, 'DRAFT')
c.save()
#- Merge PDF.
transparentbannerfile = open('transparent.pdf', 'rb')
testpagefile = open('NOID_body20160202T133650.pdf', 'rb')
outputfile = open('mergedtransparent.pdf', 'wb')
import PyPDF2 as pdf
readerbanner = pdf.PdfFileReader(transparentbannerfile)
readertestpages = pdf.PdfFileReader(testpagefile)
bannerpage = readerbanner.getPage(0)
writeroutput = pdf.PdfFileWriter()
for x in xrange(readertestpages.getNumPages()):
pagex = readertestpages.getPage(x)
pagex.mergePage(bannerpage)
writeroutput.addPage(pagex)
writeroutput.write(outputfile)
outputfile.close()
transparentbannerfile.close()
testpagefile.close()
from pyPdf import PdfFileReader
pdf_toread = PdfFileReader(open('NOID_body20160202T133650.pdf', "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print pdf_info
通过setTitle
方法将标题设置为新PDF
#- Create One Page PDF with some text
from reportlab.pdfgen import canvas as canx
c = canx.Canvas('transparent.pdf')
c.setTitle("Test to set Title")
或:
书签
现在如何处理嵌套书签:)??我可以从以下代码中获取标题:
#- Create One Page PDF with some text
from reportlab.pdfgen import canvas as canx
c = canx.Canvas('transparent.pdf')
c.setStrokeColor((1, 0, 0))
transparentwhite = canx.Color(255, 255, 255, alpha = 0.0)
c.setFillColor(transparentwhite)
t = c.beginText()
t.setTextRenderMode(2)
c._code.append(t.getCode())
c.setFont('Helvetica', 48)
c.saveState()
c.translate(100, 100)
c.rotate(45)
c.drawCentredString(500, 100, 'DRAFT')
c.save()
#- Merge PDF.
transparentbannerfile = open('transparent.pdf', 'rb')
testpagefile = open('NOID_body20160202T133650.pdf', 'rb')
outputfile = open('mergedtransparent.pdf', 'wb')
import PyPDF2 as pdf
readerbanner = pdf.PdfFileReader(transparentbannerfile)
readertestpages = pdf.PdfFileReader(testpagefile)
bannerpage = readerbanner.getPage(0)
writeroutput = pdf.PdfFileWriter()
for x in xrange(readertestpages.getNumPages()):
pagex = readertestpages.getPage(x)
pagex.mergePage(bannerpage)
writeroutput.addPage(pagex)
writeroutput.write(outputfile)
outputfile.close()
transparentbannerfile.close()
testpagefile.close()
from pyPdf import PdfFileReader
pdf_toread = PdfFileReader(open('NOID_body20160202T133650.pdf', "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print pdf_info
通过setTitle
方法将标题设置为新PDF
#- Create One Page PDF with some text
from reportlab.pdfgen import canvas as canx
c = canx.Canvas('transparent.pdf')
c.setTitle("Test to set Title")
或:
书签