Saltar al contenido

Convierta PDF a JPG o PNG usando C# o línea de comandos

Contamos con tu ayuda para extender nuestros tutoriales referente a las ciencias informáticas.

Solución:

Él convert herramienta (o magick desde la versión 7) del paquete ImageMagick puede hacer esto (y mucho más).

En su forma más simple, es simplemente

convert myfile.pdf myfile.png

o

magick myfile.pdf myfile.png

Esta es una pregunta antigua, pero como falta una respuesta de GhostScript y no hay ninguna pista para multi página Exportación de PDF pero creo que agregar otra variante está bien.

gs -dBATCH -dNOPAUSE -sDEVICE=pnggray -r300 -dUseCropBox -sOutputFile=item-%03d.png examples.pdf

Descripción de las opciones:

  • dBatch y dNOPAUSE simplemente dígale a gs que se ejecute en modo por lotes, lo que significa que más o menos no hará ninguna pregunta. Esos parámetros también son importantes si desea ejecutar el comando en un script bash.
  • sDEVICE le dice a gs qué formato de salida producir. pnggray es para escala de grises, png16m para color RGB de 24 bits. Si insiste en crear Jpegs, use -sDEVICE=jpeg para producir archivos JPEG en color. Utilizar el -dJPEGQ=N (N es un número entero de 0 a 100, predeterminado 75) parámetro para controlar la calidad de Jpgeg.
  • -r300 establece la resolución de escaneado en 300 ppp. Si prefiere tamaños de salida más pequeños, use -r70 o si ingresa pdf tiene un uso de alta resolución
    -r600. Si tiene un PDF con 300 ppp y especifica -r600, sus imágenes se ampliarán.
  • -dUseCropBox dígale a gs que use un CropBox si está definido. Un CropBox especifica un área de interés en una página. Si tiene un pdf con un gran margen blanco y no desea este margen en su salida, esta opción podría ayudar.
  • -sOutputFile define los nombres del archivo de salida. La parte %03d.png le dice a gs que incluya un contador para varios archivos. Un pdf de dos páginas daría como resultado dos archivos llamados item-001.png y item-002.png.
  • El último (parámetro sin nombre es el archivo de entrada).

Disponibilidad:
El comando convert de imagemagick usa el comando gs internamente. Si puede convertir un pdf con imagemagick, ya tiene gs instalado.

Instalar script fantasma:

RHEL:

yum install ghostscript

LES:

zypper install ghostscript

Debian/Ubuntu:

sudo apt-get install ghostscript

Ventanas:

Puede encontrar archivos binarios de Windows en http://www.ghostscript.com/download/gsdnld.html

La pregunta es bastante antigua, pero recientemente encontré esta solución que funcionó para mí: https://github.com/jhabjan/Ghostscript.NET. También está disponible como descarga nuget.

Aquí está el código de muestra para convertir todas las páginas pdf en imágenes png:

    private static void Test()
    
        var localGhostscriptDll = Path.Combine(Environment.CurrentDirectory, "gsdll64.dll");
        var localDllInfo = new GhostscriptVersionInfo(localGhostscriptDll);

        int desired_x_dpi = 96;
        int desired_y_dpi = 96;

        string inputPdfPath = "test.pdf";

        string outputPath = Environment.CurrentDirectory;

        GhostscriptRasterizer _rasterizer = new GhostscriptRasterizer();

        _rasterizer.Open(inputPdfPath, localDllInfo, false);

        for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)
        
            string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".png");

            Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
            img.Save(pageFilePath, ImageFormat.Png);
        

        _rasterizer.Close();
    

Aquí tienes las comentarios y valoraciones

Si te gusta la informática, tienes el poder dejar un post acerca de qué le añadirías a esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *