Domanda

Voglio che la mia applicazione Qt sia in grado di salvare negli appunti una grafica vettoriale semplice in modo compatibile. Su Windows voglio essere in grado di incollare la grafica in Microsoft Word o Powerpoint. Su Linux voglio essere compatibile con Open Office.

Quale formato consiglieresti? Qt può generare EMF in modo semplice? SVG è un'opzione?

Aggiornamento:

Il mio piano attuale è quello di aggiungere un pezzo di codice nativo win32 per renderizzare la grafica in emf su Windows. Questo codice non sarà disponibile su Linux.

È stato utile?

Soluzione

La classe QGraphicsView e i suoi helper associati possono eseguire il rendering in un metafile QT formatta attraverso la QPicture (per la quale puoi scrivere un traduttore in EMF) , a SVG attraverso la QSVGGenerator e da postscript / pdf a QPrinter . Può anche eseguire il rendering in formati bitmap e vari altri target.

AFAIK non ha una funzione generica di "rendering in EMF" - dovresti scrivere in qualcos'altro come il Metafile QT e convertirlo in EMF. Se è necessario solo un sottoinsieme delle primitive grafiche, potrebbe essere necessario supportare tale sottoinsieme nel traduttore. Altrimenti potresti passare da SVG, che puoi ottenere direttamente da QT tramite QSVGGenerator.

Altri suggerimenti

Ho una classe PyQt QPaintEngine che genera EMF qui: https: / /github.com/jeremysanders/veusz/blob/master/document/emf_export.py. Utilizza la libreria pyemf, ma penso che sarebbe abbastanza facile portarlo su C ++. Sfortunatamente i file non sono compatibili con OpenOffice in quanto OO ha un supporto per il percorso piuttosto rotto nei file EMF. Converte anche il testo in percorsi per WYSIWYG.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top