質問

Qtアプリケーションで、単純なベクターグラフィックスをクリップボードに互換性のある方法で保存できるようにします。 Windowsでは、グラフィックをMicrosoft WordまたはPowerPointに貼り付けることができます。 Linuxでは、Open Officeとの互換性が必要です。

どの形式をお勧めしますか? QtはEMFを簡単に生成できますか? SVGはオプションですか?

更新:

私の現在の計画は、Windowsでグラフィックをemfにレンダリングするためのネイティブwin32コードを追加することです。このコードはLinuxでは使用できません。

役に立ちましたか?

解決

QGraphicsView クラスとその関連ヘルパーはQTメタファイルにレンダリングできます QPicture クラス(EMFへのトランスレーターを作成できるクラス)でフォーマットします。 、 QSVGGenerator クラスを介してSVGに、 QPrinter 。また、ビットマップ形式やその他のさまざまなターゲットにレンダリングできます。

AFAIKには汎用の「EMFにレンダリング」機能はありません。QTメタファイルのような他の何かに書き込み、EMFに変換する必要があります。グラフィックスプリミティブのサブセットのみが必要な場合は、トランスレータでそのサブセットのみをサポートする必要があります。それ以外の場合は、QVGからQSVGGeneratorを介して直接取得できるSVGから移動できます。

他のヒント

EMFを生成するPyQt QPaintEngineクラスがあります: https:/ /github.com/jeremysanders/veusz/blob/master/document/emf_export.py 。 pyemfライブラリを使用しますが、C ++への移植はかなり簡単だと思います。残念ながら、OOはEMFファイルでのパスのサポートがかなり壊れているため、ファイルはOpenOfficeと互換性がありません。また、テキストをWYSIWYGのパスに変換します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top