Pregunta

Quiero que mi aplicación Qt pueda guardar gráficos vectoriales simples en el portapapeles de una manera compatible. En Windows quiero poder pegar los gráficos en Microsoft Word o Powerpoint. En Linux quiero ser compatible con Open Office.

¿Qué formato recomendarías? ¿Qt puede generar EMF de una manera fácil? ¿SVG es una opción?

Actualización:

Mi plan actual es agregar una pieza de código win32 nativo para representar los gráficos en fem en Windows. Este código no estará disponible en Linux.

¿Fue útil?

Solución

La clase QGraphicsView y sus ayudantes asociados pueden renderizar a un metarchivo QT formatee a través de la clase QPicture (para la cual puede escribir un traductor a EMF) , a SVG a través de la clase QSVGGenerator y a postscript / pdf a través de QPrinter . También se puede procesar en formatos de mapa de bits y varios otros objetivos.

AFAIK no tiene una función genérica de 'renderizar a EMF' - tendrías que escribir en algo más como el Metarchivo QT y convertir a EMF. Si solo necesita un subconjunto de las primitivas gráficas, es posible que solo necesite admitir ese subconjunto en el traductor. De lo contrario, podría pasar de SVG, que puede obtener directamente de QT a través de QSVGGenerator.

Otros consejos

Tengo una clase PyQt QPaintEngine que genera EMF aquí: https: / /github.com/jeremysanders/veusz/blob/master/document/emf_export.py . Utiliza la biblioteca pyemf, pero creo que sería bastante fácil portar a C ++. Desafortunadamente, los archivos no son compatibles con OpenOffice ya que OO tiene un soporte de ruta bastante roto en archivos EMF. También convierte el texto en rutas para WYSIWYG.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top