Revision 2022.06.07: Eine Bibliothek eines Drittanbieters hinzugefügt borb
. Der erste Entwurf wurde am 02.01.2021 geschrieben, borb
nur wenige Monate nach der Veröffentlichung der Version 1.0; in weniger als zwei Jahren hat er fast 3.000 Likes auf Github.
PDF (Portable Document Format) ist ein tragbares Dokumentformat, das die Verbreitung von Dokumenten über Betriebssysteme hinweg erleichtert. PDF-Dokumente folgen einem Standardformat, daher gibt es viele Tools, die PDF-Dokumente bearbeiten können, und Python bildet da keine Ausnahme. Es gibt viele Python- Bibliotheken von Drittanbietern . In diesem Artikel werden Funktionen, Open-Source-Protokolle und Community-Aktivitäten verglichen, um die geeignete Bibliothek entsprechend den spezifischen Anforderungen auszuwählen.
Überblick
Der Funktionsvergleich gliedert sich in drei Aspekte 提取内容
: , 操作页面
, und 创建内容
. Die ersten beiden sind Lese- und Schreibvorgänge für vorhandene PDF-Dokumente, und der letzte erstellt aus dem Inhalt ein neues Dokument. Im Hinblick auf die Aktualität wird im folgenden Vergleich die entsprechende aktuelle Version zum Zeitpunkt des Schreibens (2021.01) aufgeführt. borb
Zum Vergleich im Jahr 2022.06 neu hinzugefügt, der Zeitpunkt ist maßgebend.
提取内容
wie Text, Bilder, Metainformationen操作页面
Bezieht sich insbesondere auf Vorgänge an vorhandenen Seiten wie Teilen, Zusammenführen, Zuschneiden, Drehen usw.创建内容
Bezieht sich auf das Erstellen oder Ändern von Seiteninhalten wie Text, Bildern und Formen
Python-Bibliothek | aktuelle Version | Python-Version | Open-Source-Vereinbarung | das neueste Update | Funktion: Inhalt extrahieren | Funktion: Bedienseite | Funktion: Inhalte erstellen | Anmerkung |
---|---|---|---|---|---|---|---|---|
PyPDF2 | 1.26.0 | 2,6-3,6 | modifiziertes BSD | Vor 3 Jahren | √ | √ | × | PyPDF2 Nicht mehr gepflegt, der Nachfolger PyPDF4 ( PyPDF , PyPDF2 und PyPDF4 die Quellenangabe hier ). Da PyPDF2 es bekannter zu sein scheint, wird es als Eintrag aufgeführt. |
pdfrw | 0,4 | 2,6-3,6 | MIT | Vor 3 Jahren | √ | √ | × | Es kann selbst keine neuen Inhalte erstellen, ist aber integriert ReportLab und kann kompatibel ReportLab neue Seiten generieren |
ReportLab | 3.5.58 | 2,7, 3,6+ | BSD | sehr aktiv | × | × | √ | Open-Source-Version von ReportLab , professionelles Erstellen von PDF-Inhalten wie Text, Diagrammen usw. |
pikepdf | 2.2.4 | 2,7, 3,6+ | MPL 2.0 | sehr aktiv | √ | √ | × | C++-basiertes QPDF , Benchmarking PyPDF2 und pdfrw ; auf die unterste Ebene ausgerichtet |
pdfplumber | 0,5,25 | 3,6-3,8 | MIT | aktiv | √ | × | × | Basierend auf pdfminer.six ; können neben Text auch Formen (Rechtecke, Linien/Kurven) und Tabellen geparst werden . Einen Vergleich mehrerer Python-Bibliotheken, die PDF-Tabellen extrahieren, finden Sie hier |
pdfminer.six | 20201018 | 3,6+ | MIT | Vor 2 Monaten | √ | × | × | Von der Community gepflegte Version von pdfminer , seit pdfminer 2020 nicht mehr aktiv gepflegt |
PyMuPDF | 1.18.5 | 3,6+ | GPL v3 | sehr aktiv | √ | √ | √ | Basierend auf mupdf ; bekannt für seine Verarbeitungsgeschwindigkeit, siehe hier |
brutal | 2.0.27 | 3,6+ | AGPL | sehr aktiv | √ | √ | √ | Reine Python-Bibliothek, unterstützt das Lesen, Schreiben und Bearbeiten von PDF-Dokumenten und berücksichtigt sowohl einfache als auch fortgeschrittene Anwendungen |
Rezension
PyPDF2
pdfrw
Während die ersten beiden sich auf bestehende PDF-Vorgänge (Teilen, Zusammenführen, Drehen usw.) konzentrieren, werden diepikepdf
Wartungsarbeiten grundsätzlich eingestellt.pdfplumber
Es konzentriert sichpdfminer.six
auf die Extraktion von PDF-Inhalten wie Text (Position, Schriftart und Farbe usw.) und Form (Rechteck, gerade Linie, Kurve). Ersteres hat auch die Funktion, Tabellen zu analysieren.ReportLab
Konzentrieren Sie sich auf die Erstellung von PDF-Seiteninhalten (Texte, Grafiken, Tabellen usw.).PyMuPDF
Undborb
es unterstützt gleichzeitig das Lesen, Schreiben und PDF-Seitenoperationen mit den umfassendsten Funktionen. Unter ihnen ist esPyMuPDF
vor allem für seine hohe Geschwindigkeit bekannt, eine neu entwickelte und gut angenommene Bibliothek mit unbegrenztem Potenzial.borb
Allerdings handelt es sich bei beiden umGPL
Open-Source-Protokolle der Familie, die für die kommerzielle Nutzung nicht sehr geeignet sind*.
*
Die freie Nutzung wird unterstützt, aber Programme, die Verweise darauf erfordern, müssen sich ebenfalls an die entsprechende Vereinbarung, also Open Source, halten. Wenn Sie Closed Source verwenden müssen, müssen Sie beim Autor eine kostenpflichtige kommerzielle Genehmigung beantragen.
Abschließend beendet die folgende Abbildung diesen Artikel.
Vergleich häufig verwendeter Python-PDF-Bibliotheken
Vollständige Zusammenfassung der Python-Operation PDF|pdfplumber&PyPDF2 bazyd