Wyodrębnianie osadzonych obrazów z pliku PDF

165

Zanim zacząłem używać Ubuntu, użyłem czytnika PDF Nitro, aby automatycznie wyodrębnić obrazy z plików PDF. Czy istnieje czytnik PDF dla systemu Linux, który to robi?

Chciałbym móc wyodrębniać zdjęcia szybciej / łatwiej niż podczas robienia zdjęcia.

1kb
źródło
Czy pamiętasz, jak dobrze NitroPDF radzi sobie z obrazami wektorowymi? Czy pdfimagesmożna to zrobić lepiej / gorzej niż NitroPDF?
Léo Léopold Hertz
2
@ funky-future Oczywiście dwa pytania są duplikatami, ale twój zduplikowany cel ma tylko dwie odpowiedzi, a jedna z tych dwóch odpowiedzi jest odpowiedzią na spam, więc kierunek duplikacji powinien zostać odwrócony, aby uratować to pytanie przed uderzeniem młota dupe.
karel,

Odpowiedzi:

196

Posługiwać się pdfimages

pdfimages to narzędzie do pobierania obrazów PDF, które zapisuje obrazy w pliku PDF w formacie PPM, PBM, JPEG lub JPEG 2000.

Jest to część poppler-utilspakietu, którą musisz zainstalować.

Stosowanie: pdfimages [options] <PDF-file> <image-root>

Przykład: Poniżej wyodrębniono wszystkie obrazy z pliku PDF, zapisując je w formacie JPEG.

pdfimages -j in.pdf /tmp/out

Zapisuje obrazy z pliku PDF in.pdfw plikach /tmp/out-000.jpg(lub /tmp/out-000.pbm; patrz poniżej) /tmp/out-001.jpgitp.


Pdfimages strona mężczyzna wyjaśnia:

-j:  Normally, all images are written as PBM (for monochrome images) or PPM for
     non-monochrome images) files. With this option,  images in DCT format are
     saved as JPEG files. All non-DCT images are saved in PBM/PPM format as usual.
pl1nk
źródło
8
Byłoby miło mieć rozwiązanie, które wyodrębnia obrazy w swoim macierzystym formacie. Ponowne kodowanie plików JPEG nie jest naprawdę idealne.
Christian
32
@Christian from man page-all Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files. This is equivalent to specifying the options -png -tiff -j -jp2 -jbig2 -ccitt.
wil93
2
Pamiętaj, że -allprzełącznik jest obsługiwany tylko w ostatnich wersjach poppler-utils. Na przykład, jeśli nadal jesteś w dniu 12.04, nie będziesz mieć dostępu do tej opcji
Glutanimate,
1
Jeśli nie możesz użyć, -allprzejdź do formatów PNM. Są bezstratne i możesz przetwarzać obrazy np. W formacie PNG.
Tomasz Gandor
1
@Christian, użyj, $ pdfimages -list <PDF-file>aby sprawdzić oryginalny format w kolumnie „enc”, więc nie musisz ponownie kodować obrazu do innego formatu.
Jose Barakat
24

Często używam do tego Inkscape. Załaduj stronę i usuń wszystkie inne rzeczy. Zaletą jest to, że można uzyskać obrazy wektorowe w SVG i modyfikować je według własnego uznania.

Zły duch
źródło
Niektóre pliki PDF można poprawnie zaimportować tylko za pomocą wewnętrznego importu Inkscape (import poppler / cairo lub pdfimage nie może poprawnie parsować). Po zaimportowaniu, skopiuj i wklej obraz do nowego pliku i rozmiaru strony do wyboru graphicdesign.stackexchange.com/a/21638/95041
sdaffa23fdsf
Nie ma dla mnie problemu, to było najlepsze rozwiązanie, pamiętaj, że musisz wybrać jedną stronę na raz!
Jimmy Olano
5

Mam plik PDF zawierający dwie kolumny z osadzonymi obrazami utworzonymi za pomocą LaTeX, w których oryginalne obrazy zostały dostarczone jako EPS. Wypróbowałem zaproponowane rozwiązanie w oparciu pdfimages, ale niestety nie zwróciło ono żadnych zdjęć. Próbowałem wtedy użyć Inkscape, ale generowane przez niego obrazy SVG były zniekształcone i nie miałem też szczęścia eksportować ich jako EPS.

Oprogramowanie, które działało dla nas, to MasterPdfEditor .

Oto procedura

  • Otwórz plik za pomocą Master PDF Editor
  • Użyj narzędzia edycji (Alt + 1), aby wybrać obraz, który chcesz wyodrębnić
  • Skopiuj rysunek (Ctrl + C)
  • Kliknij otaczającą przerywaną ramkę wokół obrazu i sprawdź prawy pasek boczny (Object Inspector) i kliknij „Geomerty”. Tam możesz zobaczyć rozmiar swojego wyboru
  • Utwórz nowy plik (Ctrl + N). Zostaniesz poproszony o podanie rozmiaru strony. Podaj dokładny rozmiar obrazu i utwórz nowy plik
  • Teraz jest to trochę trudne: wklej obraz (Ctrl + V). Obraz może nie być wyświetlany w nowym pliku. Użyj strzałek, aby przesuwać go, aż będziesz w stanie go wyśledzić.
  • Użyj strzałek, aby wyśrodkować obraz na nowej stronie
  • Zapisz jako PDF

Rezultat jest bardzo wysokiej jakości, ale oprogramowanie nie jest bezpłatne. Istnieje wersja demonstracyjna, która „pozwala wypróbować wszystkie funkcje”, ale zawiera „dodanie znaku wodnego do pliku wyjściowego”. Szczerze mówiąc, nie zauważyłem żadnego znaku wodnego w utworzonym pliku PDF.

Pantelis Sopasakis
źródło
To jest Zapytaj Ubuntu ... Podoba nam się tutaj open source, a twoje rozwiązanie jest komercyjnym rozwiązaniem o zamkniętym źródle ... Jak to jest lepsze od wcześniej ocenianych odpowiedzi? (-1 w międzyczasie)
Fabby
3
@Fabby Dziękujemy za opinię. Nie wiedziałem o tym. Czy istnieje taka zasada na askubuntu.com? Jednak zaraz po otwarciu centrum oprogramowania Ubuntu otrzymasz sugestie dotyczące niewolnych aplikacji.
Pantelis Sopasakis 15.04.16
Nie, nie ma „reguły” i dlatego nie głosowałem za usunięciem tej odpowiedzi, ale są lepsze narzędzia, które są bezpłatne (jak w darmowym piwie i wolności słowa), więc to tylko opinia.
Fabby
1
+1. Użyłem wiersza polecenia ImageMagick, ale jest to interesujące rozwiązanie dla kogoś, kto szuka GUI.
rpmcruz
2
Działa u niektórych osób, to wystarczy. Nie bądź nazistą .... Nie wiem kim jesteśmy. Możesz mówić tylko za siebie. +1 za odpowiedź
sdaffa23fdsf
4

Możesz także wypróbować pdfmod. Jest to GUI (interfejs graficzny), który może wyodrębniać obrazy i wykonywać inne podstawowe operacje na plikach pdf.

Do zrobienia
źródło
Hmm, wydaje mi się trochę niedokładny. Wstawiłem plik PDF zawierający głównie fioletowe obrazy i otrzymałem zielonkawe obrazy.
DBX12
2

Jeśli potrzebujesz przyciętego obrazu w formacie pdf / eps, wyodrębnij stronę z obrazem za pomocą pdfmod(zgodnie z sugestią Do zrobienia).

Następnie używając pdfcropmożesz przyciąć go odpowiednio ustawiając marginesy metodą prób i błędów:

pdfcrop --margins "-15 -50 0 -140" extracted_page.pdf
macieksk
źródło
1

Używam pdfimages, który jest narzędziem wiersza poleceń i działa świetnie dla mnie. Jest bardzo łatwy w użyciu i można użyć opcji --help, aby dowiedzieć się więcej o jego użyciu. Używam Ubuntu i jest fabrycznie zainstalowany. Jeśli twoje pliki pdf są zaszyfrowane lub chronione hasłem, istnieją odpowiednie opcje, więc to narzędzie działa świetnie. Możesz przeczytać więcej o obrazach pdf tutaj

jetbird13
źródło
4
Przeczytaj inne odpowiedzi przed opublikowaniem swojego. Zauważ, że są inne, które to obejmują.
edwin
Ok, przepraszam :) Myślałem o opublikowaniu mojego, ponieważ zawiera on pewne informacje o plikach pdf chronionych hasłem i wyjaśniam, że to narzędzie ma te opcje, a także zamieściłem link, który jest tutorialem o tym narzędziu.
jetbird13
Jeśli zyskasz wystarczającą reputację, możesz komentować odpowiedzi innych lub oceniać je.
edwin
1

W przypadku obrazów pdf wyodrębniony obraz może składać się z dwóch lub więcej części. Prostym sposobem na ich ponowne złożenie bez obawy o wyodrębnione formaty jest zaimportowanie części do LibreOffice Draw, przycięcie z dialogiem przycięcia obrazu, ustawienie części, dostosowanie rozmiaru strony i eksportowanie w dowolnym formacie.

DafyddG
źródło
1

Jeśli chcesz przyciąć obraz z pliku pdf za pomocą przeglądarki pdfviewer, możesz wypróbować okular. Może przycinać wszystko (teksty lub obrazy) w formacie png lub jpeg. Jeśli chcesz wyodrębnić obrazy w formacie png z pliku pdf, możesz to zrobić przy użyciu minimalnego polecenia za pomocą pdftohtml. Konwertuje pdf na html plus obrazy. Tutaj możesz znaleźć przykład - https://www.youtube.com/watch?v=CG1rf7k3xo8 . Jeśli chcesz wyodrębnić wiele zdjęć z pliku pdf, sugeruję wypróbowanie tego.

użytkownik203413
źródło
0

Użyte oprogramowanie: Xreader OS: Antergos

Kroki:

  1. Otwórz plik PDF
  2. Kliknij obraz prawym przyciskiem myszy
  3. Wybierz Zapisz obraz jako ..
  4. Wprowadź nazwę pliku i rozszerzenie.
  5. Zapisać.
Yash Krishan
źródło