65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 OpenOffice Writer 从 C# 打印文档

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (18投票s)

2008年3月4日

BSD

2分钟阅读

viewsIcon

128288

downloadIcon

6821

基于 OpenOffice 套件的简单打印解决方案。

引言

在 C# 中打印文档,您有很多选择。但我发现使用 Open Office 的这个解决方案非常简洁、优雅且易于使用。

OpenOffice 是一款免费的办公套件。您可以从互联网上下载并免费使用它。在本文中,我将向您展示如何使用它来加载、修改和打印 C# 程序中的文本文档。

背景

首先,您应该知道 OpenOffice 文档是一个压缩文件。您可以尝试将 sample.odt 文件(此文件包含在我的示例的 bin/Debug 目录中)重命名为 sample.zip。现在您将能够解压缩该文件并检查其内容。压缩内容中最有趣的文件是 content.xml 文件。这是一个简单的 XML 文本文件。您可以提取它,修改并写回 sample.zip。如果您将 sample.zip 重命名回 sample.odt,您应该能够再次在 OpenOffice 中打开修改后的文档。

我们将在源代码中执行完全相同的步骤。

Using the Code

所有用于操作 OpenOffice 文档文本文件的操作都在名为 Odt 的类中进行,该类代表 Open Document Text(开放文档文本)。

构造函数接受要打开的文档的文件名。它使用 SharpZipLib 提取压缩内容,并将 content.xml 读取到 XmlDocument 类中。然后扫描 XmlDocument 以查找所有输入字段,并将这些字段放置在一个集合中,允许修改字段文本。

Odt doc = Odt("c:\\test.odt");
doc.Inputs["address"] = "My address";

您可以根据需要修改这些字段。然后可以保存生成的文档,在 OpenOffice Writer 中打开或在您的默认打印机上打印。

doc.Save("c:\\test_modified.odt");
doc.OpenInOo();
doc.Print();

如果出现问题,您应该检查是否已安装 OpenOffice。在 Odt.cs 中硬编码了 OpenOffice 的搜索路径,您可能需要通过 static 变量对其进行更改以适应您的需求。

Odt.OoExe = "path to your soffice.exe";>   

附带的示例程序演示了使用 Odt 类有多么容易。它显示文档中的所有输入字段,并具有用于保存、打开和打印修改后的文档的按钮。

odt_printing3.png

谢谢

希望您喜欢阅读这篇文章。下次再见。

更新

我已经添加了对电子表格文档的支持。您可以在 这里 获取它。

© . All rights reserved.