2012-05-12 16 views
9

Ich erstelle ein Werkzeug zum Konvertieren von PDF-Dateien in Svg. Diese PDFs enthalten grafische Daten, einschließlich großer Bitmaps mit 300 dpi und einer Reihe von Vektoren. Stochern um here on stackoverflow, habe ich gefunden pdf2svg, was toll - funktioniert wie ein Charme, und die Vektordaten ist perfekt. Aber es sieht so aus, als würden die Bitmaps auf 72 dpi herunterskaliert werden. Die Abmessungen sind immer noch 8x10 in Zoll, aber Sie können feststellen, dass die dpi nicht richtig ist, wenn Sie hineinzoomen. Soft von macht Sinn, dass die Standardwerte 72 dpi vermuten würden, aber ich brauche die Bitmap-Bilder mit voller Auflösung.konvertieren pdf mit 300dpi bitmaps zu svg

pdf2svg verwendet poppler und cairo, um die Konvertierung durchzuführen. Ich habe im Code herumgepickt, und ich sehe, wo es eine Poppler-Seite und eine Kairo-Oberfläche erzeugt, und ich habe in der documentation gesehen, dass eine Poppler-Seite ein Konzept von "Scale" hat, das relevant erscheint, aber ich kann ' Ich habe (experimentell) versucht, die Höhe und Breite, die in cairo_svg_surface_create übergeben wurde, auf die korrekten Werte zu schreiben, aber es machte die Dimensionen, die auf die ganze SVG angewendet wurden, größer, ohne die eingebettete Bitmap zu beeinflussen.

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

glaube ich nicht, was ich versuche zu tun, sehr geheim, so dass ich hoffe, dass jemand, der Erfahrung mit den Bibliotheken hat, wird sofort meine Fehler sehen. Jede Hilfe würde natürlich sehr geschätzt werden.

+1

Gute Frage, ich hoffe, dass Sie eine gute Antwort bekommen. – jimw

Antwort

0

Kann cairo_surface_set_fallback_resolution() vielleicht helfen? (Nein, ich bin mir selbst nicht sicher)