用C/C++应用程序编写*.doc或*.rtf文件

4

如何使用C或C ++编写/生成*.doc文件?是否有(开源/跨平台)库可以做到这一点?如果不可能,是否可以编写*.odt文件,然后将其转换为*.doc文件?谢谢!

编辑:Anders Abel评论说*.rtf文件类型是一个选项,因此对此的任何建议也被接受。


请注意,".doc" 是一个相当不一致的命名方案。 "" 是一个通配符,表示“扩展到任何文件名”。通过名称(“MSWord文档”)引用文件类型是最清晰的,如果您想通过扩展名缩写,则应使用“.doc”而不是“* .doc”。 - Tomas
1
@Tomas:我说的是*.doc文件,而不是.doc扩展名。一个文件必须有一个名称,*. - user197967
5个回答

3

Joel有一篇关于这个话题的有趣文章:http://www.joelonsoftware.com/items/2008/02/19.html

基本上,他建议使用以下两种方法之一:

  1. 使用COM接口调用MS Word来创建文档。
  2. 生成另一种MS Word可以加载的格式,例如RTF。RTF的优点在于它是一种文本格式。因此,您可以生成一个带有占位符的模板文档,然后在想要生成文档时进行替换操作。

2

可以写入简单的文本格式的HTML文件,将文件扩展名选择为DOC。这样MS Word就能正确地打开它。


我该如何编写HTML并在C中指定扩展名? - Talha Ahmad Khan

2
  1. 可以使用带有对象接口的Microsoft Word Interop。需要安装Word。
  2. 对于简单的事情,可以使用rtf。对于复杂的事情,rtf通常失败或变得麻烦。
  3. 考虑使用docx。微软发布了与docx一起工作的工具包。
  4. Doc是开放的,但规范是为外星人编写的。你可以尝试理解它。

1

你可以使用Word COM。

这里有一个C++的例子,但它看起来有点过时,而且我不确定它有多完整。我通常使用C#,在那里很容易只需添加对Microsoft.Office.Word Interop的引用。


0

.doc 格式通常是不开放的,你可能已经注意到了。一个更简单的解决方法是写一个 .rtf 文件,在 MS Word 中可以很好地打开。.rtf 格式是基于文本的,并且公开记录。只要内容相对简单,编写 .rtf 就很简单。


.doc现在是一种开放的文档类型。但是您没有提供关于.rtf的示例或建议。 - user197967

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接