2015-10-14 11 views
0

我試圖合併帶有書籤的PDF文檔和一系列沒有書籤的PDF。我想創建一個在原始PDF的最後一個書籤的孩子書籤,但是當我運行下面的代碼:如何使用PYPDF將PDFReader對象作爲父項引用書籤

def mergePDFfiles(pdffile): 
    merger = PdfFileMerger() 
    doc=PdfFileReader(open(pdffile,'rb')) 
    merger.append(doc) 
    doc_length = doc.getNumPages() 
    outline = doc.getOutlines() 
    parent = outline[-1] 
    merger.append(PdfFileReader(filename,'rb'),import_bookmarks=False) 
    sub = merger.addBookmark("SUBBOOKMARK",doc_length,parent) 

我得到的錯誤:

TypeError: 'NoneType' object has no attribute '__getitem__' 

輪廓[-1]返回與書籤對象非常相似的目標對象,但它們看起來不一樣。有沒有辦法將目標對象轉換爲書籤對象?

回答

0

好的。我在源代碼中進行了一些挖掘,發現了一個名爲findBookmark的未公開的方法,它返回具有匹配標題的書籤對象。這似乎工作。

def mergePDFfiles(pdffile): 
    merger = PdfFileMerger() 
    doc=PdfFileReader(open(pdffile,'rb')) 
    merger.append(doc) 
    doc_length = doc.getNumPages() 
    outline = doc.getOutlines() 
    parent = findBookmark(outline[-1].title) 
    merger.append(PdfFileReader(filename,'rb'),import_bookmarks=False) 
    sub = merger.addBookmark("SUBBOOKMARK",doc_length,parent) 
相關問題