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 dla pdfimages(z popplera ). pdfimagesnie robi tego samego, convertco w przypadku pliku PDF jako danych wejściowych.
convert pobiera 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 -jopcji pdfimages, ponieważ plik PDF może zawierać surowe dane JPEG. Domyślnie pdfimageskonwertuje wszystko do formatu PNM, a konwersja JPEG> PPM> JPEG jest procesem stratnym.
Więc spróbuj
pdfimages -j file.pdf page
Konieczne 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.