CodeGym /Kurs Javy /Python SELF PL /Inne biblioteki do pracy z PDF w Pythonie

Inne biblioteki do pracy z PDF w Pythonie

Python SELF PL
Poziom 43 , Lekcja 1
Dostępny

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

Python

pip install pdfplumber

Wyodrębnianie tabel przy pomocy PDFPlumber

Python

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

Python

pip install reportlab

Tworzenie prostego dokumentu PDF

Python

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

Python

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.

Python

import PyPDF2

Jako prosty przykład, spróbujmy otworzyć dokument PDF i odczytać jego treść.

Python

# 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”.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION