C# Chuyển đổi XPS sang PDF | Chuyển đổi OXPS sang PDF trong C#

XPS (Thông số kỹ thuật giấy XML mở)OXPS (OpenXPS) đại diện cho các tài liệu trang cố định. Tài liệu XPS tương tự như tài liệu PDF ở chỗ chúng đều giữ nguyên bố cục và định dạng của tài liệu gốc. Tuy nhiên, tài liệu XPS không được hỗ trợ rộng rãi như tài liệu PDF. Tài liệu PDF (Định dạng Tài liệu Di động) được hỗ trợ rộng rãi trên nhiều nền tảng và thiết bị. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách chuyển đổi XPS hoặc OXPS sang PDF trong C#.

Bài viết này bao gồm các chủ đề sau:

  1. API C# để chuyển đổi XPS sang PDF
  2. Chuyển đổi XPS sang PDF bằng C#
  3. Chuyển đổi các trang cụ thể của XPS sang PDF
  4. Chuyển đổi OXPS sang PDF trong C#
  5. Chuyển đổi các trang cụ thể của OXPS sang PDF
  6. Chuyển đổi tệp XPS sang PDF trực tuyến
  7. XPS sang PDF - Tài nguyên học tập miễn phí

API C# để chuyển đổi XPS sang PDF

Chúng tôi sẽ sử dụng API Aspose.Page for .NET để chuyển đổi tài liệu XPS hoặc OXPS sang định dạng PDF. Đây là một API mạnh mẽ cho phép các nhà phát triển tạo, chỉnh sửa, thao tác và chuyển đổi các tài liệu XPS và EPS/PS. Aspose.Page for .NET là một API độc lập và đáng tin cậy, dễ sử dụng và tích hợp vào các ứng dụng .NET của bạn.

Vui lòng tải xuống DLL của API hoặc cài đặt nó bằng lệnh NuGet sau:

PM> Install-Package Aspose.Page

Chuyển đổi XPS sang PDF bằng C#

Chúng tôi có thể chuyển đổi toàn bộ tài liệu XPS sang định dạng PDF bằng cách thực hiện theo các bước bên dưới:

  1. Tải tệp XPS đầu vào.
  2. Khởi tạo đối tượng tùy chọn với các tham số cần thiết.
  3. Tạo một phiên bản của PdfDevice để hiển thị.
  4. Xuất XPS sang tài liệu PDF.

Mẫu mã bên dưới cho biết cách chuyển đổi tệp XPS thành PDF bằng C#.

// Khởi tạo luồng đầu ra PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Khởi tạo luồng đầu vào XPS
//sử dụng (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))
{
// Tải tài liệu XPS dưới dạng luồng
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// hoặc tải tài liệu XPS trực tiếp từ tệp. Khi đó không cần xpsStream.
// Tài liệu XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

// Khởi tạo đối tượng tùy chọn với các tham số cần thiết.
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,
};
// Tạo thiết bị kết xuất cho định dạng PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Chuyển đổi các trang cụ thể của XPS sang PDF trong C#

Chúng tôi cũng có thể chuyển đổi các trang đã chọn của tài liệu XPS sang định dạng PDF bằng cách thực hiện theo các bước bên dưới:

  1. Khởi tạo luồng đầu vào XPS.
  2. Tải tài liệu XPS từ luồng.
  3. Khởi tạo đối tượng PdfSaveOptions.
  4. Chỉ định số trang để chuyển đổi.
  5. Lưu tài liệu dưới dạng tệp PDF.

Mẫu mã sau đây cho biết cách chuyển đổi các trang cụ thể của XPS sang PDF trong C#.

// Khởi tạo luồng đầu ra PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Khởi tạo luồng đầu vào XPS
//sử dụng (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))
{
    // Tải tài liệu XPS dưới dạng luồng
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // hoặc tải tài liệu XPS trực tiếp từ tệp. Khi đó không cần xpsStream.
    // Tài liệu XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Khởi tạo đối tượng tùy chọn với các tham số cần thiết.
    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}
    };
    // Tạo thiết bị kết xuất cho định dạng PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Đoạn mã này sử dụng tài liệu XPS chứa một số trang làm tệp đầu vào. Trong khi đó, chỉ trang số 1 và 3 được chuyển đổi sang PDF như được chỉ định trong đoạn mã. Ảnh chụp màn hình sau đây hiển thị hai trang được hiển thị dưới dạng tài liệu PDF:

XPS sang PDF

Trình chuyển đổi OXPS sang PDF trong C#

Định dạng OXPS là dạng cập nhật và nâng cao của định dạng tệp XPS. Tuy nhiên, những tệp như vậy không được một số hệ điều hành cũ hỗ trợ. Chúng ta có thể dễ dàng chuyển đổi tài liệu OXPS sang định dạng PDF bằng cách thực hiện theo các bước bên dưới:

  1. Khởi tạo luồng đầu vào OXPS.
  2. Tải tệp OXPS từ luồng.
  3. Khởi tạo một đối tượng của lớp PdfSaveOptions
  4. Xuất OXPS sang tệp PDF

Mẫu mã sau đây cho biết cách chuyển đổi OXPS sang PDF trong C#.

// Khởi tạo luồng đầu ra PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Khởi tạo luồng đầu vào OXPS
//sử dụng (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))
{
// Tải tài liệu OXPS dưới dạng luồng
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// hoặc tải tài liệu OXPS trực tiếp từ tệp. Khi đó không cần xpsStream.
// Tài liệu XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

// Khởi tạo đối tượng tùy chọn với các tham số cần thiết.
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,
};
// Tạo thiết bị kết xuất cho định dạng PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Chuyển đổi các trang cụ thể của OXPS sang PDF trong C#

Tương tự, chúng tôi cũng có thể chuyển đổi các trang cụ thể từ tài liệu OXPS sang định dạng PDF bằng cách thực hiện theo các bước bên dưới:

  1. Tải tệp OXPS
  2. Khai báo đối tượng PdfSaveOptions.
  3. Đặt (các) số trang mà bạn muốn chuyển đổi.
  4. Kết xuất OXPS sang PDF.

Đoạn mã sau đây cho biết cách chuyển đổi các trang cụ thể của OXPS sang PDF trong C#. Nó chuyển đổi trang đầu tiên của tệp OXPS thành PDF, như được đề cập trong đoạn mã.

// Khởi tạo luồng đầu ra PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Khởi tạo luồng đầu vào OXPS
//sử dụng (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))
{
    // Tải tài liệu OXPS dưới dạng luồng
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // hoặc tải tài liệu XPS trực tiếp từ tệp. Khi đó không cần xpsStream.
    // Tài liệu XpsDocument = new XpsDocument(inputFileName, new XpsLoadOptions());

    // Khởi tạo đối tượng tùy chọn với các tham số cần thiết.
    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}
    };
    // Tạo thiết bị kết xuất cho định dạng PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để kiểm tra thư viện mà không có bất kỳ hạn chế đánh giá nào.

Chuyển đổi tệp XPS sang PDF trực tuyến

Bạn cũng có thể chuyển đổi tệp XPS sang PDF trực tuyến bằng ứng dụng chuyển đổi XPS sang PDF miễn phí này mà không cần cài đặt bất kỳ phần mềm hoặc plugin nào.

Chuyển đổi tài liệu XPS sang PDF - Tài nguyên học tập

Bên cạnh việc chuyển đổi tài liệu XPS hoặc OXPS sang định dạng PDF, hãy tìm hiểu thêm về thư viện và khám phá nhiều tính năng khác bằng cách sử dụng các tài nguyên bên dưới:

Phần kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách chuyển đổi XPS sang PDF và OXPS sang PDF theo chương trình bằng C#. Chúng tôi cũng đã xem cách xuất các trang cụ thể của tài liệu XPS hoặc OXPS sang định dạng PDF. Bạn có thể khám phá thêm API và tối ưu hóa quy trình xử lý tài liệu của mình. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên [diễn đàn hỗ trợ miễn phí] của chúng tôi 17.

Xem thêm