Wenn Sie mehrere Lesezeichen mit demselben Namen verschachteln, berücksichtigt PyPdf2 dies nicht. Unterhalb des selbständigen Python-Codes, um zu testen, was ich meine (Sie müssen 3 PDF-Dateien namens a, b und c im Arbeitsordner haben, um es zu testen)
%Vor%Ich würde erwarten, dass das resultierende PDF drei Ebenen von verschachtelten Lesezeichen hat
%Vor%aber stattdessen bekomme ich
%Vor%Kann ich sicherstellen, dass dies nicht passiert?
BEARBEITEN: Ich habe die Variable pagenum
entfernt, da diese 3 Lesezeichen auf dieselbe Seite zeigen sollen.
Dies scheint ein Fehler mit PdfFileMerger.addBookmark()
Methode zu sein. Es gibt einige Details hier
Unten finden Sie einen Workaround mit PdfFileWriter
und seiner addBookmark()
-Methode. Mit diesem kann ich 3 verschachtelte Lesezeichen, mit demselben Namen, alle auf der gleichen Seite bekommen:
Code mit PdfFileWriter
Workaround:
Alternativ habe ich versucht, die PyPDF2
-Bibliothek zu modifizieren, um dieses Problem zu lösen, obwohl ich bei Python nicht sehr erfahren bin und neue / andere Probleme eingeführt habe! Ich habe eine Pull-Anfrage an die Betreuer gesendet, aber bis dahin konnten Sie meine Verzweigung klonen und PyPDF2
von dort installieren:
Danach solltest du die gewünschte Verschachtelung von PdfFileMerger.addBookmark()
bekommen können. Ich habe es für den obigen Fall getestet, habe aber darüber hinaus keine Tests durchgeführt.