Jak konwertować PDF na obraz w Python | IronPDF

Konwersja plików PDF na obrazy w języku Python

This article was translated from English: Does it need improvement?
Translated
View the article in English

Konwersja PDF na obraz jest powszechnym wymaganiem w aplikacjach Pythona. Deweloperzy używają jej do generowania miniatur dokumentów, podglądów stron internetowych oraz do przekazywania treści PDF do kanałów przetwarzania obrazu. IronPDF for Python udostępnia metodę RasterizeToImageFiles, która konwertuje dowolny dokument PDF (lub adres URL) na pliki graficzne JPEG, PNG lub TIFF z konfigurowalną rozdzielczością DPI i wymiarami.

Ten przewodnik pokazuje, jak konwertować pliki PDF na obrazy w Pythonie, jak kontrolować jakość wyjściową oraz jak dostosować rozmiar wynikowych obrazów do ograniczeń układu.

Szybki start: Konwertuj PDF na obrazy

  1. Zainstaluj IronPDF: pip install ironpdf
  2. Załaduj dokument PDF: pdf = PdfDocument.FromFile("document.pdf")
  3. Konwertuj każdą stronę do formatu PNG: pdf.RasterizeToImageFiles("output/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/quickstart.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("document.pdf")
pdf.RasterizeToImageFiles("output/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/quickstart.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("document.pdf")
pdf.RasterizeToImageFiles("output/*.png", DPI=96)
PYTHON

Dlaczego deweloperzy konwertują pliki PDF na obrazy?

Konwersja PDF na obraz rozwiązuje kilka praktycznych problemów w rozwoju oprogramowania. Najczęstszym wymaganiem jest generowanie podglądów - wyświetlanie miniatury dokumentu PDF w interfejsie internetowym lub w aplikacji mobilnej bez zmuszania użytkowników do pobrania i otwarcia całego pliku.

Inne częste przypadki użycia to:

  • Kanały uczenia maszynowego: modele OCR, narzędzia do analizy układów i systemy widzenia komputerowego akceptują dane wejściowe w postaci obrazów, a nie PDFów
  • Archiwizacja i zgodność: Przechowywanie wizualnego zrzutu w zestawieniu z oryginalnym PDF-em zapewnia długoterminową czytelność nawet wtedy, gdy przeglądarki PDF zmienią się
  • Osadzanie raportów: Uwzględnianie konkretnych stron PDF jako obrazów wewnątrz innych dokumentów lub szablonów e-mail
  • Automatyzacja testów: Porównywanie zrzutów stron wyrenderowanych w celu wykrycia regresji wizualnych w wyjściu PDF

Python nie zawiera natywnej funkcjonalności konwersji PDF na obraz w swojej standardowej bibliotece. Narzędzia takie jak pdf2image wymagają zainstalowania Popplera jako zewnętrznego pliku binarnego, co zwiększa złożoność wdrożenia. IronPDF obsługuje renderowanie wewnętrznie, więc dodanie konwersji PDF na obraz do dowolnego projektu w języku Python wymaga tylko jednego pip install.

Zwróć uwagęIronPDF używa silnika renderującego opartego na Chromium. PDF generowane z HTML są obrazami, które wyglądają identycznie, jak wyświetlane przez przeglądarkę, co jest przydatne, gdy PDFy pochodzą z HTML lub adresów URL.

Jak przekonwertować plik PDF na obrazy?

Aby przekonwertować plik PDF na obrazy, wywołaj RasterizeToImageFiles na instancji PdfDocument. Metoda zapisuje jeden plik graficzny na stronę w określonym katalogu. Gwiazdka (*) w ścieżce wyjściowej jest zastępowana numerem strony zaczynającym się od 1, więc assets/images/*.png daje assets/images/1.png, assets/images/2.png i tak dalej.

Utwórz katalog wyjściowy przed wywołaniem metody. IronPDF nie utworzy go automatycznie, jeżeli nie istnieje.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-pdf-to-images.py
from ironpdf import PdfDocument

# Load a PDF from disk
pdf = PdfDocument.FromFile("my-content.pdf")

# Write each page to a PNG file in the "assets/images" folder
# The folder must exist before calling this method
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-pdf-to-images.py
from ironpdf import PdfDocument

# Load a PDF from disk
pdf = PdfDocument.FromFile("my-content.pdf")

# Write each page to a PNG file in the "assets/images" folder
# The folder must exist before calling this method
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
PYTHON

Parametr DPI kontroluje rozdzielczość obrazu. Wyższe DPI produkuje ostrzejszy obraz kosztem większego rozmiaru pliku i dłuższego czasu przetwarzania. Standardowe wartości:

Wartości DPI i typowe przypadki użycia
DPITypowe zastosowanie
72Rozdzielczość ekranu, szybkie przetwarzanie
96Standardowa jakość internetowa
150Dobra jakość druku
300Wysokiej jakości wyjście drukowane
File explorer showing numbered PNG output files (1.png through 11.png) generated by RasterizeToImageFiles from an 11-page PDF

Katalog wyjściowy z jednym plikiem PNG na stronę PDF

Jeśli obrazy wyjściowe są rozmyte, zwiększ wartość DPI. Przetwarzanie 300 DPI na całym dokumencie 50-stronicowym zajmuje zauważalnie więcej czasu niż 96 DPI - wybierz na podstawie rzeczywistych wymagań dotyczących jakości przypadku użycia.

PoradyDo generowania miniatur sieciowych wystarczy 96 DPI i sprawia to, że rozmiary plików są małe. Zarezerwuj 150-300 DPI na przypadki, w których obraz będzie drukowany lub wyświetlany w pełnym rozmiarze.

Jak przekonwertować konkretny zakres stron na obrazy?

Aby przekonwertować tylko podzbiór stron, należy przekazać indeksy stron jako drugi argument do RasterizeToImageFiles. Indeksy stron to zera bazowane liczby całkowite.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-page-range.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Convert only pages 1, 2, and 3 (zero-based indices: 0, 1, 2)
pdf.RasterizeToImageFiles("assets/images/*.png", [0, 1, 2], DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-page-range.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Convert only pages 1, 2, and 3 (zero-based indices: 0, 1, 2)
pdf.RasterizeToImageFiles("assets/images/*.png", [0, 1, 2], DPI=96)
PYTHON

Selektywne wyodrębnianie stron jest przydatne w dokumentach, w których potrzebne są tylko pierwsze kilka stron do podglądu, unikając niepotrzebnego przetwarzania całego pliku. Dla przepływów roboczych, które wydobywają już osadzone obrazy w PDF, IronPDF dostarcza oddzielne metody ekstrakcji.

Jak przekonwertować URL na obrazy?

IronPDF może wyświetlić stronę internetową jako plik PDF, a następnie przekonwertować ten PDF na obrazy w jednym toku pracy. Użyj ChromePdfRenderer, aby pobrać i wyrenderować adres URL, a następnie wywołaj RasterizeToImageFiles na wynikowym PdfDocument. To podejście tworzy wizualne archiwa stron internetowych lub generuje obrazy podglądu treści online bez potrzeby korzystania z oddzielnego narzędzia do zrzutów ekranu.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/url-to-images.py
from ironpdf import ChromePdfRenderer

# Render a web page to PDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.example.com")

# Convert each rendered page to a PNG image
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/url-to-images.py
from ironpdf import ChromePdfRenderer

# Render a web page to PDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.example.com")

# Convert each rendered page to a PNG image
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
PYTHON

Wyrenderowane obrazy odzwierciedlają, jak strona wygląda w przeglądarce Chromium, w tym style CSS i treści renderowane w JavaScript. Dla stron za uwierzytelnieniem lub wymagających interakcji, rozważ użycie samouczka HTML do PDF IronPDF, aby dostarczyć pre-renderowany znacznik bezpośrednio. Powstały PDF może być następnie rasteryzowany przy użyciu tego samego podejścia, które pokazano powyżej.

File explorer showing 5 PNG files (1.png through 5.png) generated from a URL rendered to PDF by IronPDF

Obrazy generowane z URL wygenerowane za pomocą IronPDF

Jak kontrolować wymiary wyjściowego obrazu?

Domyślnie RasterizeToImageFiles generuje obrazy o natywnych wymiarach strony, skalowane według współczynnika DPI. Aby ograniczyć rozmiar pliku wyjściowego, należy ustawić wartości ImageMaxWidth i ImageMaxHeight, mierzone w pikselach.

IronPDF zachowuje oryginalne proporcje obrazu na podstawie wartości ImageMaxHeight. Wyjście nie zostanie rozciągnięte ani zniekształcone, nawet jeśli podana szerokość i wysokość mają inny stosunek niż strona źródłowa.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/constrained-dimensions.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Generate thumbnail images constrained to 500x500 pixels
pdf.RasterizeToImageFiles(
    "assets/images/*.png",
    ImageMaxWidth=500,
    ImageMaxHeight=500,
    DPI=200
)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/constrained-dimensions.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Generate thumbnail images constrained to 500x500 pixels
pdf.RasterizeToImageFiles(
    "assets/images/*.png",
    ImageMaxWidth=500,
    ImageMaxHeight=500,
    DPI=200
)
PYTHON

Ustawienie ImageMaxWidth=500, ImageMaxHeight=500 na 200 DPI pozwala uzyskać obrazy odpowiednie do wyświetlania miniatur lub układów interfejsu użytkownika opartych na kartach. Dopasuj te wartości do wymiarów wymaganych przez projekt aplikacji. Aby generować treści PDF do rasteryzacji, IronPDF również wspiera tworzenie PDF z Pythona oraz łączenie wielu PDFów przed konwersją.

WażneStosunek proporcji jest zachowany według wysokości. Jeśli strona źródłowa jest szersza niż wyższa, wynikowy obraz może być węższy niż ImageMaxWidth. Projektuj układy, aby obsługiwały miniatury o zmiennej szerokości.

Jakie są kolejne kroki konwersji PDF na obrazy?

Przewodnik ten obejmuje trzy podstawowe przepływy pracy: konwertowanie pliku PDF na obrazy, konwertowanie URL na obrazy i kontrolowanie wymiarów i jakości obrazu. IronPDF obsługuje formaty JPEG, JPG, PNG, TIFF oraz inne formaty za pomocą tej samej metody RasterizeToImageFiles. Zmień rozszerzenie pliku we wzorcu ścieżki wyjściowej, aby zmienić formaty.

Dla dalszej automatyzacji rozważ te kolejne kroki:

  • Przetwarzanie wsadowe: Przejrzyj katalog plików PDF i konwertuj każdy z nich po kolei lub użyj modułu concurrent.futures w języku Python do przetwarzania równoległego
  • Selektywne wyodrębnianie: Użyj parametru indeksu strony, aby wyodrębnić tylko strony istotne dla przypadku użycia
  • Integracja kanału obrazów: Przenieś pliki wyjściowe do PIL/Pillow lub OpenCV do dalszego przetwarzania, takiego jak kadrowanie, adnotacja czy normalizacja formatu
  • Kompresja przed konwersją: Użyj kompresji PDFu IronPDF, aby zmniejszyć rozmiar pliku przed rasteryzacją dużych dokumentów
  • Przepływy pracy formularzy: Wypełniaj formularze PDF programowo, a następnie przekonwertuj wypełnione strony formularzy na obrazy do przeglądu lub archiwizacji

Aby kontynuować budowanie z IronPDF, zapoznaj się z dokumentacją IronPDF dla Pythona i przykładem rasteryzacji PDF na obrazy.

Rozpocznij bezpłatny 30-dniowy okres próbny IronPDF dla Pythona, aby używać tych funkcji w produkcji. Gdy będziesz gotowy do wdrożenia, zobacz opcje licencjonowania, aby dostosować plan do skali projektu.

Zwróć uwagęWięcej informacji: Konwersja plików PDF na obrazy

Często Zadawane Pytania

Jak przekonwertować PDF do obrazu w Pythonie?

Zainstaluj IronPDF za pomocą pip install ironpdf, następnie załaduj PDF używając PdfDocument.FromFile("file.pdf") i wywołaj RasterizeToImageFiles("output/*.png", DPI=96). To zapisuje jeden obraz na stronę w określonym katalogu.

Jakie formaty obrazów obsługuje IronPDF dla konwersji PDF?

IronPDF obsługuje formaty wyjściowe PNG, JPEG, JPG i TIFF. Określ format zmieniając rozszerzenie pliku w wzorcu ścieżki wyjściowej przekazanej do RasterizeToImageFiles, na przykład *.jpg dla JPEG lub *.tiff dla TIFF.

Jak kontrolować jakość obrazu podczas konwersji PDF?

Użyj parametru DPI w RasterizeToImageFiles. Wartość 96 to standardowa jakość webowa. 150 jest odpowiednia do podglądów drukowanych. 300 produkuje wysokiej jakości wydruk. Wyższe wartości DPI zwiększają rozmiar pliku i czas przetwarzania.

Czy mogę ustawić maksymalną szerokość lub wysokość dla obrazów wyjściowych?

Tak. Przekaż ImageMaxWidth i ImageMaxHeight w pikselach do RasterizeToImageFiles. IronPDF zachowuje proporcje obrazu w oparciu o wartość wysokości, więc obraz nie będzie zniekształcony.

Jak przekonwertować tylko wybrane strony z PDF do obrazów?

Przekaż listę indeksów stron zaczynających się od zera jako drugi argument do RasterizeToImageFiles. Na przykład, [0, 1, 2] konwertuje tylko pierwsze trzy strony.

Czy mogę przekonwertować URL strony internetowej na obraz używając IronPDF?

Tak. Użyj ChromePdfRenderer do wywołania RenderUrlAsPdf z URL, który zwraca PdfDocument. Następnie wywołaj RasterizeToImageFiles na tym dokumencie, aby uzyskać pliki obrazów z każdej renderowanej strony.

Czy IronPDF wymaga jakichkolwiek zewnętrznych binarnych plików do konwersji PDF na obraz?

Nie. IronPDF zawiera własny silnik renderujący oparty na Chromium i nie wymaga Popplera, Ghostscriptu czy jakiejkolwiek zewnętrznej instalacji binarnej. Wystarczy pip install ironpdf, aby rozpocząć.

Dlaczego moje przekonwertowane obrazy są nieostre?

Nieostre wyjście jest spowodowane niską wartością DPI. Zwiększ ją z domyślnej 96 do 150 lub 300 dla ostrzejszych wyników. Pamiętaj, że wyższe DPI powoduje większe rozmiary plików i dłuższe czasy przetwarzania.

Curtis Chau
Autor tekstów technicznych

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ę...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.