Chuyển đổi XPS sang BMP trong C#
Chuyển đổi tệp XPS thành hình ảnh BMP trong C# là một yêu cầu phổ biến khi bạn cần trích xuất các đại diện hình ảnh của tài liệu XPS để in ấn, lưu trữ hoặc tích hợp vào các quy trình xử lý hình ảnh. Sử dụng Conholdate.Total for .NET, nhiệm vụ này trở nên đơn giản và hiệu quả.
Tại sao chuyển đổi XPS sang BMP?
Dưới đây là một số lý do bạn có thể cần chuyển đổi XPS sang BMP:
- Đầu ra chất lượng cao: BMP giữ nguyên độ trung thực hình ảnh, hữu ích cho in ấn hoặc công việc thiết kế.
- Chia sẻ đơn giản: Hình ảnh BMP có thể dễ dàng được mở và xem trên nhiều nền tảng khác nhau.
- Trích xuất dữ liệu: Trích xuất nội dung cấp trang để phân tích hoặc OCR.
- Xử lý theo lô: Chuyển đổi nhiều trang hoặc tài liệu chỉ trong một lần sử dụng tự động hóa .NET.
Chuyển đổi XPS sang BMP trong C#
Theo các bước dưới đây để thực hiện việc chuyển đổi:
- Tải tài liệu XPS bằng cách sử dụng lớp
XpsDocument. - Tạo và cấu hình một thể hiện của
BmpSaveOptions. - Gọi phương thức
SaveAsImageđể tạo ra các mảng byte hình ảnh BMP. - Lặp qua từng trang và lưu hình ảnh vào đĩa.
Chuyển đổi XPS sang BMP trong C#
// Define the working directory.
string dataDir = "/Desktop";
string outputFileName = dataDir + "XPStoImage_out.bmp";
// Instantiate an instance of the XpsLoadOptions class.
// Load XPS document from the XPS file by initializing an instance of the XpsDocument class.
XpsDocument document = new XpsDocument(dataDir + "input.xps", new XpsLoadOptions());
// Initialize BmpSaveOptions object with necessary parameters.
BmpSaveOptions options = new BmpSaveOptions()
{
SmoothingMode = SmoothingMode.HighQuality,
Resolution = 300,
PageNumbers = new int[] { 1, 2, 6 }
};
// Invoke SaveAsImage method to save XPS document to the images byte arrays.
byte[][][] imagesBytes = document.SaveAsImage(options);
// Iterate through document partitions (fixed documents, in XPS terms)
for (int i = 0; i < imagesBytes.Length; i++)
{
// Iterate through partition pages
for (int j = 0; j < imagesBytes[i].Length; j++)
{
// Initialize image output stream
using (Stream imageStream = System.IO.File.Open(Path.GetDirectoryName(outputFileName) + Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(outputFileName) + "_" + (i + 1) + "_" + (j + 1) +
Path.GetExtension(outputFileName), System.IO.FileMode.Create, System.IO.FileAccess.Write))
// Write image
imageStream.Write(imagesBytes[i][j], 0, imagesBytes[i][j].Length);
}
}
Mã này mô tả một quy trình hoàn chỉnh để chuyển đổi tài liệu XPS sang hình ảnh BMP trong C#. Tệp XPS được tải bằng cách sử dụng lớp XpsDocument cùng với XpsLoadOptions để chuẩn bị cho việc hiển thị. Sau đó, một đối tượng BmpSaveOptions được khởi tạo, nơi bạn có thể thiết lập độ phân giải hình ảnh, chế độ làm mượt và các trang cụ thể sẽ được chuyển đổi. Điều này đảm bảo rằng mỗi trang được lưu riêng biệt với nhãn rõ ràng, giúp dễ dàng quản lý và sử dụng các hình ảnh đã tạo trong các ứng dụng tiếp theo. Nhìn chung, phương pháp này cung cấp một cách hiệu quả cao để trích xuất và bảo tồn nội dung XPS ở định dạng BMP.
Kết luận
Chuyển đổi tài liệu XPS sang hình ảnh BMP trong C# cho phép các nhà phát triển tạo ra các đầu ra hình ảnh raster hóa để dễ dàng tích hợp, lưu trữ hoặc xử lý thêm. Conholdate.Total cho .NET cung cấp các API mạnh mẽ để xử lý các chuyển đổi tài liệu như vậy với nỗ lực tối thiểu.
