Формат буфера обмена векторной графики для Qt - PullRequest
7 голосов
/ 25 октября 2008

Я хочу, чтобы мое приложение Qt могло совместимым образом сохранять простые векторные графики в буфер обмена. В Windows я хочу иметь возможность вставить графику в Microsoft Word или Powerpoint. В Linux я хочу быть совместимым с Open Office.

Какой формат вы бы порекомендовали? Может ли Qt генерировать ЭДС простым способом? SVG это вариант?

Обновление:

Мой текущий план - добавить часть собственного кода win32 для визуализации графики в emf на окнах. Этот код не будет доступен в Linux.

Ответы [ 2 ]

4 голосов
/ 27 октября 2008

Класс QGraphicsView и связанные с ним помощники могут выполнять рендеринг в формат метафайла QT через класс QPicture (для которого вы можете написать переводчик в EMF), в SVG через QSVGGenerator class и to postscript / pdf через QPrinter . Он также может отображать в растровые форматы и различные другие цели.

AFAIK, у него нет универсального средства «рендеринга в EMF» - вам придется записывать что-то еще, например, метафайл QT, и конвертировать в EMF. Если вам нужен только поднабор графических примитивов, вам может понадобиться только поддержка этого подмножества в переводчике. В противном случае вы можете перейти из SVG, который вы можете получить напрямую из QT через QSVGGenerator.

3 голосов
/ 29 июня 2011

У меня есть класс PyQt QPaintEngine, генерирующий EMF: https://github.com/jeremysanders/veusz/blob/master/document/emf_export.py. Он использует библиотеку pyemf, но я думаю, что было бы довольно легко перенести ее на C ++. К сожалению, эти файлы не совместимы с OpenOffice, так как в OO есть поддержка разорванных путей в файлах EMF. Он также преобразует текст в пути для WYSIWYG.

...