Python PyPDF: Anker im PDF setzen um via URL an spezifische Stelle zu springen

Photon

Rear Admiral
Registriert
Apr. 2006
Beiträge
5.141
Hallo Community,

ich würde gerne eine Reihe von PDF-Dateien in eine Webseite einbinden und dabei auf spezifische Stellen in den PDFs springen können. Ich weiß, dass man bei URLs eine Seitennummer mitgeben kann, das ist auf jeden Fall schon mal ein Anfang, allerdings wäre es viel besser, könnte man wirklich ganz gezielt an eine Stelle innerhalb einer Seite springen. Die Funktionalität ist eigentlich schon vorhanden, hier Beispiele:

Springen zu Seite 5 (page=...): https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf#page=5
Springen genau zu der Stelle mit der Parameter-Tabelle (nameddest=...): https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf#G4.1501771

Die Frage ist nur, wie kann ich solche nameddest-Anker einer existierenden PDF hinzufügen? Ich habe bisher recherchiert, dass man mit PyPdf nameddests hinzufügen kann, allerdings nur zu bestimmten Seitennummern, da die Funktion addNamedDestination nur Integer für das entsprechende Argument akzeptiert, siehe https://pythonhosted.org/PyPDF2/PdfFileMerger.html Aber da brauche ich ja kein nameddest dazu, es reicht die page-Option. Auslesen kann man aber die exakte Position einer namedest auf der Seite: https://unix.stackexchange.com/a/299232 Zudem würde ich die Anker gern nicht an einer Position auf der Seite festmachen sondern an einem bestimmten Text, so in etwa wie: Beim ersten Vorkommen von "bla" setze eine nameddest mit Label "blubb". Das Durchsuchen der PDF nach Strings und das Herausfinden ihrer Position scheint möglich zu sein: https://stackoverflow.com/questions...ing-is-located-in-a-pdf-document-using-python Aber das setzen einer namedest an dieser Position geht nicht, zumindest nicht mit addNamedDestination, aber vielleicht irgendwie von Hand?

Danke für alle Tipps und Anregungen!
Photon
 
Danke für die Antwort! Das Ding ist, ich möchte den Ort des Hinspringens genauer spezifizieren als nur mit der Seitennummer. Dafür gibt es ja nameddests - die müssen aber vorher im PDF selbst gesetzt werden.
 
Zurück
Oben