Convertir XPS en BMP en C#

Convertir des fichiers XPS en images BMP en C# est un besoin courant lorsque vous devez extraire des représentations visuelles de documents XPS pour l’impression, l’archivage ou l’intégration dans des flux de travail de traitement d’images. En utilisant Conholdate.Total for .NET, cette tâche devient simple et efficace.


Pourquoi convertir XPS en BMP ?

Voici quelques raisons pour lesquelles vous pourriez avoir besoin de convertir XPS en BMP :

  • Sortie de haute qualité : BMP préserve la fidélité complète de l’image, utile pour l’impression ou le travail de design.
  • Simplified sharing: Les images BMP peuvent être facilement ouvertes et visionnées sur différentes plateformes.
  • Extraction de données : extraire le contenu au niveau de la page pour analyse ou OCR.
  • Traitement par lot : Convertir plusieurs pages ou documents en une seule fois à l’aide de l’automatisation .NET.

Convertir XPS en BMP en C#

Suivez les étapes ci-dessous pour effectuer la conversion :

  1. Chargez le document XPS en utilisant la classe XpsDocument.
  2. Créer et configurer une instance de BmpSaveOptions.
  3. Invoke the SaveAsImage method to generate BMP image byte arrays.
  4. Itérer à travers chaque page et sauvegarder les images sur le disque.

Convertir XPS en BMP en 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);
    }
}

Ce code démontre un processus complet pour convertir des documents XPS en images BMP en C#. Le fichier XPS est chargé à l’aide de la classe XpsDocument ainsi que des XpsLoadOptions pour le préparer à être rendu. Ensuite, un objet BmpSaveOptions est initialisé, où vous pouvez définir la résolution de l’image, le mode de lissage et des pages spécifiques à convertir. Cela garantit que chaque page est sauvegardée séparément avec un étiquetage clair, ce qui facilite la gestion et l’utilisation des images générées dans d’autres applications. Dans l’ensemble, cette méthode fournit un moyen très efficace d’extraire et de préserver le contenu XPS au format BMP.

Conclusion

La conversion de documents XPS en images BMP en C# permet aux développeurs de générer des sorties d’images rasterisées pour une intégration facile, un archivage ou un traitement ultérieur. Conholdate.Total pour .NET propose des API puissantes pour gérer de telles conversions de documents avec un minimum d’effort.

Voir aussi