
Các tệp XPS và OXPS thường được sử dụng để in vì độ phân giải độc lập của chúng. Tuy nhiên, đôi khi chúng ta cần chuyển đổi XPS sang PDF hoặc OXPS sang PDF. Aspose.Page for .NET API cho phép bạn thực hiện các chuyển đổi này với khả năng hiển thị nhanh và độ trung thực cao. Hãy để chúng tôi khám phá các trường hợp sử dụng sau:
Chuyển đổi XPS sang PDF theo chương trình bằng C#
Chuyển đổi XPS sang PDF rất đơn giản với Aspose.Page for .NET API. Chúng ta sẽ tìm hiểu các phương pháp sau để thực hiện chuyển đổi tệp XPS:
i) Chuyển đổi các trang cụ thể của XPS sang PDF trong C#
Để chuyển đổi các trang đã chọn của tài liệu XPS sang PDF, hãy làm theo các bước dưới đây:
- Khởi tạo luồng đầu vào XPS
- Tải tài liệu XPS từ luồng
- Khởi tạo đối tượng PdfSaveOptions
- Chỉ định số trang để chuyển đổi
- Lưu tài liệu dưới dạng tệp PDF
Đoạn mã dưới đây làm theo các bước sau và cho biết cách chuyển đổi XPS sang 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 từ 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 nhiều trang làm tệp đầu vào. Trong khi đó, chỉ trang số 1 và 3 được chuyển đổi thành PDF như được chỉ định trong đoạn mã. Ảnh chụp màn hình sau hiển thị 2 trang được hiển thị thành tài liệu PDF:

ii) Chuyển đổi tất cả các trang của XPS sang PDF trong C#
Bạn có thể chuyển đổi toàn bộ tệp XPS sang PDF. Thực hiện theo các bước bên dưới và tất cả các trang của tệp XPS sẽ được chuyển đổi thành tệp PDF:
- Tải tệp XPS đầu vào
- Khởi tạo đối tượng tùy chọn với các tham số cần thiết
- Tạo một phiên bản của PdfDevice để hiển thị
- Xuất tài liệu XPS sang PDF
Đoạn mã dưới đây dựa trên tất cả các bước này cho biết cách chuyển đổi tệp XPS sang PDF bằng ngôn 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 từ 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 OXPS sang PDF bằng C#
Định dạng OXPS là một dạng định dạng tệp XPS được cập nhật và nâng cao. Tuy nhiên, các tệp như vậy không được hỗ trợ bởi một số hệ điều hành cũ. Aspose.Page for .NET API cũng có khả năng chuyển đổi các tệp OXPS. Chúng ta hãy tiến hành tìm hiểu các tình huống sử dụng sau:
i) Chuyển đổi một số trang của OXPS sang PDF trong C#
Tệp OXPS có thể chứa nhiều trang và bất kỳ số lượng trang nào cũng có thể được chuyển đổi thành PDF bằng cách thực hiện theo các bước bên dưới:
- Tải tệp OXPS
- Khai báo đối tượng PdfSaveOptions
- Đặt (các) số trang mà bạn muốn chuyển đổi
- Kết xuất OXPS thành PDF
Đoạn mã sau cho biết cách chuyển đổi OXPS sang PDF bằng 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);
}
ii) Chuyển đổi tất cả các trang của OXPS sang PDF trong C#
Chuyển đổi tất cả các trang của OXPS rất đơn giản và liên quan đến ví dụ mà chúng tôi đã xem xét ở trên. Hãy để chúng tôi làm theo các bước bên dưới và chuyển đổi tất cả các trang của tệp OXPS thành một tài liệu PDF:
- Khởi tạo luồng đầu vào OXPS
- Tải tệp OXPS từ luồng
- Khởi tạo một đối tượng của lớp PdfSaveOptions
- Xuất tệp OXPS sang tệp PDF
Đoạn mã dưới đây làm theo từng bước một và chuyển đổi OXPS 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 + "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);
}
Sự kết luận
Trong bài viết này, bạn đã học cách chuyển đổi XPS sang PDF và OXPS sang PDF theo chương trình bằng C#. Bạn đã học qua các ví dụ mã C# và ảnh chụp màn hình về chuyển đổi định dạng tệp nhanh chóng, hiệu quả và có độ trung thực cao. Bạn có thể khám phá thêm API Aspose.Page for .NET với sự trợ giúp của Tài liệu API và Tài liệu tham khảo API. Hơn nữa, vui lòng hỏi bất kỳ câu hỏi nào tại Diễn đàn hỗ trợ miễn phí.