2

我正在使用 Qt 编写程序。我希望它输出到 .doc 以保留格式,但 Qt 支持的只是纯文本、ODF 和 HTML 格式。ODF 和 HTML 将保留格式,但我必须将其复制并粘贴到 .doc 文件中。

我希望能够保存 .doc 文件而不必担心这样做。我用谷歌搜索了很多次,但我还没有找到解决方案。

4

4 回答 4

1

创建有效 .doc 文件的唯一方法是使用 Microsoft Office。可以使用 OLE 自动化从您的程序中完成(更多关于该问题的信息 - 为什么 Microsoft Office 文件格式如此复杂?(以及一些解决方法))。

Qt 提供了用于处理 COM 对象的 ActiveQt 框架。因此,您可以使用其 COM 接口加载 Word 并将 .html 转换为 .doc。当然,必须安装 MS Office。

于 2010-02-07T12:44:12.287 回答
0

当您说“.doc”格式时,我假设您指的是 Microsoft Word 使用的“Word 97-2003 文档”格式。Microsoft Office 可以很好地打开 .html 文件,所以你可以走这条路。如果在运行程序的某台计算机上安装了 Word,则可以将数据复制到剪贴板并使用自动化让 Word 将其粘贴并以 .doc 格式保存。

您具体使用什么格式?

于 2010-02-04T02:58:36.083 回答
0

正如您所说,QTextDocumentWriter仅支持纯文本、ODF 和 HTML 格式。

如果您只需要在 Windows 上阅读您的文档,您可以生成 PDF 而不是尝试生成 .doc:

 QPrinter printer;
 QTextDocument document;

 //TODO: Put stuff to print in your 'document'

 printer.setOutputFormat(QPrinter::PdfFormat);
 printer.setOutputFileName("/foobar/nonwritable.pdf");

 document.print( printer );

另一种可能的解决方案是,如果您必须在 Word 中修改文档,请尝试使用Word 2003 的 ODF 插件来打开您的 ODF 文件。

于 2010-02-05T03:20:07.577 回答
0

还有另一种选择......实际上你可以称之为黑客,但它是一种简单的方法,因为我自己发现它。

  1. 创建一个看起来像您的文档的 HTML 模板
  2. 使用 Microsoft Word 打开 HTML 模板
  3. 调整模板(有些东西可能调整不当)
  4. 在您想写一些数据/文本的地方,放置某种标记,例如#offaddress#
  5. 保存文档
  6. 将文档重命名为 HTML
  7. 打开文档。该文档将包含大量 Microsoft Word 文档代码和内容;不用担心。
  8. 复制整个代码并将其粘贴到您的 Qt 中
  9. 将输出设置为您的 Qt 为 .doc 文件
  10. 用您的内容替换您的关键字 (#offaddress#)
  11. 将内容保存到扩展名为 .doc 的文件

瞧;你有你的 .doc 文件。

于 2010-10-05T15:38:34.647 回答