Вопрос

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

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

Обновлять:

Мой текущий план — добавить фрагмент собственного кода Win32 для рендеринга графики в emf в Windows.Этот код не будет доступен в Linux.

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top