
XPS 和 OXPS 文件由于其分辨率独立性而经常用于打印。但是,有时我们需要将 XPS 转换为 PDF 或将 OXPS 转换为 PDF。 Aspose.Page for .NET API 可让您以高保真和快速渲染执行这些转换。让我们探索以下用例:
使用 C# 以编程方式将 XPS 转换为 PDF
使用 Aspose.Page for .NET API 将 XPS 转换为 PDF 非常简单。我们将学习以下方法来执行 XPS 文件转换:
i) 在 C# 中将 XPS 的特定页面转换为 PDF
要将 XPS 文档的选定页面转换为 PDF,请按照以下步骤操作:
- 初始化 XPS 输入流
- 从流中加载 XPS 文档
- 初始化 PdfSaveOptions 对象
- 指定要转换的页码
- 将文档另存为 PDF 文件
下面的代码片段遵循这些步骤,并展示了如何使用 C# 将 XPS 转换为 PDF:
// 初始化 PDF 输出流
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// 初始化 XPS 输入流
//使用 (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
// 从流中加载 XPS 文档
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// 或直接从文件加载 XPS 文档。那时不需要 xpsStream。
// XpsDocument 文档 = new XpsDocument(inputFileName, new XpsLoadOptions());
// 使用必要的参数初始化选项对象。
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
JpegQualityLevel = 100,
ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
PageNumbers = new int[] {1, 3}
};
// 为 PDF 格式创建渲染设备
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);
document.Save(device, options);
}
此代码片段使用包含多个页面的 XPS 文档作为输入文件。然而,只有页码 1 和 3 被转换为代码片段中指定的 PDF。以下屏幕截图显示了呈现为 PDF 文档的 2 页:

ii) 在 C# 中将 XPS 的所有页面转换为 PDF
您可以将整个 XPS 文件转换为 PDF。按照以下步骤操作,XPS 文件的所有页面都将转换为 PDF 文件:
- 加载输入 XPS 文件
- 使用必要的参数初始化选项对象
- 创建 PdfDevice 的实例以进行渲染
- 将 XPS 导出为 PDF 文档
下面的代码片段基于所有这些步骤,显示了如何使用 C# 语言将 XPS 文件转换为 PDF:
// 初始化 PDF 输出流
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// 初始化 XPS 输入流
//使用 (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
// 从流中加载 XPS 文档
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// 或直接从文件加载 XPS 文档。那时不需要 xpsStream。
// XpsDocument 文档 = new XpsDocument(inputFileName, new XpsLoadOptions());
// 使用必要的参数初始化选项对象。
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
JpegQualityLevel = 100,
ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// 为 PDF 格式创建渲染设备
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);
document.Save(device, options);
}
使用 C# 将 OXPS 转换为 PDF
OXPS 格式是 XPS 文件格式的更新和高级形式。但是,某些旧操作系统不支持此类文件。 Aspose.Page for .NET API 也能够转换 OXPS 文件。让我们继续学习以下使用场景:
i) 在 C# 中将一些 OXPS 页面转换为 PDF
一个 OXPS 文件可能包含许多页面,并且可以通过以下步骤将任意数量的页面转换为 PDF:
- 加载 OXPS 文件
- 声明 PdfSaveOptions 对象
- 设置要转换的页码
- 将 OXPS 渲染为 PDF
以下代码片段显示了如何使用 C# 将 OXPS 转换为 PDF。如代码片段中所述,它将 OXPS 文件的第一页转换为 PDF。
// 初始化 PDF 输出流
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// 初始化 OXPS 输入流
//使用 (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
// 从流中加载 OXPS 文档
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// 或直接从文件加载 XPS 文档。那时不需要 xpsStream。
// XpsDocument 文档 = new XpsDocument(inputFileName, new XpsLoadOptions());
// 使用必要的参数初始化选项对象。
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
JpegQualityLevel = 100,
ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
PageNumbers = new int[] {1}
};
// 为 PDF 格式创建渲染设备
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);
document.Save(device, options);
}
ii) 在 C# 中将 OXPS 的所有页面转换为 PDF
转换 OXPS 的所有页面很简单,并且与我们上面考虑的示例相关。让我们按照以下步骤将 OXPS 文件的所有页面转换为单个 PDF 文档:
- 初始化 OXPS 输入流
- 从流中加载 OXPS 文件
- 实例化 PdfSaveOptions 类的对象
- 将 OXPS 导出为 PDF 文件
下面的代码片段一一遵循这些步骤,并使用 C# 将 OXPS 转换为 PDF:
// 初始化 PDF 输出流
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// 初始化 OXPS 输入流
//使用 (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
// 从流中加载 OXPS 文档
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// 或直接从文件加载 OXPS 文档。那时不需要 xpsStream。
// XpsDocument 文档 = new XpsDocument(inputFileName, new XpsLoadOptions());
// 使用必要的参数初始化选项对象。
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
JpegQualityLevel = 100,
ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// 为 PDF 格式创建渲染设备
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);
document.Save(device, options);
}
结论
在本文中,您学习了如何使用 C# 以编程方式将 XPS 转换为 PDF 和 OXPS 转换为 PDF。您已经通过 C# 代码示例和屏幕截图了解了高保真、高效、快速的文件格式转换。您可以借助 API 文档 和 API 参考 进一步探索 Aspose.Page for .NET API。此外,请随时在 免费支持论坛 提出任何问题。