La risposta attualmente accettata fa il lavoro, ma si traduce in un output di dimensioni maggiori e che soffre di perdita di qualità.
Non è chiaro cosa intendi per "perdita di qualità". Ciò potrebbe significare molte cose diverse. Potresti pubblicare alcuni esempi per illustrare? Forse tagliare la stessa sezione dalla scarsa qualità e versioni di buona qualità (come un PNG per evitare ulteriori perdite di qualità).
Forse devi usare -densityper fare la conversione con un dpi più alto:
convert -density 300 file.pdf page_%04d.jpg
(È possibile anteporre -units PixelsPerIncho, -units
PixelsPerCentimeterse necessario. La mia copia predefinita è ppi.)
Aggiornamento: Come hai sottolineato, gscan2pdf(il modo in cui lo stai usando) è solo un wrapper per pdfimages(da poppler ). pdfimages
non fa la stessa cosa che convertsuccede quando viene dato un PDF come input.
convert prende il PDF, lo rende ad una certa risoluzione e usa l'immagine bitmap risultante come immagine sorgente.
pdfimagescerca nel PDF le immagini bitmap incorporate ed esporta ognuna in un file. Ignora semplicemente qualsiasi comando di testo o disegno vettoriale nel PDF.
Di conseguenza, se quello che hai è un PDF che è solo un wrapper attorno a una serie di bitmap, pdfimagesfarà un lavoro molto migliore di estrarli, perché ti dà i dati grezzi alla sua dimensione originale. Probabilmente vuoi anche usare l' -jopzione pdfimages, perché un PDF può contenere dati JPEG non elaborati. Per impostazione predefinita, pdfimagesconverte tutto in formato PNM e la conversione di JPEG> PPM> JPEG è un processo con perdita di dati.
Allora prova
pdfimages -j file.pdf page
Si può o non essere necessario seguire che con un converta .jpgun passo (a seconda di cosa formato bitmap il PDF stava usando).
Ho provato questo comando su un PDF creato da una sequenza di immagini JPEG. I JPEG estratti erano byte per byte identici alle immagini di origine. Non puoi ottenere una qualità superiore a quella.