2012-05-12 37 views
9

Estoy creando una herramienta para convertir pdf en svg. Estos pdf contienen datos gráficos, que incluyen grandes mapas de bits a 300 ppp y un grupo de vectores también. Buscando en here on stackoverflow, encontré pdf2svg, que funciona genial, y los datos de vectores son perfectos. Pero parece que los bitmaps se están reduciendo a 72 ppp. Las dimensiones siguen siendo 8x10 en pulgadas, pero se puede decir que el dpi no es correcto cuando se acerca. Suave tiene sentido de que los valores predeterminados supondrían 72 ppp, pero necesito las imágenes de mapa de bits de resolución completa.convertir pdf con 300dpi mapas de bits a svg

pdf2svg usa poppler y cairo para realizar la conversión. He buscado en el código, y veo dónde está creando una página poppler y una superficie de cairo, y he visto en el documentation que una página poppler tiene un concepto de "escala" que parece relevante, pero puedo " Traté de averiguar dónde enchufarlo. Intenté (experimentalmente) codificar el ancho y el ancho pasados ​​a cairo_svg_surface_create a los valores correctos, pero hizo que las dimensiones aplicadas a toda la svg fueran más grandes, sin afectar el mapa de bits incrustado.

poppler_page_get_size (page, &width, &height); 

// Open the SVG file 
surface = cairo_svg_surface_create(svgFilename, width, height); 
drawcontext = cairo_create(surface); 

// Render the PDF file into the SVG file 
poppler_page_render(page, drawcontext); 
cairo_show_page(drawcontext); 

No creo que lo que estoy tratando de hacer es muy esotérica, así que estoy esperando a alguien que tenga experiencia con las bibliotecas verá más mi error de inmediato. Cualquier ayuda, por supuesto, sería inmensamente apreciada.

+1

Gran pregunta, espero que se obtiene una buena respuesta. – jimw

Respuesta

0

¿Puede ayudar cairo_surface_set_fallback_resolution()? (No, ni siquiera estoy seguro de esto yo mismo)