Convert XPS naar BMP in C#

Het converteren van XPS-bestanden naar BMP-afbeeldingen in C# is een veel voorkomende vereiste wanneer je visuele representaties van XPS-documenten wilt extraheren voor afdrukken, archiveren of integreren in afbeeldingsverwerkingswerkstromen. Met behulp van Conholdate.Total voor .NET wordt deze taak eenvoudig en efficiënt.


Waarom XPS naar BMP converteren?

Hier zijn enkele redenen waarom je XPS naar BMP zou moeten converteren:

  • Hoge kwaliteit output: BMP behoudt de volledige beeldintegriteit, nuttig voor afdruk- of ontwerpprojecten.
  • Vereenvoudigd delen: BMP-afbeeldingen kunnen eenvoudig worden geopend en bekeken op verschillende platforms.
  • Data-extractie: Extracteer paginanieuwsinhoud voor analyse of OCR.
  • Batchverwerking: Converteer meerdere pagina’s of documenten in één keer met behulp van .NET-automatisering.

Convert XPS naar BMP in C#

Volg de onderstaande stappen om de conversie uit te voeren:

  1. Laad het XPS-document met behulp van de XpsDocument-klasse.
  2. Maak en configureer een instantie van BmpSaveOptions.
  3. Roep de SaveAsImage-methode aan om BMP-afbeeldingsbyte-arrays te genereren.
  4. Itereer door elke pagina en sla de afbeeldingen op de schijf op.

Convert XPS naar 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);
    }
}

Deze code demonstreert een compleet proces voor het converteren van XPS-documenten naar BMP-afbeeldingen in C#. Het XPS-bestand wordt geladen met behulp van de XpsDocument-klasse samen met XpsLoadOptions om het voor te bereiden op rendering. Vervolgens wordt een BmpSaveOptions-object geïnitialiseerd, waar je de afbeeldingsresolutie, het gladmakingsmode en specifieke pagina’s die moeten worden geconverteerd kunt instellen. Dit zorgt ervoor dat elke pagina afzonderlijk wordt opgeslagen met duidelijke labeling, waardoor het gemakkelijk is om de gegenereerde beelden in verdere toepassingen te beheren en te gebruiken. Over het algemeen biedt deze methode een zeer efficiënte manier om XPS-inhoud in het BMP-formaat te extraheren en te behouden.

Conclusie

Het converteren van XPS-documenten naar BMP-afbeeldingen in C# stelt ontwikkelaars in staat om gerasteriseerde afbeeldingsuitvoeren te genereren voor eenvoudige integratie, archivering of verdere verwerking. Conholdate.Total voor .NET biedt krachtige API’s om dergelijke documentconversies met minimale inspanning te verwerken.

Zie ook