
如何在 C# 中将 XPS 转换为 JPG
XPS 文档格式可让您轻松共享、创建、打印和保存数字文档,但您可能需要安装配套软件。如果您是 .NET 程序员并且可能希望以编程方式将 XPS 文件导出为 JPG/JPEG 格式,本文将解释如何在 C# 中将 XPS 转换为 JPG。
本文将涵盖以下几点:
将 XPS 转换为 JPG 的 C# .NET API
在本文中,我们将使用 Conholdate.Total for .NET 将 XPS 转换为 JPG。该库使您能够创建、编辑和保存现有的以及新的 XPS 文档。因此,您可以 下载 DLL 或使用 NuGet 安装此 XPS 转换 API。
Install-Package Conholdate.Total
如何在 C# 中以编程方式将 XPS 转换为 JPG/JPEG
XPS 转换 API 允许您将 XPS 文件转换为 JPG。
以下是将 XPS 文件转换为 JPG 图像的步骤:
- 为 XPS 文档初始化 Stream 类的对象。
- 通过使用 XPS 流(在上一步中创建)和 XpsLoadOptions 类的对象作为参数来创建 XpsDocument 类的实例。
- 使用必要的参数初始化 JpegSaveOptions 类的对象。
- 创建 ImageDevice 类的实例。
- 通过调用 XpsDocument.Save(Device device, SaveOptions options) 将 JPG 保存在 ImageDevice 对象中。
- 使用 ImageDevice 将 JPG 保存在光盘上(如下面的代码示例所示)。
下面的代码示例展示了如何使用 C# 将 XPS 转换为 JPG:
| string inputFileName = "input.xps"; | |
| //Outut file | |
| string outputFileName = "XPStoImage_out.jpg"; | |
| // Initialize XPS input stream | |
| using (Stream xpsStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) | |
| { | |
| // Load XPS document form the stream | |
| XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions()); | |
| // Initialize options object with necessary parameters. | |
| JpegSaveOptions options = new JpegSaveOptions() | |
| { | |
| SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality, | |
| Resolution = 300, | |
| PageNumbers = new int[] { 1, 2, 6 } | |
| }; | |
| // Create rendering device for image | |
| ImageDevice device = new ImageDevice(); | |
| document.Save(device, options); | |
| // Iterate through document partitions (fixed documents, in XPS terms) | |
| for (int i = 0; i < device.Result.Length; i++) | |
| // Iterate through partition pages | |
| for (int j = 0; j < device.Result[i].Length; j++) | |
| { | |
| // Initialize image output stream | |
| using (Stream imageStream = System.IO.File.Open(Path.GetDirectoryName(outputFileName) + | |
| Path.GetFileNameWithoutExtension(outputFileName) + "_" + (i + 1) + "_" + (j + 1) + | |
| Path.GetExtension(outputFileName), System.IO.FileMode.Create, System.IO.FileAccess.Write)) | |
| // Write image | |
| imageStream.Write(device.Result[i][j], 0, device.Result[i][j].Length); | |
| } | |
| } |
获得免费许可证
您可以获得 免费临时许可证 来测试没有评估限制的 API。
结论
作为本文的总结,我们希望您已了解如何使用 XPS 转换 API 在 C# 中将 XPS 转换为 JPG。您可以访问 文档 来探索 XPS 转换库的其他功能。
问一个问题
您可以在我们的论坛 上让我们知道您的问题或疑问。