Eksportuj obrazy z PDFów

Kiedy potrzebujesz wyciągnięcia obrazu z pliku PDF

Page content

Czasami istnieje realna potrzeba zapisania obrazu z pliku PDF bez potrzeby robienia zrzutu ekranu lub renderowania PDF na ekranie.
pdfimages pomaga w tym.

Komiczny obrazek mężczyzny, który robi zdjęcie diagramu na ekranie

Aby wyodrębnić obrazy z pliku PDF w systemie Linux, najczęściej używanym i skutecznym narzędziem jest narzędzie wiersza poleceń pdfimages,
które jest częścią pakietu poppler-utils.

Użycie narzędzia pdfimages w systemie Linux: krok po kroku

1. Zainstaluj pdfimages (jeśli jeszcze nie jest zainstalowany):

Większość dystrybucji Linux zawiera pdfimages domyślnie. Jeśli jest to konieczne, zainstaluj je za pomocą menedżera pakietów:

sudo apt-get install poppler-utils

lub dla Fedora:

sudo dnf install poppler-utils

2. Otwórz terminal:

Naciśnij Ctrl + Alt + T, aby otworzyć okno terminala.

3. Uruchom pdfimages, aby wyodrębnić obrazy:

Podstawowy składnia:

pdfimages  

Przykład:

pdfimages /ścieżka/do/pliku.pdf /ścieżka/do/wyjścia/obraz
  • To wyodrębni wszystkie obrazy z pliku.pdf i zapisze je jako obraz-000.ppm, obraz-001.ppm itd. w określonym katalogu wyjściowym.

4. Wyodrębnianie obrazów jako JPEG (jeśli pożądane):

Aby wyodrębnić obrazy w formacie JPEG (jeśli to możliwe), użyj opcji -j:

pdfimages -j /ścieżka/do/pliku.pdf /ścieżka/do/wyjścia/obraz
  • To zapisze obrazy JPEG jako pliki .jpg.

5. Wyodrębnianie obrazów z konkretnych stron:

  • Aby wyodrębnić obrazy z zakresu stron, użyj -f (pierwsza strona) i -l (ostatnia strona):
pdfimages -f 2 -l 5 -j /ścieżka/do/pliku.pdf /ścieżka/do/wyjścia/obraz
  • To wyodrębni obrazy ze stron 2 do 5.

6. Dodatkowe opcje:

  • Aby wyodrębnić obrazy jako PNG: użyj -png (jeśli to obsługuje Twoja wersja).
  • Dla zaszyfrowanych plików PDF: użyj -opw 'hasło_właściciela' lub -upw 'hasło_użytkownika'.

Uwagi

  • Domyślnym formatem wyjścia jest PPM (kolor) lub PBM (czarno-biały). Użyj -j, aby uzyskać JPEG, lub przekonwertuj pliki PPM/PBM na inne formaty za pomocą narzędzi takich jak convert z ImageMagick, jeśli to konieczne.
  • Pliki wyjściowe są automatycznie numerowane i zapisywane w określonym katalogu.

Tabela podsumowująca

Przykład polecenia Opis
pdfimages input.pdf image Wyodrębnia wszystkie obrazy w domyślnym formacie PPM/PBM
pdfimages -j input.pdf image Wyodrębnia obrazy jako JPEG, jeśli to możliwe
pdfimages -f 3 -l 5 input.pdf image Wyodrębnia obrazy ze stron 3 do 5
pdfimages -opw 'hasło' -j input.pdf image Wyodrębnia obrazy z PDF chronionego hasłem właściciela

Ten sposób jest wydajny i działa dla większości PDF zawierających osadzone obrazy. Jednak:

  • pdfimages wyodrębnia obrazy w ich oryginalnej rozdzielczości.
  • Aby kontrolować rozdzielczość wyjścia, użyj biblioteki renderowania PDF takiej jak PyMuPDF i określ pożądany DPI podczas tworzenia obrazu.

Jak zapisać obrazy z PDF w określonej rozdzielczości.

Nie możesz określić rozdzielczości wyodrębnionych obrazów, korzystając z pdfimages, ponieważ to narzędzie wyodrębnia osadzone obrazy w ich oryginalnym formacie i rozdzielczości bez ponownego próbkowania lub zmiany jakości. Rozdzielczość jest określana przez to, jak obrazy były przechowywane w PDF, a pdfimages nie oferuje opcji skalowania w górę lub w dół podczas wyodrębniania.

Jeśli chcesz wyodrębnić obrazy w określonej rozdzielczości (np. renderując stronę lub fragment strony jako obraz w wybranym DPI), musisz użyć biblioteki renderowania PDF, takiej jak PyMuPDF (fitz). Za pomocą PyMuPDF możesz określić pożądaną rozdzielczość, używając parametru dpi podczas renderowania strony do obrazu:

import fitz  # PyMuPDF
doc = fitz.open("input.pdf")
page = doc.load_page(0)  # pierwsza strona
pix = page.get_pixmap(dpi=300)  # renderuj w 300 DPI
pix.save("output.png")

Ten podejście tworzy rasteryzowany obraz strony w określonym DPI, zamiast wyodrębniania oryginalnych osadzonych obrazów.

Inne narzędzia do wyodrębniania obrazów z PDF

Najlepszym oprogramowaniem do wyodrębniania obrazów z PDF bez utraty rozdzielczości są te, które wyodrębniają oryginalne osadzone obrazy bezpośrednio, zamiast renderować lub ponownie próbkować je. Najlepsze opcje obejmują:

  • Adobe Acrobat Pro: Oferta dedykowanego narzędzia „Export All Images”, które wyodrębnia obrazy w ich oryginalnej jakości i formacie jako osobne pliki. Ten sposób jest bardzo niezawodny i zachowuje dokładną rozdzielczość i jakość obrazów przechowywanych w PDF.

  • pdfimages (z pakietu XPDF/Poppler): Darmowe, open-source narzędzie wiersza poleceń dostępne na Linux i innych platformach. pdfimages wyodrębnia wszystkie obrazy z PDF w ich oryginalnym formacie i rozdzielczości, w tym wsparcie dla JPEG, JPEG2000 i innych formatów. Jest szeroko zalecane dla użytkowników szukających darmowego, wysokiej jakości procesu wyodrębniania.

  • Narzędzia online (np. PDF24 Tools, PDFCandy, pdfforge): Te usługi pozwalają przesłać PDF i pobrać wyodrębnione obrazy, zachowując oryginalną rozdzielczość. Są wygodne do szybkich zadań i nie wymagają instalacji, ale mogą podnosić pytania dotyczące prywatności dla wrażliwych dokumentów.

Tabela podsumowująca

Oprogramowanie/Narzędzie Platforma Zachowuje oryginalną rozdzielczość Uwagi
Adobe Acrobat Pro Windows/Mac Tak Płatne, profesjonalne, bardzo niezawodne
pdfimages (Poppler) Linux/Windows Tak Darmowe, open-source, narzędzie wiersza poleceń
PDF24 Tools, PDFCandy Web-based Tak Darmowe, łatwe w użyciu, pytania dotyczące prywatności

Główne stwierdzenie:

Zawsze używaj narzędzi, które wyodrębniają (nie renderują ani robią zrzuty ekranu) obrazy. I Adobe Acrobat Pro, i pdfimages są standardami branżowymi w tym zakresie, zapewniając, że obrazy są zapisywane dokładnie tak, jak istnieją w PDF, bez żadnej utraty rozdzielczości.

Opcje wiersza poleceń pdfutils

Podczas wykonywania pdfimages /help zostanie wyświetlone coś takiego:

$ pdfimages /help
pdfimages version 24.02.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : pierwsza strona do konwersji
  -l <int>       : ostatnia strona do konwersji
  -png           : zmień domyślny format wyjścia na PNG
  -tiff          : zmień domyślny format wyjścia na TIFF
  -j             : zapisz obrazy JPEG jako pliki JPEG
  -jp2           : zapisz obrazy JPEG2000 jako pliki JP2
  -jbig2         : zapisz obrazy JBIG2 jako pliki JBIG2
  -ccitt         : zapisz obrazy CCITT jako pliki CCITT
  -all           : równoważne z -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : wypisz listę obrazów zamiast zapisywania
  -opw <string>  : hasło właściciela (dla zaszyfrowanych plików)
  -upw <string>  : hasło użytkownika (dla zaszyfrowanych plików)
  -p             : dołącz numer strony do nazw plików wyjściowych
  -q             : nie wyświetlaj żadnych wiadomości ani błędów
  -v             : wypisz informacje o prawach autorskich i wersji
  -h             : wypisz informacje o użyciu
  -help          : wypisz informacje o użyciu
  --help         : wypisz informacje o użyciu
  -?             : wypisz informacje o użyciu

Przydatne linki