La respuesta actualmente aceptada hace el trabajo pero da como resultado una salida que es de mayor tamaño y sufre pérdida de calidad.
No está claro qué quiere decir con "pérdida de calidad". Eso podría significar muchas cosas diferentes. ¿Podría publicar algunas muestras para ilustrar? Quizás elimine la misma sección de las versiones de mala calidad y buena calidad (como PNG para evitar una mayor pérdida de calidad).
Tal vez necesite usar -densitypara hacer la conversión a un dpi más alto:
convert -density 300 file.pdf page_%04d.jpg
(Puede anteponer -units PixelsPerIncho -units
PixelsPerCentimetersi es necesario. Mi copia está predeterminada en ppi).
Actualización: como señaló, gscan2pdf(la forma en que lo está usando) es solo un contenedor para pdfimages(de poppler ). pdfimages
no hace lo mismo que convertcuando se le da un PDF como entrada.
convert toma el PDF, lo renderiza con cierta resolución y usa el mapa de bits resultante como imagen de origen.
pdfimagesbusca en el PDF imágenes de mapa de bits incrustadas y exporta cada una a un archivo. Simplemente ignora cualquier comando de texto o dibujo vectorial en el PDF.
Como resultado, si lo que tiene es un PDF que es solo un contenedor alrededor de una serie de mapas de bits, pdfimageshará un trabajo mucho mejor al extraerlos, ya que le proporciona los datos sin procesar en su tamaño original. Probablemente también desee utilizar la -jopción pdfimages, porque un PDF puede contener datos JPEG sin procesar. Por defecto, pdfimagesconvierte todo a formato PNM, y convertir JPEG> PPM> JPEG es un proceso con pérdida.
Entonces, intenta
pdfimages -j file.pdf page
Usted puede o no puede necesitar seguir que con un converta .jpgpaso (dependiendo de qué formato de mapa de bits pdf estaba usando).
Probé este comando en un PDF que hice a partir de una secuencia de imágenes JPEG. Los archivos JPEG extraídos eran byte por byte idénticos a las imágenes de origen. No se puede obtener una calidad superior a esa.