Mam wymaganie konwersji stron PDF na obrazy. Jest obraz tła z napisem, więc kiedy zapisuję go jako obraz, zapisywany jest tylko obraz tła.
Czy jest dostępne oprogramowanie do tego samego, aby można było przekonwertować całą stronę na obraz?
Mam wymaganie konwersji stron PDF na obrazy. Jest obraz tła z napisem, więc kiedy zapisuję go jako obraz, zapisywany jest tylko obraz tła.
Czy jest dostępne oprogramowanie do tego samego, aby można było przekonwertować całą stronę na obraz?
Odpowiedzi:
Zainstaluj imagemagick .
Korzystanie z terminala, w którym znajduje się plik PDF:
Aby uzyskać pełny dokument:
convert -density 150 input.pdf -quality 90 output.png
Dla jednej strony:
convert -density 150 input.pdf[666] -quality 90 output.png
W wyniku czego:
Można wybrać format PNG, JPG lub (praktycznie) dowolny inny format obrazu.
-density xxxustawi DPI na xxx(wspólne to 150 i 300).
-quality xxxustawi kompresję xxxna formaty plików PNG, JPG i MIFF (100 oznacza brak kompresji).
[666]przekonwertuje tylko 667 stronę na PNG (numeracja zerowa, więc [0]jest to pierwsza strona).
Wszystkie inne opcje (takie jak przycinanie, skala szarości itp.) Można wyświetlić na stronie internetowej Image Magic .
-density 300parametr
gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1a jeśli masz convert: no images defined output.pngto oznacza, że nie został zainstalowany Ghostscript ...
/etc/ImageMagick-7/policy.xmlpliku i usunięcie PDFz<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
Możesz użyć pdftoppmdo konwersji pliku PDF do formatu PNG:
pdftoppm input.pdf outputname -png
Spowoduje to wydrukowanie każdej strony w formacie PDF w formacie outputname-01.png, który 01jest indeksem strony.
pdftoppm input.pdf outputname -png -f {page} -singlefile
Zmień {page}na numer strony. Indeksuje się na 1, więc -f 1byłaby to pierwsza strona.
Domyślna rozdzielczość tego polecenia to 150 DPI. Zwiększenie go spowoduje zarówno większy rozmiar pliku, jak i więcej szczegółów.
Aby zwiększyć rozdzielczość przekonwertowanego pliku PDF, dodaj opcje -rx {resolution}i -ry {resolution}. Na przykład:
pdftoppm input.pdf outputname -png -rx 300 -ry 300
-r 300zamiast samodzielnie określać rozdzielczości xiy, gdy chcesz ustawić je na tę samą wartość.
IIRC GIMP może wykorzystywać pliki PDF, tzn. Konwertować je na obrazy. Więc jeśli chcesz od razu edytować obrazy - GIMP jest twoim przyjacielem.
Akceptowana obecnie odpowiedź spełnia swoje zadanie, ale daje wynik, który jest większy i cierpi z powodu utraty jakości.
Sposób w odpowiedzi udzielonej tutaj skutkuje wyjściem która jest porównywalna wielkością do wejścia i nie cierpią z powodu utraty jakości.
TLDR - użyj pdfimages:pdfimages -j input.pdf output
Cytując połączoną odpowiedź:
Nie jest jasne, co rozumiesz przez „utratę jakości”. To może znaczyć wiele różnych rzeczy. Czy możesz opublikować próbki do zilustrowania? Być może wyciąć tę samą sekcję z wersji niskiej jakości i dobrej jakości (jako PNG, aby uniknąć dalszej utraty jakości).
Być może trzeba użyć
-densitydo konwersji w wyższej rozdzielczości:convert -density 300 file.pdf page_%04d.jpg(Możesz dodać
-units PixelsPerInchlub w-units PixelsPerCentimeterrazie potrzeby. Domyślnie moja kopia to ppi.)Aktualizacja: Jak już wspomniałeś,
gscan2pdf(sposób, w jaki go używasz) jest tylko opakowaniem dlapdfimages(z popplera ).pdfimagesnie robi tego samego,convertco w przypadku pliku PDF jako danych wejściowych.
convertpobiera plik PDF, renderuje go w pewnej rozdzielczości i wykorzystuje uzyskaną bitmapę jako obraz źródłowy.
pdfimagesprzegląda pliki PDF pod kątem osadzonych obrazów bitmapowych i eksportuje je do pliku. Po prostu ignoruje wszelkie polecenia rysowania tekstu lub wektorów w pliku PDF.W rezultacie, jeśli masz plik PDF, który jest tylko opakowaniem wokół serii map bitowych,
pdfimagesznacznie lepiej wyodrębni je, ponieważ dostarczy ci surowe dane w oryginalnym rozmiarze. Prawdopodobnie zechcesz również skorzystać z tej-jopcjipdfimages, ponieważ plik PDF może zawierać surowe dane JPEG. Domyślniepdfimageskonwertuje wszystko do formatu PNM, a konwersja JPEG> PPM> JPEG jest procesem stratnym.Więc spróbuj
pdfimages -j file.pdf pageKonieczne może być wykonanie tej czynności krok
convertpo.jpgkroku (w zależności od formatu bitmapy, z którego korzystał plik PDF).Wypróbowałem to polecenie w pliku PDF, który utworzyłem z sekwencji obrazów JPEG. Wyodrębnione pliki JPEG były bajt po bajcie identyczne z obrazami źródłowymi. Nie można uzyskać wyższej jakości niż to.
Jeśli twoje pliki PDF są skanowane, obrazy są już przechowywane jako część pliku pdf. po prostu musisz je wyodrębnić za pomocą pdfimages:
pdfimages my-file.pdf prefix
Aby uzyskać pojedynczą stronę z konwersji gm, dodaj [N] (z N numer strony zaczynający się od 0) do nazwy PDF, tzn. gm convert foo.pdf[11] out.pngAby uzyskać 12. stronę z pliku PDF.
Do pdftoppmużycia -f N -singlefile, gdzie N jest numerem strony rozpoczynającym się od 1, tj. pdftoppm -f 12 -singlefile foo.pdf outDla tego samego wyniku. Wygląda na to, że zawsze dodaje „.png” do wyjściowej nazwy pliku i nie ma sposobu, aby to zatrzymać.
Jeśli chcesz tylko przekonwertować określoną stronę pliku PDF na format PNG, możesz przesłać pdftkdo convert( opisanego powyżej ) potoku w następujący sposób:
pdftk document.pdf cat 12 output - | convert - document-page-12.png
Master PDF Editor (wersja 2.2) ma tę opcję włączoną. Otwórz plik PDF, a następnie przejdź do Plik> Eksportuj do> Obrazy. Przedstawia okno dialogowe, w którym można zdefiniować różne opcje wyniku. Niezwykle przydatny. Mam nadzieję, że te informacje pomogą.