1. Wprowadzenie do PDFPlumber
Wyodrębnianie tabel i złożonych struktur za pomocą PDFPlumber
PDFPlumber jest idealny do wyodrębniania danych z PDF, zwłaszcza tabel i złożonych struktur, takich jak kolumny. Umożliwia rozpoznawanie i wyodrębnianie danych, które trudno uzyskać przy pomocy PyPDF2.
Instalacja PDFPlumber
pip install pdfplumber
Wyodrębnianie tabel przy pomocy PDFPlumber
import pdfplumber
with pdfplumber.open("sample_with_table.pdf") as pdf:
for page in pdf.pages:
table = page.extract_table()
if table:
for row in table:
print(row)
Ten kod wyodrębnia tabelę z każdej strony PDF, co jest przydatne do przetwarzania raportów finansowych i analitycznych, gdzie główne dane są przedstawiane w tabelach.
2. Wprowadzenie do ReportLab
Tworzenie raportów PDF przy użyciu ReportLab
Jeśli chcesz utworzyć PDF od podstaw, na przykład raporty lub zautomatyzowane dokumenty, biblioteka ReportLab oferuje elastyczne możliwości tworzenia PDF z tekstem, tabelami, obrazkami i wykresami.
Instalacja ReportLab
pip install reportlab
Tworzenie prostego dokumentu PDF
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
# Tworzenie PDF
pdf_file = canvas.Canvas("generated_report.pdf", pagesize=A4)
width, height = A4
# Dodanie nagłówka
pdf_file.setFont("Helvetica-Bold", 16)
pdf_file.drawString(100, height - 100, "Raport sprzedaży")
# Dodanie tekstu
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 130, "Ten raport zawiera dane o sprzedaży za ostatni miesiąc.")
# Zapisanie PDF
pdf_file.showPage()
pdf_file.save()
Ten kod tworzy PDF z nagłówkiem i tekstem. Można również dodawać logotypy, obrazy i inne elementy wizualne.
Tworzenie tabeli w PDF przy użyciu ReportLab
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
# Dane do tabeli
data = [
["Miesiąc", "Sprzedaż"],
["Styczeń", "200"],
["Luty", "300"],
["Marzec", "250"]
]
# Tworzenie PDF z tabelą
pdf_file = SimpleDocTemplate("sales_report.pdf", pagesize=A4)
table = Table(data)
table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.grey),
('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
('BOTTOMPADDING', (0, 0), (-1, 0), 12),
('BACKGROUND', (0, 1), (-1, -1), colors.beige),
]))
# Budowanie PDF
elements = [table]
pdf_file.build(elements)
Ten kod tworzy tabelę i zapisuje ją w PDF. Za pomocą ReportLab można także dodawać style, zmieniać kolory, rozmiary czcionek i formatować tekst.
3. Wracamy do PyPDF2
Dlaczego PyPDF2?
Jak wiesz, dokumenty PDF to praktycznie standard dla wszelkiej dokumentacji, od raportów po white papers. Ale kiedy chodzi o automatyzację, praca z PDF w Pythonie może być prawdziwym wyzwaniem. PyPDF2 pomaga wyjść z tych trudności: pozwala wyodrębniać tekst, łączyć i dzielić strony oraz wiele więcej. Praca z tą biblioteką to sama przyjemność.
Przejdźmy przez podstawowe funkcje, które oferuje PyPDF2. Przyda się to podczas bardziej złożonych zadań.
Import i podstawowy przykład
Pierwsze, co musimy zrobić, to zaimportować bibliotekę. Proste i skuteczne.
import PyPDF2
Jako prosty przykład, spróbujmy otworzyć dokument PDF i odczytać jego treść.
# Otwieramy plik w trybie binarnym do odczytu
with open('example.pdf', 'rb') as pdf_file:
# Tworzymy obiekt PDFReader
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Wyodrębniamy tekst z pierwszej strony
page = pdf_reader.pages[0]
text = page.extract_text()
print(text)
Ten kod robi wszystko, co potrzebne na początek: otwiera dokument PDF, wyodrębnia tekst z pierwszej strony i wyświetla go w konsoli.
Podsumowanie funkcji PyPDF2
PyPDF2 oferuje wiele funkcji do pracy z PDF-ami:
- Wyodrębnianie tekstu: już omówione.
- Łączenie PDF: tworzenie nowego dokumentu PDF poprzez łączenie kilku istniejących.
- Dzielenie stron: wyodrębnianie wybranych stron i zapisywanie ich w osobnych plikach.
- Dodawanie adnotacji i komentarzy: to już zaawansowany poziom!
Na tym etapie powinieneś mieć ogólne pojęcie, jak działa PyPDF2 i jakie możliwości oferuje. Poznamy więcej szczegółów krok po kroku.
Feedback i typowe błędy
Często kod nie działa od razu i każde szkolenie staje się „polowaniem na błędy”.
Najczęstszy błąd przy pracy z PyPDF2 to zły path do pliku. Upewnij się, że
twój dokument PDF jest w tym samym katalogu co skrypt, albo podaj pełną ścieżkę.
Oprócz tego, nie zapominaj otwierać plików w trybie binarnym ('rb'
),
aby uniknąć problemów z kodowaniem. Jak mawiał pewien mądry programista:
„Błędy to nie problemy w twoim kodzie, tylko nieoczekiwane funkcje”.
GO TO FULL VERSION