2012-02-20 16 views
10

Para la implementación de una aplicación de cambio de página basada en Windows, debo ser capaz de convertir una gran cantidad de páginas PDF en JPG de buena calidad, no solo en miniaturas.Conversión de PDF a JPG como calidad de Photoshop - Biblioteca comercial C++/Delphi

El objetivo es lograr la mejor calidad/tamaño de archivo para eso, similar a Photoshops Save for Web.

Actualmente estoy usando Datalogics Adobe PDF Library SDK, que no parece ser capaz de completar esa tarea. Por lo tanto, estoy buscando una biblioteca commcerical alternativa C++ o Delphi que proporcione una buena calidad/tamaño/velocidad.

Después de hacer una búsqueda aquí, noté que la mayoría de las publicaciones son sobre GS & Imagekick, que también he probado, pero no estoy satisfecho con la salida y la velocidad.

El objetivo es importar los PDF con 300dpi y convertirlos con calidad JPG 50, altura de 1500px y un tamaño de salida de 300-500kb.

Si alguien pudiera señalar una buena biblioteca para esa tarea, estaría muy agradecido.

+0

¿Por qué quieres importar el PDF a 300 ppp cuando tu salida es de solo 136 ppp? Importar al mismo tamaño que la salida acelerará bastante las cosas. –

+0

¡Gracias por la pista! Esto debe haberse quedado atascado como un proceso en mi mente, ya que normalmente importaba todos los PDF en 300 ppp en PS, lo que reflejaba el hecho de que volví a cambiar el tamaño en un momento posterior ...! – idplanter

Respuesta

1

Siempre recomiendo Graphics32 para todas sus necesidades de manipulación de imágenes; tiene varios resamplers para elegir. Sin embargo, no creo que pueda leer archivos PDF como imágenes. Pero si puede generar la imagen grande usted mismo, puede ser una buena opción.

+0

Gracias, pero como el objetivo es manejar una conversión de más de 100 páginas en 2-3 minutos, me gustaría mantener las operaciones del proceso al mínimo. – idplanter

+0

Ya veo. Volver a muestrear una imagen debería ser un proceso bastante ligero en comparación con la generación real de las imágenes de origen, pensó. –

0

Eche un vistazo a DynaPDF. Sé que es bastante caro, pero puedes probar el paquete de inicio.

P.S.:antes de comprar un producto, asegúrese de que se ajuste a sus necesidades.

1

Atalasoft DotImage (con el complemento de rasterizador de PDF) lo hará (yo trabajo en tecnologías de PDF allí). Trabajarías en el lenguaje C# (u otro .NET):

ConvertToJpegs(string outfileStem, Stream pdf) 
{ 
    JpegEncoder encoder = new JpegEncoder(); 
    encoder.Quality = 50; 

    int page = 1; 
    PdfImageSource source = new PdfImageSource(pdf); 
    source.Resolution = 300; // sets the rendering resolution to 200 dpi 
    // larger numbers means better resolution in the image, but will cost in 
    // terms of output file size - as resolution increases, memory used increases 
    // as a function of the square of the resolution, whereas compression only 
    // saves maybe a flat 30% of the total image size, depending on the Quality 
    // setting on the encoder. 

    while (source.HasMoreImages()) { 
     AtalaImage image = source.AcquireNext(); 
     // this image will be in either 8 bit gray or 24 bit rgb depending 
     // on the page contents. 

     try { 
      string path = String.Format("{0}{1}.jpg", outFileStem, page++); 
      // if you need to resample the image, this is the place to do it 
      image.Save(path, encoder, null); 
     } 
     finally { 
      source.Release(image); 
     } 
    } 
} 
+0

Gracias, pero .net está fuera de cuestión ya que la aplicación donde se va a incluir no está escrita en .net. – idplanter