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 -density
para hacer la conversión a un dpi más alto:
convert -density 300 file.pdf page_%04d.jpg
(Puede anteponer -units PixelsPerInch
o -units
PixelsPerCentimeter
si 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 convert
cuando 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.
pdfimages
busca 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, pdfimages
hará 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 -j
opción pdfimages
, porque un PDF puede contener datos JPEG sin procesar. Por defecto, pdfimages
convierte 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 convert
a .jpg
paso (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.