Converter XPS para BMP em C#

Converter arquivos XPS para imagens BMP em C# é uma necessidade comum quando você precisa extrair representações visuais de documentos XPS para impressão, arquivamento ou integração em fluxos de trabalho de processamento de imagem. Usando Conholdate.Total for .NET, essa tarefa se torna simples e eficiente.


Por que converter XPS para BMP?

Aqui estão algumas razões pelas quais você pode precisar converter XPS para BMP:

  • Saída de alta qualidade: BMP preserva a fidelidade completa da imagem, útil para impressão ou trabalho de design.
  • Compartilhamento simplificado: imagens BMP podem ser facilmente abertas e visualizadas em diferentes plataformas.
  • Extração de dados: Extraia conteúdo a nível de página para análise ou OCR.
  • Processamento em lote: Converta várias páginas ou documentos de uma só vez usando automação .NET.

Converter XPS para BMP em C#

Siga os passos abaixo para realizar a conversão:

  1. Carregue o documento XPS usando a classe XpsDocument.
  2. Crie e configure uma instância de BmpSaveOptions.
  3. Invoque o método SaveAsImage para gerar arrays de bytes de imagem BMP.
  4. Itere através de cada página e salve as imagens no disco.

Converter XPS para BMP em 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);
    }
}

Este código demonstra um processo completo para converter documentos XPS em imagens BMP em C#. O arquivo XPS é carregado utilizando a classe XpsDocument juntamente com XpsLoadOptions para prepará-lo para renderização. Em seguida, um objeto BmpSaveOptions é inicializado, onde você pode definir a resolução da imagem, modo de suavização e páginas específicas a serem convertidas. Isso garante que cada página seja salva separadamente com etiquetas claras, facilitando a gestão e o uso das imagens geradas em aplicações futuras. No geral, este método fornece uma maneira altamente eficiente de extrair e preservar conteúdo XPS no formato BMP.

Conclusão

Converter documentos XPS em imagens BMP em C# permite que os desenvolvedores gerem saídas de imagem rasterizadas para fácil integração, arquivamento ou processamento adicional. Conholdate.Total para .NET oferece APIs poderosas para lidar com tais conversões de documentos com mínimo esforço.

See Also