Định dạng tài liệu XPS cho phép bạn dễ dàng chia sẻ, tạo, in và lưu tài liệu kỹ thuật số nhưng bạn có thể phải cài đặt phần mềm hỗ trợ. Nếu bạn là lập trình viên .NET và có thể muốn xuất tệp XPS sang định dạng JPG/JPEG theo chương trình, bài viết này sẽ giải thích cách chuyển đổi XPS sang JPG trong C#.
Các điểm sau đây sẽ được đề cập trong bài viết này:
API C# .NET để chuyển đổi XPS sang JPG
Trong bài viết này, chúng tôi sẽ sử dụng Conholdate.Total for .NET để chuyển đổi XPS sang JPG. Thư viện này cho phép bạn tạo, chỉnh sửa và lưu các tài liệu XPS hiện có cũng như mới. Do đó, bạn có thể tải xuống DLL hoặc cài đặt API chuyển đổi XPS này bằng NuGet.
Install-Package Conholdate.Total
Cách chuyển đổi XPS sang JPG/JPEG theo chương trình trong C#
API chuyển đổi XPS cho phép bạn chuyển đổi các tệp XPS của mình thành JPG.
Sau đây là các bước để chuyển đổi tệp XPS thành hình ảnh JPG:
- Khởi tạo đối tượng của lớp Stream cho tài liệu XPS.
- Tạo một phiên bản của lớp XpsDocument bằng cách sử dụng luồng XPS (được tạo ở bước trước) và đối tượng của lớp XpsLoadOptions làm tham số.
- Khởi tạo đối tượng của lớp JpegSaveOptions với các tham số cần thiết.
- Tạo một thể hiện của lớp ImageDevice.
- Lưu JPG trong đối tượng ImageDevice bằng cách gọi XpsDocument.Save(Thiết bị thiết bị, tùy chọn SaveOptions).
- Sử dụng ImageDevice để lưu JPG trên đĩa (như được hiển thị trong mẫu mã bên dưới).
Mẫu mã sau đây cho biết cách chuyển đổi chuyển đổi XPS sang JPG bằng C#:
string inputFileName = "input.xps";
//Tập tin đầu ra
string outputFileName = "XPStoImage_out.jpg";
// Khởi tạo luồng đầu vào XPS
using (Stream xpsStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read))
{
// Tải tài liệu XPS dưới dạng luồng
XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions());
// Khởi tạo đối tượng tùy chọn với các tham số cần thiết.
JpegSaveOptions options = new JpegSaveOptions()
{
SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality,
Resolution = 300,
PageNumbers = new int[] { 1, 2, 6 }
};
// Tạo thiết bị kết xuất cho hình ảnh
ImageDevice device = new ImageDevice();
document.Save(device, options);
// Lặp lại qua các phân vùng tài liệu (tài liệu cố định, theo thuật ngữ XPS)
for (int i = 0; i < device.Result.Length; i++)
// Lặp lại qua các trang phân vùng
for (int j = 0; j < device.Result[i].Length; j++)
{
// Khởi tạo luồng đầu ra hình ảnh
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))
// Viết hình ảnh
imageStream.Write(device.Result[i][j], 0, device.Result[i][j].Length);
}
}
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 API mà không bị giới hạn về đánh giá.
Phần kết luận
Để kết thúc bài viết này, chúng tôi hy vọng bạn đã biết cách chuyển đổi XPS sang JPG trong C# bằng API chuyển đổi XPS. Bạn có thể truy cập tài liệu để khám phá các tính năng khác của thư viện chuyển đổi XPS.
Đặt một câu hỏi
Bạn có thể cho chúng tôi biết câu hỏi hoặc thắc mắc của bạn trên diễn đàn của chúng tôi.