【问题标题】:Vector graphics clipboard format for QtQt 的矢量图形剪贴板格式
【发布时间】:2010-09-19 04:40:06
【问题描述】:

我希望我的 Qt 应用程序能够以兼容的方式将简单的矢量图形保存到剪贴板。在 Windows 上,我希望能够将图形粘贴到 Microsoft Word 或 Powerpoint 中。在 Linux 上,我希望与 Open Office 兼容。

您会推荐哪种格式? Qt 能否以简单的方式生成 EMF? SVG 是一种选择吗?

更新:

我目前的计划是添加一段本机 win32 代码来将图形渲染到 windows 上的 emf。此代码在 linux 上不可用。

【问题讨论】:

    标签: qt svg ms-office .emf metafile


    【解决方案1】:

    The QGraphicsView 类及其相关的帮助程序可以通过QPicture 类(您可以为其编写 EMF 的翻译器)呈现为 QT 元文件格式,通过QSVGGenerator 类呈现为 SVG,并通过QPrinter。它还可以渲染为位图格式和各种其他目标。

    AFAIK 它没有通用的“渲染到 EMF”工具 - 您必须写入 QT 元文件之类的其他内容并转换为 EMF。如果您只需要图形基元的一个子集,您可能只需要在转换器中支持该子集。否则你可以使用 SVG,你可以通过 QSVGGenerator 直接从 QT 获取。

    【讨论】:

    • 我认为这不是一个简单的解决方案。编写这样一个通用的翻译器需要数周时间。 EMF 规范长达 310 页。直接生成 EMF 会容易得多(只需要一小部分 EMF)。
    【解决方案2】:

    我在这里有一个生成 EMF 的 PyQt QPaintEngine 类:https://github.com/jeremysanders/veusz/blob/master/document/emf_export.py。它使用 pyemf 库,但我认为移植到 C++ 会相当容易。不幸的是,这些文件与 OpenOffice 不兼容,因为 OO 在 EMF 文件中的路径支持非常糟糕。它还将文本转换为所见即所得的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多