Przejdź do treści stopki
NARZęDZIA PDF DLA JęZYKA PYTHON

Jak przekonwertować plik PDF na obraz w języku Python

PDF (Portable Document Format) to najpopularniejszy format plików do przesyłania danych przez Internet, ponieważ zachowuje formatowanie treści i pomaga zabezpieczyć dane za pomocą uprawnień bezpieczeństwa. Istnieją sytuacje, w których musimy konwertować pliki PDF na obrazy JPG lub inne formaty obrazów, takie jak PNG, BMP, TIFF lub GIF. W sieci jest mnóstwo zasobów do konwersji plików JPG, ale czy nie byłoby super stworzyć własne narzędzie do konwersji plików PDF na obrazy w języku Python?

Czym jest Python?

Python to język programowania wysokiego poziomu, który jest używany do tworzenia aplikacji software'owych, stron internetowych, automatyzacji zadań, analizy danych oraz realizacji zadań sztucznej inteligencji i uczenia maszynowego. Jest również językiem skryptowym, ponieważ jest interpretowany, co czyni go bardziej potężnym w zakresie szybkiego tworzenia i testowania.

Aby stworzyć konwerter PDF na obraz, musimy mieć zainstalowanego Pythona w wersji 3+ na komputerze. Pobierz i zainstaluj najnowszą wersję z oficjalnej strony.

W tym artykule stworzymy własną aplikację do konwersji obrazów, używając bibliotek PDF na obraz w Python. W tym celu będziemy używać dwóch najpopularniejszych bibliotek Python: PDF2Image i PyMuPDF.

Jak konwertować pliki PDF na pliki graficzne w Python

  1. Zainstaluj bibliotekę Pythona do konwersji PDF na obraz.
  2. Załaduj istniejący plik PDF z dowolnej lokalizacji.
  3. Skorzystaj z metod konwersji.
  4. Iteruj przez strony pliku.
  5. Zapisz każdą stronę jako obraz JPG lub PNG, używając metody save.

Stwórz nowy plik Python

  1. Otwórz aplikację Python IDLE i naciśnij Ctrl + N. Otworzy się edytor tekstu. Możesz użyć do tego dowolnego edytora tekstu.
  2. Zapisz plik jako pdf2image.py, w tej samej lokalizacji co plik PDF, który chcesz przekonwertować na obrazy.

Plik PDF, który zamierzamy wykorzystać, zawiera 28 stron i wygląda następująco:

Jak przekonwertować PDF na obraz w Pythonie: Rysunek 1

Konwertuj pliki PDF na obrazy używając biblioteki PDF2Image

1. Zainstaluj bibliotekę PDF2Image Python

PDF2Image to moduł, który opakowuje pdftocairo i pdftoppm. Działa na Python 3.7+ do konwersji PDF na obiekt obrazu PIL. Historia poprzednich wersji pokazuje, że opakowuje jedynie pdftoppm, aby przekonwertować PDF na obrazy i działał tylko na Python 3+.

Aby zainstalować pakiet pdf2image, otwórz wiersz polecenia Windows lub Windows PowerShell i użyj następującego polecenia pip:

pip install pdf2image
pip install pdf2image
SHELL

Pip (Preferred Installer Program) to menedżer pakietów dla języka Python. Pobiera i instaluje pakiety oprogramowania zewnętrznego, które oferują funkcje i możliwości niepatrzoną w standardowej bibliotece Python.

Uwaga: Aby wykonać to polecenie z dowolnego miejsca w wierszu poleceń, musi być dodane Python do PATH. Dla Python 3+ zaleca się używanie pip3, ponieważ jest to zaktualizowana wersja pip.

2. Zainstaluj Poppler

Poppler to bezpłatna biblioteka typu open source do pracy z plikami PDF. Jest używany do renderowania plików PDF, czytania zawartości i modyfikowania zawartości w plikach PDF. Jest powszechnie używany przez użytkowników systemu Linux. Jednakże, dla Windows będziemy musieli pobrać najnowszą wersję Poppler.

Windows

Użytkownicy systemu Windows mogą pobrać najnowszą wersję Poppler tutaj: @oschwartz10612 wersja. Następnie musi być dodany folder bin/do zmiennej środowiskowej PATH.

Dla Mac

Użytkownicy Mac muszą również zainstalować Poppler. Można go zainstalować używając Brew:

brew install poppler
brew install poppler
SHELL

Dla Linux

Większość dystrybucji Linuxa zawiera narzędzia wiersza poleceń pdftoppm i pdftocairo. Jeśli te narzędzia nie są zainstalowane, można użyć menedżera pakietów, aby zainstalować poppler-utils.

Dla platformy niezależnej (Używając conda)

  1. Zainstaluj poppler:

    conda install -c conda-forge poppler
    conda install -c conda-forge poppler
    SHELL
  2. Zainstaluj pdf2image:

    pip install pdf2image
    pip install pdf2image
    SHELL

Teraz wszystko jest gotowe, zacznijmy od kodu do konwersji PDF na obrazy.

3. Kod dla konwersji plików PDF na pliki graficzne

Poniższy kod wykona konwersję obrazu z pliku PDF:

from pdf2image import convert_from_path

# Notify the user that the process is starting
print("Please wait while the file is being loaded.")
file = convert_from_path('file.pdf')

# Iterate over all pages in the PDF file
for i in range(len(file)):
    # Update user on progress
    print("Progress: " + str(round(i / len(file) * 100)) + "%")
    # Save each page as a JPG image file
    file[i].save('page' + str(i + 1) + '.jpg', 'JPEG')

# Notify the user that the conversion is successful
print("Conversion Successful")
from pdf2image import convert_from_path

# Notify the user that the process is starting
print("Please wait while the file is being loaded.")
file = convert_from_path('file.pdf')

# Iterate over all pages in the PDF file
for i in range(len(file)):
    # Update user on progress
    print("Progress: " + str(round(i / len(file) * 100)) + "%")
    # Save each page as a JPG image file
    file[i].save('page' + str(i + 1) + '.jpg', 'JPEG')

# Notify the user that the conversion is successful
print("Conversion Successful")
PYTHON

W powyższym kodzie najpierw otwieramy plik używając metody convert_from_path. Ta metoda otwiera plik zlokalizowany pod wskazaną ścieżką. Następnie iterujemy przez każdą stronę pliku PDF, aby była przekonwertowana na obrazy JPG. Na koniec używana jest metoda save do zapisania każdej przekonwertowanej strony jako pliku obrazu JPG. Teraz uruchom program i poczekaj na zakończenie konwersji. Pliki wyjściowe obrazu są zapisywane w tym samym folderze co program.

Jak przekonwertować PDF na obraz w Pythonie: Rysunek 2

Jak przekonwertować PDF na obraz w Pythonie: Rysunek 3

Konwertuj pliki PDF na obrazy używając biblioteki PyMuPDF

1. Zainstaluj bibliotekę PyMuPDF Python

PyMuPDF to rozszerzone wiązanie Python z MuPDF, który jest lekkim czytnikiem, rendererem i zestawem narzędzi e-booków, PDF i XPS. Może być używany do konwersji PDF na inne formaty jak JPG lub PNG. PyMuPDF działa na wersjach Python 3.7+.

Aby zainstalować pakiet PyMuPDF, otwórz wiersz polecenia Windows lub Windows PowerShell i użyj następującego polecenia pip:

pip install pymupdf
pip install pymupdf
SHELL

Zauważ, że PyMuPDF nie wymaga żadnych dodatkowych bibliotek, tak jak pakiet PDF2Image.

2. Kod dla konwersji plików PDF na obrazy

Poniższy kod zaimportuje moduł fitz z PyMuPDF, dzięki czemu możemy konwertować PDF na obrazy:

import fitz  # PyMuPDF

# Open the PDF file
doc = fitz.open("file.pdf")

# Iterate over each page in the document
for x in range(len(doc)):
    page = doc.load_page(x)  # Load a specific page
    pix = page.get_pixmap()  # Render page to image
    output = "output/pdfpage" + str(x + 1) + ".png"  # Specify output path
    pix.save(output)  # Save the image to the output path

# Close the document
doc.close()
import fitz  # PyMuPDF

# Open the PDF file
doc = fitz.open("file.pdf")

# Iterate over each page in the document
for x in range(len(doc)):
    page = doc.load_page(x)  # Load a specific page
    pix = page.get_pixmap()  # Render page to image
    output = "output/pdfpage" + str(x + 1) + ".png"  # Specify output path
    pix.save(output)  # Save the image to the output path

# Close the document
doc.close()
PYTHON

W powyższym kodzie nazwa pliku jest przekazywana jako argument do metody fitz.open, aby otworzyć plik. Następnie przechodzę przez cały dokument i ładuję każdą stronę osobno. Metoda get_pixmap służy do konwersji każdej strony dokumentu na piksele obrazu, a powstały obraz jest zapisywany w folderze wyjściowym za pomocą metody save. Na końcu otwarty dokument jest zamykany, aby zwolnić pamięć.

W porównaniu do PDF2Image, PyMuPDF jest szybszy przy konwersji PDF na PNG. PDF2Image może być wolne dla formatu PNG ze względu na jego współczynnik kompresji. Wyjściowy plik jest taki sam jak w przypadku PDF2Image:

Jak przekonwertować PDF na obraz w Pythonie: Rysunek 4

Rendering PDF to Image Conversions in C

Biblioteka IronPDF

IronPDF to biblioteka używana do generowania, odczytywania i manipulowania plikami PDF. Jego specjalnością jest renderowanie HTML do PDF przy pomocy silnika Chromium. Ta funkcja czyni go popularnym wśród deweloperów, którzy potrzebują konwertować pliki HTML lub URL na dokumenty PDF. Dodatkowo, oferuje konwersję z różnych formatów do plików PDF.

Możesz również rastrować plik PDF do obrazów, używając zaledwie dwóch linii kodu. Poniższy kod pokazuje, jak konwertować PDF na różne formaty obrazów:

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("https://example.com");
PDF.SaveAs("html.pdf");

// Rasterize the PDF
List<string> Images = PDF.RasterizeToImageFiles(ImageType.Png);
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("https://example.com");
PDF.SaveAs("html.pdf");

// Rasterize the PDF
List<string> Images = PDF.RasterizeToImageFiles(ImageType.Png);
Imports IronPdf

Private Renderer = New IronPdf.ChromePdfRenderer()
Private PDF = Renderer.RenderUrlAsPdf("https://example.com")
PDF.SaveAs("html.pdf")

' Rasterize the PDF
Dim Images As List(Of String) = PDF.RasterizeToImageFiles(ImageType.Png)
$vbLabelText   $csharpLabel

Pobierz IronPDF i wypróbuj go za darmo tutaj.

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

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie