Konvertiere XPS in BMP in C#

Die Konvertierung von XPS Dateien in BMP bilder in C# ist eine gängige Anforderung, wenn Sie visuelle Darstellungen von XPS Dokumenten für das Drucken, Archivieren oder die Integration in Bildbearbeitungs-Workflows extrahieren müssen. Mit Conholdate.Total für .NET wird diese Aufgabe unkompliziert und effizient.


Warum XPS in BMP umwandeln?

Hier sind einige Gründe, warum Sie XPS in BMP konvertieren müssen:

  • Hochwertige Ausgabe: BMP bewahrt die volle Bildtreue, nützlich für Druck oder Designarbeiten.
  • Vereinfachtes Teilen: BMP bilder können einfach plattformübergreifend geöffnet und angezeigt werden.
  • Datenextraktion: Extrahieren Sie seitenbezogene Inhalte zur Analyse oder OCR.
  • Batchverarbeitung: Konvertieren Sie mehrere Seiten oder Dokumente auf einmal mit .NET-Automatisierung.

Konvertiere XPS in BMP in C#

Befolgen Sie die folgenden Schritte, um die Umwandlung durchzuführen:

  1. Laden Sie das XPS Dokument mit der XpsDocument Klasse.
  2. Erstellen und konfigurieren Sie eine Instanz von BmpSaveOptions.
  3. Rufen Sie die Methode SaveAsImage auf, um BMP bild-Byte-Arrays zu generieren.
  4. Durchlaufe jede Seite und speichere die Bilder auf der Festplatte.

Konvertiere 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);
    }
}

Dieser Code demonstriert einen kompletten Prozess zur Umwandlung von XPS Dokumenten in BMP bilder in C#. Die XPS-Datei wird mit der XpsDocument Klasse und den XpsLoadOptions geladen, um sie für das Rendering vorzubereiten. Anschließend wird ein BmpSaveOptions Objekt initialisiert, in dem Sie die Bildauflösung, den Glättungsmodus und spezifische Seiten festlegen können, die umgewandelt werden sollen. Dies stellt sicher, dass jede Seite separat mit klarer Kennzeichnung gespeichert wird, was die Verwaltung und Verwendung der erzeugten Bilder in weiteren Anwendungen erleichtert. Insgesamt bietet diese Methode eine äußerst effiziente Möglichkeit, XPS-Inhalte im BMP-Format zu extrahieren und zu bewahren.

Schlussfolgerung

Die Konvertierung von XPS Dokumenten in BMP bilder in C# ermöglicht es Entwicklern, rasterisierte Bildausgaben zu erzeugen, die sich leicht integrieren, archivieren oder weiterverarbeiten lassen. Conholdate.Total für .NET bietet leistungsstarke APIs, um solche Dokumentenkonvertierungen mit minimalem Aufwand zu handhaben.

Siehe auch