pypdf (dawniej PyPDF2)
Najlepsze dla: Łączenie, dzielenie, rotacja, dodawanie zakładek
Python1 2 3 4 5 6 7 8 9 10 11 12# Instalacja: pip install pypdf from pypdf import PdfReader, PdfWriter # Zalety biblioteki pypdf: # - Prosty interfejs # - Dobra obsługa metadanych # - Łączenie i dzielenie dokumentów # - Dodawanie zakładek # Wady biblioteki pypdf: # - Podstawowa ekstrakcja tekstu # - Problemy z niektórymi skomplikowanymi PDF-ami
Kiedy używać: Łączenie/dzielenie dokumentów, manipulacja stronami, dodawanie zakładek.
pdfminer.six
Najlepsze dla: Zaawansowana ekstrakcja tekstu i layoutu
Python1 2 3 4 5 6 7 8 9 10 11 12 13# Instalacja: pip install pdfminer.six from pdfminer.high_level import extract_text from pdfminer.layout import LAParams # Zalety biblioteki pdfminer.six: # - Najlepsza ekstrakcja tekstu # - Pełna kontrola nad layoutem # - Obsługa skomplikowanych PDF-ów # - Ekstrakcja obrazów # Wady biblioteki pdfminer.six: # - Tylko odczyt (nie zapis) # - Bardziej złożony interfejs
Kiedy używać: Ekstrakcja tekstu z złożonych PDF-ów, analiza layoutu.
reportlab
Najlepsze dla: Generowanie PDF od zera
Python1 2 3 4 5 6 7 8 9 10 11 12 13# Instalacja: pip install reportlab from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter # Zalety biblioteki reportlab: # - Pełna kontrola nad generowaniem PDF # - Rysowanie, tabele, grafika # - Własne fonty i style # - Obsługa obrazów # Wady biblioteki reportlab: # - Tylko generowanie (nie odczyt) # - Więcej kodu niż w innych bibliotekach
Kiedy używać: Generowanie raportów, faktur, dokumentów od zera.
WeasyPrint
Najlepsze dla: Konwersja HTML/CSS do PDF
Python1 2 3 4 5 6 7 8 9 10 11# Instalacja: pip install weasyprint from weasyprint import HTML # Zalety biblioteki WeasyPrint: # - Konwersja HTML do PDF # - Obsługa CSS # - Wysoka jakość renderowania # Wady biblioteki WeasyPrint: # - Wymaga HTML jako źródła # - Czasem problemy z JavaScript
Kiedy używać: Konwersja stron HTML do PDF, generowanie PDF z szablonów.
PyMuPDF (fitz)
Najlepsze dla: Zaawansowane operacje i wydajność
Python1 2 3 4 5 6 7 8 9 10 11 12# Instalacja: pip install PyMuPDF import fitz# PyMuPDF # Zalety biblioteki PyMuPDF: # - Bardzo szybka # - Pełna kontrola nad PDF # - Rysowanie i manipulacja # - OCR support # Wady biblioteki PyMuPDF: # - Inne nazewnictwo (fitz zamiast standardowych) # - Większy rozmiar biblioteki
Kiedy używać: Wydajność jest kluczowa, zaawansowane manipulacje.
Porównanie bibliotek
| Biblioteka | Odczyt | Zapis | Łączenie | Ekstrakcja tekstu | Generowanie | Prędkość |
|---|---|---|---|---|---|---|
| pypdf | ✅ | ✅ | ✅✅ | ✅ | ❌ | ⚡⚡ |
| pdfminer.six | ✅✅ | ❌ | ❌ | ✅✅✅ | ❌ | ⚡ |
| reportlab | ❌ | ✅ | ❌ | ❌ | ✅✅✅ | ⚡⚡ |
| WeasyPrint | ❌ | ✅ | ❌ | ❌ | ✅✅ | ⚡ |
| PyMuPDF | ✅✅ | ✅✅ | ✅✅ | ✅✅ | ✅✅ | ⚡⚡⚡ |
Zalecenia użycia
Scenariusz 1: Łączenie dokumentów
Python1 2# Użyj: pypdf from pypdf import PdfMerger
Scenariusz 2: Ekstrakcja tekstu
Python1 2# Użyj: pdfminer.six (dla złożonych) lub pypdf (dla prostych) from pdfminer.high_level import extract_text
Scenariusz 3: Generowanie raportów
Python1 2# Użyj: reportlab from reportlab.pdfgen import canvas
Scenariusz 4: Konwersja HTML do PDF
Python1 2# Użyj: WeasyPrint from weasyprint import HTML
Scenariusz 5: Wysoka wydajność
Python1 2# Użyj: PyMuPDF import fitz
Przykład: kombinowanie bibliotek
Czasami warto użyć kilku bibliotek razem:
Python1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21from pdfminer.high_level import extract_text from pypdf import PdfMerger from reportlab.pdfgen import canvas # 1. Ekstrakcja tekstu z pdfminer text = extract_text("dokument.pdf") # 2. Przetwarzanie tekstu... processed_text = text.upper() # 3. Generowanie nowego PDF z reportlab c = canvas.Canvas("nowy.pdf") c.drawString(100, 750, processed_text) c.save() # 4. Łączenie z innymi dokumentami używając pypdf merger = PdfMerger() merger.append("nowy.pdf") merger.append("inne.pdf") merger.write("polaczony.pdf") merger.close()
Instalacja wszystkich narzędzi
Bash1pip install pypdf pdfminer.six reportlab weasyprint PyMuPDF
Podsumowanie
- pypdf: Najprostszy wybór do podstawowych operacji
- pdfminer.six: Najlepszy do ekstrakcji tekstu
- reportlab: Najlepszy do generowania PDF
- WeasyPrint: Najlepszy do konwersji HTML
- PyMuPDF: Najszybszy i najbardziej funkcjonalny
Wybór biblioteki zależy od Twojego konkretnego przypadku użycia.
➡️ Następny artykuł
Po opanowaniu pracy z PDF, przejdź do automatyzacji arkuszy kalkulacyjnych:
Automatyzacja Excela w Pythonie: odczyt, zapis, walidacja danych — kompleksowy przewodnik po pracy z Excel w Pythonie, od podstawowych operacji po generowanie zaawansowanych raportów.



