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.
Grande questione, mi auguro che si ottiene una buona risposta. – jimw