Convertire XPS in BMP in C#

La conversione di file XPS in immagini BMP in C# è una necessità comune quando devi estrarre rappresentazioni visive di documenti XPS per la stampa, l’archiviazione o l’integrazione in flussi di lavoro di elaborazione delle immagini. Utilizzando Conholdate.Total per .NET, questo compito diventa semplice ed efficiente.


Perché convertire XPS in BMP?

Ecco alcuni motivi per cui potresti aver bisogno di convertire XPS in BMP:

  • Output di alta qualità: BMP preserva la piena fedeltà dell’immagine, utile per la stampa o il lavoro di design.
  • Condivisione semplificata: le immagini BMP possono essere facilmente aperte e visualizzate su più piattaforme.
  • Estrazione dei dati: Estrai contenuti a livello di pagina per analisi o OCR.
  • Batch processing: Convertire più pagine o documenti in una sola volta utilizzando l’automazione .NET.

Convertire XPS in BMP in C#

Segui i passaggi seguenti per eseguire la conversione:

  1. Carica il documento XPS utilizzando la classe XpsDocument.
  2. Creare e configurare un’istanza di BmpSaveOptions.
  3. Invoca il metodo SaveAsImage per generare array di byte di immagini BMP.
  4. Itera attraverso ogni pagina e salva le immagini sul disco.

Convertire XPS in BMP in 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);
    }
}

Questo codice dimostra un processo completo per convertire documenti XPS in immagini BMP in C#. Il file XPS viene caricato utilizzando la classe XpsDocument insieme a XpsLoadOptions per prepararlo al rendering. Quindi, viene inizializzato un oggetto BmpSaveOptions, dove puoi impostare la risoluzione dell’immagine, la modalità di levigatura e le pagine specifiche da convertire. Questo assicura che ogni pagina venga salvata separatamente con etichette chiare, facilitando la gestione e l’utilizzo delle immagini generate in ulteriori applicazioni. In generale, questo metodo fornisce un modo altamente efficiente per estrarre e preservare i contenuti XPS nel formato BMP.

Conclusione

La conversione di documenti XPS in immagini BMP in C# consente agli sviluppatori di generare output di immagini rasterizzate per un’integrazione, un’archiviazione o un’elaborazione più semplici. Conholdate.Total per .NET offre API potenti per gestire tali conversioni di documenti con minimo sforzo.

Vedi anche