如何使用C++创建OpenOffice文档

3

可能是重复问题:
从C ++创建,打开和打印Word文件

您好,

我需要从c ++程序创建一个word文档,我正在使用Windows 2008服务器,因为自动化有时会失败,而且我需要非交互式服务来处理,因为自动化提供交互式服务。我已经实施了自动化,但有时会失败。

有什么方法可以创建OpenOffice / Word文档吗?

您能否向我建议任何链接或教程来完成上述操作。

PS-我了解了几种方法:1.Openoffice SDK 2.OpenXML SDK

如果您使用过上述内容,请告诉我应该使用哪个。

先感谢您的帮助。


3
请检查您链接的上述问题,它涉及办公自动化,嵌入Word文档。我需要通过C++程序创建一个OpenOffice Word文档,可能使用Office Open XML或OpenOffice SDK。 - Greenhorn
2
@In silico - 我正在使用 Windows 2008 服务器,办公自动化有时会失败,而且我需要非交互式服务来处理,因为自动化提供交互式服务。我已经实现了自动化,但有时会失败。 - Greenhorn
1
办公自动化对服务器来说是不安全的。这绝对不是提到的其他问题的重复,关于办公自动化的答案也不适用。 - Samuel Neff
2
@ Paul R、Greg S、MSalters、Bo Persson、Graviton - 我不明白这与 https://dev59.com/2nVC5IYBdhLWcg3w7Vtq 的问题有何重复之处,因为我已经清楚地提到我正在编写服务器程序,而且自动化有时会失败。 - Greenhorn
3
这并非重复问题。Paul R、Greg S、MSalters、Bo Persson和Graviton中没有一个人拥有任何Office编程标签的徽章——很明显关闭它的人不理解这里讨论的技术。建议重新开放该问题。 - Todd Main
显示剩余6条评论
3个回答

7
这里有一个新发布的C库,名为libOPC,与Open XML SDK的目的相同,但可以在Linux/Windows/Mac等所有平台上使用。你可以在这里了解更多信息:libOPC版本0.0.1已发布,并从CodePlex获取代码(务必查看文档页面以获取演示视频)。

2
使用Open Office XML SDK和Open Office XML直接操作是针对Word 2007及以上版本的很好的选择。
如果你针对的用户是Word 2003或更早的版本,那么这可能不是最佳方案。然而,即使这些用户可以安装一个免费的筛选器来能够在Word 2003中打开Word 2007 (.docx)文档。你可以从你的应用程序中链接到此下载。大多数拥有Word 2003或更早版本的人可能已经安装了这个筛选器,因为他们经常会遇到人们共享更新文件的情况。

http://www.microsoft.com/DOWNLOADS/en/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

Open Office XML SDK是一个用于读写.docx和其他Office 2007文件的.NET API。如果您正在使用C++/CLI,那么您可以轻松地使用它,并简化编写.docx文件的过程。

http://www.microsoft.com/downloads/en/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

然而,如果您使用的是没有.NET的纯C++,那么您无法使用SDK。不过这并不是一个巨大的损失。SDK只是对XML文件进行了非常轻微的封装。docx文件只是一个包含许多XML文件的zip文件。在文件之间存在一些奇怪的关系,以及文本存储的位置以及某些内容的位置引用方式与ID不同,这通常被认为是一种非常糟糕的XML实践。但是,这些问题很容易解决,您可以手动创建.docx文件而不会遇到太多麻烦。事实上,创建比阅读要容易得多。
SDK仍然有用,因为它包含一个文件探索工具,可以为现有文件提供图形资源管理器。当您想知道如何创建特定内容时,请在Word 2007中执行操作,保存文件,然后查看文件包含的内容。

1
我建议你看看这个页面,作者在其中解释了他采取的解决方案,用于在没有可用的 MsWord、自动化或第三方库的情况下,在服务器上生成 Word 文档。

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