Próbuję użyć programu wiersza polecenia convert
do pobrania pliku PDF do obrazu (JPEG lub PNG). Oto jeden z plików PDF, które próbuję przekonwertować.
Chcę, aby program usunął nadmiar białych znaków i zwrócił obraz o wystarczająco wysokiej jakości, aby można było z łatwością odczytać indeks górny.
To moja najlepsza próba . Jak widać przycinanie działa dobrze, muszę tylko trochę wyostrzyć rozdzielczość. Oto polecenie, którego używam:
convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg
Próbowałem podjąć następujące świadome decyzje:
- zmień rozmiar większy (nie ma wpływu na rozdzielczość)
- podnieść jakość tak wysoko, jak to możliwe
- użyj
-sharpen
(próbowałem zakresu wartości)
Wszelkie sugestie dotyczące uzyskania rozdzielczości obrazu w końcowej wersji PNG / JPEG byłyby bardzo mile widziane!
pdf
imagemagick
JBWhitmore
źródło
źródło
sips
, „system przetwarzania obrazu skryptów”. Jest to edytor obrazów wiersza poleceń wbudowany w macOS, działa na plikach PDF i wielu innych typach obrazów.Odpowiedzi:
Wygląda na to, że następujące działania:
Daje to lewy obraz . Porównaj to z wynikiem mojego oryginalnego polecenia ( obrazek po prawej ):
(Aby naprawdę zobaczyć i docenić różnice między nimi, kliknij każdy z nich prawym przyciskiem myszy i wybierz „Otwórz obraz w nowej karcie ...” ).
Pamiętaj także o następujących faktach:
Nie trzeba więc zmieniać rozmiaru; dodaj
-density
flagę. Gęstość 150 jest dziwna - próba zakresu wartości skutkuje gorszym obrazem w obu kierunkach!źródło
density
parametr jest nieco wyjątkowy, ponieważ musi znajdować się przed plikiem wejściowym. Ponieważ PDF to wektorowy format pliku, który nie ma (dużej) liczby pikseli, mówi coś w stylu „strona ma wymiary 8 cali na 12 cali”. Jeśli chcesz piksel, użyj tegodensity
ustawienia, aby powiedzieć mu, ile pikseli na cal chcesz uzyskać na wyjściu. Np. przy 150 otrzymasz 8x150 = 1200 na 12x150 = 1800 pikseli na obrazie wynikowym. To także liczba pikseli, na których działają ustawienia wyostrzania, kontrastu, kompresji itp.-flatten
.-density
i-flatten
, aby zmniejszyć rozmiar pliku pdf (do innego pliku pdf). Ta-flatten
opcja naprawdę bardzo pomaga w zmniejszeniu całkowitego rozmiaru. W moim przypadku bez zaburzeń widzenia.-density
Flaga będzie prawdopodobnie dają gorsze wyniki na wyższe wartości, jeśli jakość obrazu wyjściowego była niższa niż.Osobiście to lubię.
Jest to nieco ponad dwa razy większy rozmiar pliku, ale dla mnie wygląda lepiej.
-density 300
ustawia rozdzielczość, przy której renderowany jest plik PDF.-trim
usuwa piksele krawędziowe tego samego koloru co piksele narożne.-quality 100
ustawia jakość kompresji JPEG na najwyższą jakość.Rzeczy jak
-sharpen
nie działają dobrze z tekstem, ponieważ cofają czynności wykonane przez system renderowania czcionek, aby uczynić go bardziej czytelnym.Jeśli naprawdę chcesz go wysadzić, użyj tutaj zmiany rozmiaru i prawdopodobnie większej wartości dpi czegoś podobnego
targetDPI * scalingFactor
co spowoduje wyświetlenie pliku PDF w zamierzonej rozdzielczości / rozmiarze.Opisy parametrów na imagemagick.org są tutaj
źródło
convert
skąd będziemy wiedzieć, ile stron zostało przekonwertowanych?-sharpen
. Jakość jest o wiele lepsza niż w przypadku ustawień domyślnych i znacznie bardziej naturalna niż w przypadku-sharpen
.Używam
pdftoppm
w wierszu polecenia, aby uzyskać obraz początkowy, zwykle o rozdzielczości 300dpi, więcpdftoppm -r 300
następnie użyjconvert
do przycinania i konwersji PNG.źródło
pdftoppm
może również generować pliki JPEG i PNG.normalnie wyodrębniam osadzony obraz z „pdfimages” w natywnej rozdzielczości, a następnie używam konwersji ImageMagick do wymaganego formatu:
generuje to najlepszy i najmniejszy plik wyników.
Uwaga: W przypadku stratnych osadzonych obrazów JPG konieczne było użycie opcji -j:
W najnowszym popplerze możesz używać -all, które oszczędzają stratne jako jpg i bezstratne jak png
Na niewielkiej platformie Win trzeba było pobrać najnowszy (0.37 2015) plik binarny „poppler-util” z: http://blog.alivate.com.au/poppler-windows/
źródło
pdftoppm
pdfimages
Przekonałem się, że jest to zarówno szybsze, jak i bardziej stabilne, gdy przetwarzam wsadowo duże pliki PDF na pliki PNG i JPG, aby użyć bazowej
gs
komendy (inaczej Ghostscript), któraconvert
.Możesz zobaczyć polecenie na wyjściu
convert -verbose
i istnieje kilka możliwych poprawek (YMMV), do których dostęp jest trudny / niemożliwy bezpośrednio przezconvert
.Jednak trudniej byłoby wykonać przycinanie i ostrzenie za pomocą
gs
, więc, jak powiedziałem, YMMV!źródło
Daje również dobre wyniki:
źródło
Użytkownik systemu Linux tutaj: Wypróbowałem
convert
narzędzie wiersza polecenia (dla plików PDF do PNG) i nie byłem zadowolony z wyników. Uznałem, że jest to łatwiejsze, z lepszym wynikiem:pdftk file.pdf cat 3 output page3.pdf
GIMP
Resolution
z100
na300
lub600 pixel/in
GIMP
eksporcie jako PNG (zmień rozszerzenie pliku na .png)Edytować:
Dodano zdjęcie, zgodnie z żądaniem w
Comments
. Użyto polecenia Konwertuj:convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png
GIMP
: importowane w rozdzielczości 300 dpi (px / in); eksportowane jako poziom kompresji PNG 3.Nie użyłem GIMP-a w wierszu poleceń (dotyczy: mojego komentarza poniżej).
źródło
convert
. Widziałem tylko część tej odpowiedzi wspominającąconvert
i twoje pytanie podczas czytania komentarza dotyczącego automatyzacji. Dziękuję za odpowiedź w dalszej części tego wątku, który połączyłem z rozwiązaniem, do którego podłączyłem i rozwiązałem inny problem, który miałem.Naprawdę nie miałem dobrego sukcesu z
convert
[aktualizacja maja 2020 r .: właściwie: to prawie nigdy dla mnie nie działa], ale miałem ZNAKOMITY sukcespdftoppm
. Oto kilka przykładów tworzenia obrazów o wysokiej jakości z pliku PDF:[Wytwarza ~ 25 MB wielkości plików na pg] Wyjście nieskompresowanego formatu pliku .tif przy 300 DPI do folderu o nazwie „obrazy”, z nazwami plików pg-1.tif , pg-2.tif , pg-3.tif , itp:
[Wytwarza ~ 1 MB plików na pg] Dane wyjściowe w formacie .jpg przy 300 DPI :
[Produkuje pliki o wielkości ~ 2 MB na pg] Wyjście w formacie .jpg w najwyższej jakości (najmniejszej kompresji) i wciąż przy 300 DPI :
Aby uzyskać więcej wyjaśnień, opcji i przykładów, zobacz moją pełną odpowiedź tutaj:
/ubuntu/150100/extracting-embedded-images-from-a-pdf/1187844#1187844 .
Związane z:
pdf2searchablepdf
] /ubuntu/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/1187881#1187881źródło
W ImageMagick możesz wykonać „supersampling”. Podajesz dużą gęstość, a następnie zmieniasz rozmiar tak bardzo, jak to pożądane dla ostatecznego rozmiaru wyjściowego. Na przykład ze swoim obrazem:
Pobierz obraz, aby zobaczyć w pełnej rozdzielczości do porównania ..
Nie polecam zapisywania do JPG, jeśli spodziewasz się dalszego przetwarzania.
Jeśli chcesz, aby wyjście miało ten sam rozmiar co wejście, zmień rozmiar do odwrotności stosunku gęstości do 72. Na przykład, -gęstość 288 i -rozmiar 25%. 288 = 4 * 72 i 25% = 1/4
Im większa gęstość, tym lepsza jakość wynikowa, ale przetwarzanie potrwa dłużej.
źródło
Jeszcze jedna sugestia: możesz użyć GIMP.
Wystarczy załadować plik PDF do GIMP-> zapisz jako .xcf, a następnie możesz zrobić co chcesz z obrazem.
źródło
Używam icepdf z otwartego źródła java pdf engine. Sprawdź wersję biurową .
Próbowałem zostały również ImageMagick i pdftoppm , zarówno pdftoppm i icepdf ma wysoką rozdzielczość niż ImageMagick.
źródło
Proszę wziąć pod uwagę przed głosowaniem, to rozwiązanie jest dla Gimpa korzystającego z interfejsu graficznego, a nie dla ImageMagick za pomocą wiersza poleceń, ale działało dla mnie idealnie jako alternatywa i dlatego uważam, że muszę się tutaj dzielić.
Wykonaj te proste kroki, aby wyodrębnić obrazy w dowolnym formacie z dokumentów PDF
To wszystko.
mam nadzieję, że to pomoże
źródło
Załączony plik PNG wygląda na niewyraźny. W przypadku, gdy będziesz potrzebował dodatkowego przetwarzania końcowego dla każdego obrazu wygenerowanego jako podgląd PDF, zmniejszysz wydajność swojego rozwiązania.
2JPEG może konwertować plik PDF dołączony do ładnego wyostrzenia JPG i przycinać puste marginesy za jednym razem:
źródło
Użyj tego wiersza poleceń:
Powinno to poprawnie przekonwertować plik zgodnie z prośbą.
źródło
Poniższy skrypt python będzie działał na każdym komputerze Mac (Snow Leopard i nowszym). Można go użyć w wierszu polecenia z kolejnymi plikami PDF jako argumentami, lub można wprowadzić akcję Uruchom skrypt powłoki w Automatorze i wykonać usługę (Szybka akcja w Mojave).
Możesz ustawić rozdzielczość obrazu wyjściowego w skrypcie.
Skrypt i szybkie działanie można pobrać z github.
źródło
Możesz to zrobić w LibreOffice Draw (który jest zwykle preinstalowany w Ubuntu ):
źródło
Użyłem pdf2image . Prosta biblioteka python, która działa jak urok.
Najpierw zainstaluj poppler na maszynie innej niż Linux. Możesz po prostu pobrać zip. Rozpakuj w Program Files i dodaj bin do Machine Path.
Następnie możesz użyć pdf2image w klasie python w następujący sposób:
Nie jestem dobry w Pythonie, ale byłem w stanie zrobić z niego exe. Później możesz użyć exe z parametrem wejściowym i wyjściowym pliku. Użyłem go w języku C # i wszystko działa dobrze.
Jakość obrazu jest dobra. OCR działa dobrze.
źródło
W rzeczywistości jest to dość łatwe dzięki Preview na Macu. Wszystko, co musisz zrobić, to otworzyć plik w podglądzie i zapisać jako plik PNG lub JPEG lub zapisać (lub wyeksportować), ale upewnij się, że używasz co najmniej 300 dpi na dole okna, aby uzyskać obraz wysokiej jakości.
źródło