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ń:
pip install ironpdf
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 tkinterpip install tkinterSHELLBiblioteka 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 pillowpip 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, ImageTkimport os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTkKonwersja 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_pathsdef 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_pathsAby 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)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)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"))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")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)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()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.
Często Zadawane Pytania
Jak mogę wyświetlać pliki PDF w języku Python?
Możesz użyć biblioteki IronPDF do przeglądania plików PDF w języku Python. Pozwala ona na konwersję stron PDF na obrazy, które następnie mogą być wyświetlane w aplikacji GUI przy użyciu Tkinter.
Jakie kroki trzeba wykonać, żeby stworzyć przeglądarkę PDF w Pythonie?
Aby stworzyć przeglądarkę plików PDF w języku Python, należy zainstalować bibliotekę IronPDF, użyć biblioteki Tkinter do obsługi interfejsu graficznego oraz biblioteki Pillow do przetwarzania obrazów. Strony PDF należy przekonwertować na obrazy za pomocą biblioteki IronPDF i wyświetlić je na przewijanym obszarze roboczym utworzonym przy użyciu biblioteki Tkinter.
Jak zainstalować IronPDF for Python do wykorzystania w projekcie w języku Python?
Możesz zainstalować IronPDF za pomocą pip, uruchamiając polecenie pip install ironpdf w terminalu lub wierszu poleceń.
Jakie biblioteki są potrzebne do stworzenia aplikacji do przeglądania plików PDF w języku Python?
Będziesz potrzebować biblioteki IronPDF do obsługi plików PDF, Tkinter do obsługi interfejsu graficznego oraz Pillow do przetwarzania obrazów.
Czy mogę wyodrębnić obrazy z pliku PDF za pomocą języka Python?
Tak, IronPDF umożliwia wyodrębnianie obrazów z plików PDF, które następnie można przetwarzać lub wyświetlać za pomocą biblioteki Pillow.
Jak przekonwertować stronę PDF na obraz w języku Python?
Możesz użyć funkcji IronPDF do konwersji stron PDF na formaty graficzne, które następnie można edytować lub wyświetlać w aplikacji Python.
Jak obsłużyć zamknięcie okna w aplikacji do przeglądania plików PDF napisanej w języku Python?
W aplikacji do przeglądania plików PDF można obsłużyć zamknięcie okna poprzez wyczyszczenie wyodrębnionych obrazów i zapewnienie prawidłowego zwolnienia wszystkich zasobów, często przy użyciu funkcji obsługi zdarzeń Tkinter.
Jak zabezpieczyć pliki PDF w języku Python?
IronPDF oferuje opcje zwiększające bezpieczeństwo plików PDF poprzez dodawanie haseł i ograniczeń użytkowania do plików PDF.
Jaka jest zaleta używania Tkinter w aplikacji do przeglądania plików PDF?
Tkinter pozwala na stworzenie przyjaznego dla użytkownika interfejsu graficznego dla przeglądarki plików PDF, udostępniając funkcje takie jak przewijane widoki do poruszania się po stronach PDF.
Jaki jest cel użycia biblioteki Pillow w projekcie związanym z plikami PDF?
Pillow jest używany w projekcie PDF do przetwarzania obrazów, np. do ładowania i wyświetlania obrazów wyodrębnionych z plików PDF za pomocą IronPDF.










