Pergunta

Eu quero meu aplicativo Qt para ser capaz de salvar simples gráficos de vetor para o clipboard de forma compatível. No windows eu quero ser capaz de colar os gráficos em Microsoft Word ou PowerPoint. No Linux eu quero ser compatível com o Office Open.

Que formato que você recomendaria? Pode Qt gerar EMF de uma forma fácil? SVG é uma opção?

Update:

Meu plano atual é a de adicionar um pedaço de código Win32 nativo para renderizar os gráficos para emf no Windows. Este código não estará disponível no linux.

Foi útil?

Solução

O QGraphicsView classe e seus ajudantes associados podem render a um metarquivo QT formato através do QPicture classe (para o qual você poderia escrever um tradutor para EMF) , para SVG através da QSVGGenerator classe e PostScript / pdf através de QPrinter . Ele também pode render a formatos bitmap e vários outros alvos.

AFAIK ele não tem um genérico 'render a EMF' facilidade - você teria que escrever para outra coisa como o QT Metafile e convertido ao EMF. Se você só precisa de um subconjunto dos primitivos gráficos que você pode precisar apenas para apoiar esse subconjunto no tradutor. Caso contrário, você poderia ir de SVG, que você pode obter diretamente do QT através QSVGGenerator.

Outras dicas

Eu tenho uma classe PyQt QPaintEngine geradoras EMF aqui: https: / /github.com/jeremysanders/veusz/blob/master/document/emf_export.py . Ele usa a biblioteca pyemf, mas eu acho que seria bastante fácil para a porta para C ++. Infelizmente os arquivos não são compatíveis com o OpenOffice como OO tem muito quebrado apoio caminho em arquivos EMF. Ele também converte texto em caminhos para WYSIWYG.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top