2012-05-12 14 views
9

Sto creando uno strumento per convertire i pdf in svg. Questi pdf contengono dati grafici, inclusi bitmap di grandi dimensioni a 300 dpi e un mucchio di vettori. Girando attorno allo here on stackoverflow, ho trovato pdf2svg, che funziona alla grande - come un fascino, e i dati vettoriali sono perfetti. Ma sembra che le bitmap vengano ridimensionate a 72 dpi. Le dimensioni sono ancora di 8x10 pollici, ma si può dire che il dpi non è giusto quando si esegue lo zoom avanti. Soft di senso ha che i valori predefiniti presumerebbero 72 dpi, ma ho bisogno delle immagini bitmap a piena risoluzione.convert pdf con 300dpi bitmap in SVG

pdf2svg utilizza poppler e cairo per effettuare la conversione. Ho curiosato nel codice, e vedo dove è la creazione di una pagina di poppler e una superficie di cairo, e ho visto in documentation che una pagina poppler ha un concetto di "scala" che sembra rilevante, ma posso' t capire dove inserire la spina. ho provato (sperimentalmente) hardcoding l'altezza e la larghezza passato in cairo_svg_surface_create ai valori corretti, ma reso le quote applicate a tutta SVG grande, senza influenzare il bitmap incorporata.

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); 

Non credo che quello che sto cercando di fare è molto esoterica, quindi spero che qualcuno che ha esperienza con le librerie vedrà il mio errore subito. Qualsiasi aiuto, ovviamente, sarebbe immensamente apprezzato.

+1

Grande questione, mi auguro che si ottiene una buona risposta. – jimw

risposta

0

Cairo_surface_set_fallback_resolution() forse aiuta? (No, non ne sono nemmeno sicuro)