C# 将 XPS 转换为 PDF |在 C# 中将 OXPS 转换为 PDF

XPS(Open XML 纸张规范)OXPS (OpenXPS) 表示固定页面文档。 XPS 文档与 PDF 文档类似,都保留原始文档的布局和格式。但是,XPS 文档不像 PDF 文档那样得到广泛支持。 PDF(便携式文档格式)文档在各种平台和设备上得到广泛支持。在本文中,我们将向您展示如何使用 C# 将 XPS 或 OXPS 转换为 PDF。

本文涵盖以下主题:

  1. 将 XPS 转换为 PDF 的 C# API
  2. 使用 C# 将 XPS 转换为 PDF
  3. 将 XPS 的特定页面转换为 PDF
  4. C# 中的 OXPS 到 PDF 转换器
  5. 将 OXPS 的特定页面转换为 PDF
  6. 在线将XPS文件转换为PDF
  7. XPS 转 PDF - 免费学习资源

将 XPS 转换为 PDF 的 C# API

我们将使用 Aspose.Page for .NET API 将 XPS 或 OXPS 文档转换为 PDF 格式。它是一个功能强大的 API,使开发人员能够创建、编辑、操作和转换 XPS 和 EPS/PS 文档。 Aspose.Page for .NET 是一个可靠且独立的 API,易于使用并集成到您的 .NET 应用程序中。

下载 API 的 DLL 或使用以下 NuGet 命令安装它:

PM> Install-Package Aspose.Page

使用 C# 将 XPS 转换为 PDF

我们可以按照以下步骤将整个 XPS 文档转换为 PDF 格式:

  1. 加载输入 XPS 文件。
  2. 使用必要的参数初始化选项对象。
  3. 创建 PdfDevice 的实例以进行渲染。
  4. 将 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# 中将 XPS 的特定页面转换为 PDF

我们还可以按照以下步骤将 XPS 文档的选定页面转换为 PDF 格式:

  1. 初始化 XPS 输入流。
  2. 从流加载 XPS 文档。
  3. 初始化 PdfSaveOptions 对象。
  4. 指定转换的页码。
  5. 将文档另存为 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 文档的两个页面:

XPS 转 PDF

C# 中的 OXPS 到 PDF 转换器

OXPS 格式是 XPS 文件格式的更新和高级形式。但是,某些旧操作系统不支持此类文件。我们可以按照以下步骤轻松将 OXPS 文档转换为 PDF 格式:

  1. 初始化 OXPS 输入流。
  2. 从流中加载 OXPS 文件。
  3. 实例化 PdfSaveOptions 类的对象
  4. 将 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# 中将 OXPS 的特定页面转换为 PDF

同样,我们也可以按照以下步骤将特定页面从 OXPS 文档转换为 PDF 格式:

  1. 加载 OXPS 文件
  2. 声明 PdfSaveOptions 对象。
  3. 设置要转换的页码。
  4. 将 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);
}

获取免费许可证

您可以获得免费的临时许可证来测试该库,没有任何评估限制。

在线将 XPS 文件转换为 PDF

您还可以使用此免费 XPS 到 PDF 转换器 应用程序在线将 XPS 文件转换为 PDF,而无需安装任何软件或插件。

将 XPS 文档转换为 PDF - 学习资源

除了将 XPS 或 OXPS 文档转换为 PDF 格式之外,您还可以使用以下资源了解有关该库的更多信息并探索各种其他功能:

结论

在本文中,我们学习了如何使用 C# 以编程方式将 XPS 转换为 PDF 和 OXPS 转换为 PDF。我们还了解了如何将 XPS 或 OXPS 文档的特定页面导出为 PDF 格式。您可以进一步探索 API 并优化您的文档处理工作流程。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。

也可以看看