pypdf ist eine kostenlose Open-Source-PDF-Bibliothek mit reinem Python, die die Seiten von PDF-Dateien aufteilen, zusammenführen, zuschneiden und umwandeln kann. Es kann auch benutzerdefinierte Daten, Anzeigeoptionen und Passwörter zu PDF-Dateien hinzufügen. pypdf kann auch Text und Metadaten aus PDFs abrufen.
Unter pdfly finden Sie eine CLI-Anwendung, die pypdf zur Interaktion mit PDFs verwendet.
Installieren Sie pypdf mit pip:
pip install pypdf
Um pypdf mit AES-Verschlüsselung oder -Entschlüsselung zu verwenden, installieren Sie zusätzliche Abhängigkeiten:
pip install pypdf[crypto]
HINWEIS :
pypdf
3.1.0 und höher enthalten erhebliche Verbesserungen im Vergleich zu früheren Versionen. Weitere Informationen finden Sie im Migrationsleitfaden.
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
pypdf kann noch viel mehr, z. B. teilen, zusammenführen, Anmerkungen lesen und erstellen, entschlüsseln und verschlüsseln und mehr. Weitere Anwendungsbeispiele finden Sie in der Dokumentation!
Für Fragen und Antworten besuchen Sie StackOverflow (getaggt mit pypdf).
Die Pflege von pypdf ist eine Gemeinschaftsarbeit. Sie können das Projekt unterstützen, indem Sie eine Dokumentation schreiben, bei der Eingrenzung von Problemen helfen und Code einreichen. Weitere Informationen finden Sie in der Datei CONTRIBUTING.md.
Die Erfahrung der pypdf-Benutzer deckt das gesamte Spektrum ab, vom Anfänger, der sich das Leben erleichtern möchte, bis zum Experten, der Software entwickelt hat, bevor es PDF gab. Sie können zur pypdf-Community beitragen, indem Sie Fragen zu StackOverflow beantworten, bei Diskussionen mithelfen und Benutzer fragen, die Probleme für MCVEs melden (Code + Beispiel-PDF!).
Zu einem guten Bug-Ticket gehört ein MCVE – ein minimales, vollständig überprüfbares Beispiel. Für pypdf bedeutet dies, dass Sie eine PDF-Datei hochladen müssen, die den Fehler verursacht, sowie den Code, den Sie mit der gesamten Ausgabe ausführen. Verwenden Sie print(pypdf.__version__)
um uns mitzuteilen, welche Version Sie verwenden.
Alle Codebeiträge sind willkommen, aber kleinere haben eine bessere Chance, rechtzeitig aufgenommen zu werden. Durch das Hinzufügen von Unit-Tests für neue Funktionen oder Testfällen für von Ihnen behobene Fehler können wir sicherstellen, dass der Pull Request (PR) in Ordnung ist.
pypdf enthält eine Testsuite, die mit pytest
ausgeführt werden kann:
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/pypdf
plugins: cov-3.0.0
collected 233 items
tests/test_basic_features.py .. [ 0%]
tests/test_constants.py . [ 1%]
tests/test_filters.py .................x..... [ 11%]
tests/test_generic.py ................................. [ 25%]
............. [ 30%]
tests/test_javascript.py .. [ 31%]
tests/test_merger.py . [ 32%]
tests/test_page.py ......................... [ 42%]
tests/test_pagerange.py ................ [ 49%]
tests/test_papersizes.py .................. [ 57%]
tests/test_reader.py .................................. [ 72%]
............... [ 78%]
tests/test_utils.py .................... [ 87%]
tests/test_workflows.py .......... [ 91%]
tests/test_writer.py ................. [ 98%]
tests/test_xmp.py ... [100%]
========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========