Преобразовать XPS в BMP на C#

Преобразование файлов XPS в изображения BMP на C# является распространенной задачей, когда необходимо извлечь визуальные представления документов XPS для печати, архивирования или интеграции в рабочие процессы обработки изображений. Используя Conholdate.Total for .NET, эта задача становится простой и эффективной.


Почему преобразовывать XPS в BMP?

Вот несколько причин, по которым вам может потребоваться конвертировать XPS в BMP:

  • Высококачественный вывод: BMP сохраняет полную достоверность изображения, что полезно для печати или дизайнерской работы.
  • Упрощенный обмен: BMP изображения могут быть легко открыты и просмотрены на разных платформах.
  • Извлечение данных: Извлеките контент на уровне страницы для анализа или OCR.
  • Пакетная обработка: Конвертируйте несколько страниц или документов за один раз, используя автоматизацию .NET.

Преобразовать XPS в BMP на C#

Следуйте шагам ниже, чтобы выполнить конверсию:

  1. Загрузите документ XPS с помощью класса XpsDocument.
  2. Создайте и настройте экземпляр BmpSaveOptions.
  3. Вызовите метод SaveAsImage для генерации массивов байтов изображений BMP.
  4. Перебирайте каждую страницу и сохраняйте изображения на диск.

Преобразовать XPS в BMP на 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);
    }
}

Этот код демонстрирует полный процесс преобразования документов XPS в изображения BMP на C#. Файл XPS загружается с помощью класса XpsDocument вместе с XpsLoadOptions, чтобы подготовить его для рендеринга. Затем инициализируется объект BmpSaveOptions, где вы можете задать разрешение изображения, режим сглаживания и конкретные страницы для преобразования. Это гарантирует, что каждая страница сохраняется отдельно с четкой маркировкой, что упрощает управление и использование сгенерированных изображений в дальнейшем. В целом, этот метод предоставляет очень эффективный способ извлечения и сохранения содержимого XPS в формате BMP.

Заключение

Конвертация документов XPS в изображения BMP на C# позволяет разработчикам генерировать растровые изображения для простой интеграции, архивирования или дальнейшей обработки. Conholdate.Total для .NET предлагает мощные API для обработки таких конверсий документов с минимальными усилиями.

См. также