Conversor de PDF a imagen

Necesito un programa/sdk/software para convertir archivos pdf a imágenes. Necesito las siguientes características en ese convertidor:

Compruebe si el archivo pdf está en color o en blanco y negro. Si el archivo pdf es BW, una opción para convertir el archivo pdf a imágenes .tiff. Si el archivo pdf está coloreado, una opción para convertir el archivo pdf a imágenes .png. Esta conversión debe ser rápida y, si es posible, debe tener la opción de subprocesos múltiples. Puede ser una herramienta gratuita (código abierto) o una solución paga que puedo integrar con Visual Studio 2010 C#. Lo que significa que una interfaz de línea de comandos funcionaría.

Respuestas (2)

Para comprobar si el PDF está en color o en blanco y negro, puede utilizar Ghostscript (gratuito, de código abierto, multiplataforma):

Línea de comando de ejemplo:

gs -o - -sDEVICE=inkcov /path/to/your.pdf

Salida de ejemplo:

Page 1
0.00000  0.00000  0.00000  0.02230 CMYK OK
Page 2
0.02360  0.02360  0.02360  0.02360 CMYK OK
Page 3
0.02525  0.02525  0.02525  0.00000 CMYK OK
Page 4
0.00000  0.00000  0.00000  0.01982 CMYK OK

Puede ver aquí que la página 4 no usa color, mientras que las páginas 1+2+3 sí. Este caso es particularmente 'desagradable' para las personas que quieren ahorrar en tinta de color: debido a que todos los valores C, M, Y (y K) son exactamente iguales para cada una de las páginas 1-3, posiblemente podrían parecerle al ser humano ojo, no como páginas en color, sino como escala de grises ("rica") de todos modos (si cada píxel se mezcla con estos valores de color).

Otras ideas: ¿Cómo sé si las páginas de un PDF son en color o en blanco y negro?


Para convertir un PDF a TIFF, puede usar GhostScript (gratuito, de código abierto, multiplataforma):

en Windows:

gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf

en *nix:

gs -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf

Otras ideas: La mejor manera de convertir archivos pdf a archivos tiff


Para convertir un PDF a PNG, puede usar ImageMagick (gratis, de código abierto, multiplataforma):

convert foo.pdf pages-%03d.png

Si está interesado en un SDK comercial para este tipo de conversión y manipulación de imágenes, puede intentar usar LEADTOOLS Imaging SDK . Tenga en cuenta que soy un empleado de esta herramienta

Puede usar nuestro ImageColorTypeCommand para verificar si la imagen es en blanco y negro, en escala de grises o en color. Puede implementar esto en C# usando lo siguiente:

using (RasterCodecs codecs = new RasterCodecs())
{
   RasterImage image = codecs.Load(@"path to file");
   ImageColorTypeCommand command = new ImageColorTypeCommand();
   command.Run(image);
   Console.WriteLine("Color Type = " + command.ColorType.ToString() + "\n" + "Confidence = " + command.Confidence.ToString());
}

Una vez que sepa qué es ImageColorType, simplemente puede guardar el archivo especificando el formato de salida de esta manera:

if(command.ColorType == ImageColorType.BlackAndWhite)
{
   codecs.Save(image, @"Save path for output", RasterImageFormat.Tif, 0);
}
else
{
   codecs.Save(image, @"Save path for output", RasterImageFormat.Png, 0);
}

Puede encontrar un poco más de información sobre las clases utilizadas en el código aquí:

RasterCodecs

Imagen de la trama