
Jak wyświetlić plik PDF w Python
W tym artykułe omówimy, jak wyświetlać pliki PDF w języku Python przy użyciu biblioteki IronPDF.
IronPDF — biblioteka Python
IronPDF to potężna biblioteka języka Python, która umożliwia programistom pracę z plikami PDF za pomocą kodu. Dzięki IronPDF można łatwo generować, modyfikować i wyodrębniać dane z dokumentów PDF, co czyni go wszechstronnym narzędziem do różnych zadań związanych z plikami PDF. Niezależnie od tego, czy chcesz tworzyć pliki PDF od podstaw, modyfikować istniejące pliki PDF, czy też wyodrębniać treści z plików PDF, IronPDF zapewnia kompleksowy zestaw funkcji, które upraszczają przepływ pracy.
Niektóre funkcje biblioteki IronPDF for Python obejmują:
- Utwórz nowy plik PDF od podstaw, korzystając z kodu HTML lub adresu URL
- Edytuj istniejące pliki PDF
- Obracanie stron PDF
- Pobieranie tekstu, metadanych i obrazów z plików PDF
- Konwersja plików PDF do innych formatów
- Zabezpieczaj pliki PDF hasłami i ograniczeniami
- Dzielenie i łączenie plików PDF
Uwaga: IronPDF generuje plik PDF z znakiem wodnym. Aby usunąć znak wodny, należy wykupić licencję na IronPDF. Jeśli chcesz korzystać z licencjonowanej wersji IronPDF, odwiedź stronę internetową IronPDF, aby uzyskać klucz licencyjny.
Wymagania wstępne
Przed rozpoczęciem pracy z IronPDF w języku Python należy spełnić kilka warunków wstępnych:
-
Instalacja Pythona: Upewnij się, że masz zainstalowany Python w swoim systemie. IronPDF jest kompatybilny z wersjami Python 3.x, więc upewnij się, że masz zainstalowaną kompatybilną wersję Pythona.
-
Biblioteka IronPDF: Zainstaluj bibliotekę IronPDF, aby uzyskać dostęp do jej funkcji. Można go zainstalować za pomocą menedżera pakietów Python (pip), wykonując następujące polecenie w interfejsie wiersza poleceń:
-
Biblioteka Tkinter: Tkinter to standardowy zestaw narzędzi GUI dla języka Python. Służy do tworzenia graficznego interfejsu użytkownika dla przeglądarki plików PDF w dostarczonym fragmencie kodu. Tkinter jest zazwyczaj preinstalowany wraz z Pythonem, ale jeśli napotkasz jakiekolwiek problemy, możesz zainstalować go za pomocą menedżera pakietów:
pip install tkinterSHELL -
Biblioteka Pillow: Biblioteka Pillow jest rozwidleniem biblioteki Python Imaging Library (PIL) i zapewnia dodatkowe możliwości przetwarzania obrazów. Jest używany w fragmencie kodu do ładowania i wyświetlania obrazów wyodrębnionych z pliku PDF. Zainstaluj Pillow za pomocą menedżera pakietów:
pip install pillowSHELL -
Środowisko programistyczne (IDE): Korzystanie z IDE do obsługi projektów w języku Python może znacznie poprawić komfort pracy. Zapewnia takie funkcje, jak autouzupełnianie kodu, debugowanie oraz bardziej usprawniony przepływ pracy. Jednym z popularnych środowisk IDE do programowania w języku Python jest PyCharm. Możesz pobrać i zainstalować PyCharm ze strony internetowej JetBrains (https://www.jetbrains.com/pycharm/).
-
Edytor tekstu: Jeśli wolisz pracować z lekkim edytorem tekstu, możesz użyć dowolnego edytora, takiego jak Visual Studio Code, Sublime Text lub Atom. Edytory te oferują podświetlanie składni i inne przydatne funkcje do programowania w języku Python. Możesz również użyć własnej aplikacji IDE języka Python do tworzenia skryptów w tym języku.
Tworzenie projektu przeglądarki PDF przy użyciu PyCharm
Po zainstalowaniu środowiska PyCharm IDE utwórz projekt PyCharm Python, wykonując poniższe czynności:
- Uruchom PyCharm: Otwórz PyCharm z poziomu meniu uruchamiania aplikacji lub skrótu na pulpicie.
- Utwórz nowy projekt: Kliknij "Utwórz nowy projekt" lub otwórz istniejący projekt w języku Python.
Środowisko IDE PyCharm
- Skonfiguruj ustawienia projektu: Nadaj nazwę projektowi i wybierz lokalizację, w której zostanie utworzony katalog projektu. Wybierz interpreter języka Python dla swojego projektu. Następnie kliknij "Utwórz".
Utwórz nowy projekt w języku Python
- Utwórz pliki źródłowe: PyCharm utworzy strukturę projektu, w tym główny plik Python oraz katalog na dodatkowe pliki źródłowe. Zacznij pisać kod i kliknij przycisk uruchomienia lub naciśnij Shift+F10, aby wykonać skrypt.
Kroki umożliwiające przeglądanie plików PDF w języku Python przy użyciu IronPDF
Zaimportuj wymagane biblioteki
Na początek zaimportuj niezbędne biblioteki. W tym przypadku potrzebne będą biblioteki os, shutil, ironpdf, tkinter oraz PIL. Biblioteki os i shutil są używane do operacji na plikach i folderach, ironpdf to biblioteka do pracy z plikami PDF, tkinter jest używana do tworzenia graficznego interfejsu użytkownika (GUI), a PIL jest używany do manipulacji obrazami.
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
Konwersja dokumentu PDF na obrazy
Następnie, zdefiniuj funkcję o nazwie convert_pdf_to_images. Ta funkcja przyjmuje ścieżkę do pliku PDF jako dane wejściowe. Wewnątrz funkcji biblioteka IronPDF służy do wczytania dokumentu PDF z pliku. Następnie należy określić ścieżkę do folderu, w którym będą przechowywane wyodrębnione pliki obrazów. Metoda pdf.RasterizeToImageFiles z IronPDF jest używana do konwersji każdej strony PDF na plik obrazu i zapisania go w określonym folderze. Do przechowywania ścieżek obrazów służy lista. Pełny przykład kodu wygląda następująco:
def convert_pdf_to_images(pdf_file):
"""Convert each page of a PDF file to an image."""
pdf = ironpdf.PdfDocument.FromFile(pdf_file)
# Extract all pages to a folder as image files
folder_path = "images"
pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
# List to store the image paths
image_paths = []
# Get the list of image files in the folder
for filename in os.listdir(folder_path):
if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
image_paths.append(os.path.join(folder_path, filename))
return image_paths
Aby wyodrębnić tekst z dokumentów PDF, odwiedź tę stronę z przykładami kodu.
Obsługa zamykania okna
Aby usunąć wyodrębnione pliki graficzne po zamknięciu okna aplikacji, zdefiniuj funkcję on_closing. Wewnątrz tej funkcji użyj metody shutil.rmtree(), aby usunąć cały folder images. Następnie ustaw tę funkcję jako protokół, który ma zostać wykonany po zamknięciu okna. Poniższy kod pomaga w realizacji tego zadania:
def on_closing():
"""Handle the window closing event by cleaning up the images."""
# Delete the images in the 'images' folder
shutil.rmtree("images")
window.destroy()
window.protocol("WM_DELETE_WINDOW", on_closing)
Utwórz okno GUI
Teraz stwórzmy główne okno GUI za pomocą konstruktora Tk(), ustaw tytuł okna na "Podgląd obrazów" i ustaw funkcję on_closing() jako protokół do obsługi zamykania okna.
window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
Utwórz przewijalne płótno
Aby wyświetlać obrazy i umożliwić przewijanie, utwórz widżet Canvas. Widżet Canvas jest skonfigurowany tak, aby wypełniał dostępną przestrzeń i rozszerzał się w obu kierunkach przy użyciu pack(side=LEFT, fill=BOTH, expand=True). Dodatkowo, stwórz widżet Scrollbar i skonfiguruj go do kontrolowania pionowego przewijania wszystkich stron i płótna.
canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)
# Update the scrollregion to encompass the entire canvas
canvas.bind("<Configure>", lambda e: canvas.configure(
scrollregion=canvas.bbox("all")))
# Configure the vertical scrolling using mouse wheel
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
int(-1*(e.delta/120)), "units"))
Utwórz ramkę dla obrazów
Następnie utwórz wewnątrz płótna widżet Frame, aby umieścić obrazy, używając create_window() do umieszczenia ramki w płótnie. Koordynaty (0, 0) oraz parametr anchor='nw' zapewniają, że ramka rozpoczyna się w lewym górnym rogu płótna.
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
Konwersja pliku PDF na obrazy i wyświetlanie
Kolejnym krokiem jest wywołanie funkcji convert_pdf_to_images() z nazwą ścieżki pliku wejściowego PDF. Funkcja ta wyodrębnia strony PDF jako obrazy i zwraca listę ścieżek do obrazów. Przeprowadzając iterację przez ścieżki obrazów i ładując każdy obraz przy użyciu metody Image.open() z biblioteki PIL, tworzony jest obiekt PhotoImage przy użyciu ImageTk.PhotoImage(). Następnie utwórz widżet Label, aby wyświetlić obraz.
images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
image = Image.open(image_path)
photo = ImageTk.PhotoImage(image)
label = Label(frame, image=photo)
label.image = photo # Store a reference to prevent garbage collection
label.pack(pady=10)
Plik wejściowy
Uruchom główną pętlę GUI
Na koniec uruchommy główną pętlę zdarzeń używając window.mainloop(). Dzięki temu okno GUI pozostaje otwarte i reaguje na polecenia, dopóki nie zostanie zamknięte przez użytkownika.
window.mainloop()
Wygląd interfejsu użytkownika
Wnioski
W tym samouczku omówiono sposób wyświetlania dokumentów PDF w języku Python przy użyciu biblioteki IronPDF. Obejmowało to kroki niezbędne do otwarcia pliku PDF i przekształcenia go w serię plików graficznych, a następnie wyświetlenia ich na przewijanym obszarze roboczym oraz obsługi czyszczenia wyodrębnionych obrazów po zamknięciu aplikacji.
Więcej szczegółów na temat biblioteki IronPDF for Python można znaleźć w dokumentacji.
Pobierz i zainstaluj bibliotekę IronPDF dla Python, a także skorzystaj z bezpłatnej wersji próbnej, aby przetestować jej pełną funkcjonalność w komercyjnym programowaniu.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.
Powiązane artykuły


