Convertować XPS na BMP w C#

Konwersja plików XPS na obrazy BMP w C# jest powszechnym wymaganiem, gdy trzeba wyodrębnić wizualne reprezentacje dokumentów XPS do druku, archiwizacji lub integracji w przepływach pracy przetwarzania obrazów. Używając Conholdate.Total for .NET, zadanie to staje się proste i efektywne.


Dlaczego konwertować XPS na BMP?

Oto kilka powodów, dla których możesz potrzebować konwertować XPS na BMP:

  • Wysokiej jakości wyjście: BMP zachowuje pełną wierność obrazu, co jest przydatne w druku lub pracy projektowej.
  • Uproszczone udostępnianie: obrazy BMP można łatwo otworzyć i wyświetlić na różnych platformach.
  • Ekstrakcja danych: Wyciągnij zawartość na poziomie strony do analizy lub OCR.
  • Przetwarzanie wsadowe: Konwertuj wiele stron lub dokumentów w jednym kroku za pomocą automatyzacji .NET.

Convertować XPS na BMP w C#

Podążaj za krokami poniżej, aby przeprowadzić konwersję:

  1. Załaduj dokument XPS za pomocą klasy XpsDocument.
  2. Utwórz i skonfiguruj instancję BmpSaveOptions.
  3. Wywołaj metodę SaveAsImage, aby wygenerować tablice bajtów obrazu BMP.
  4. Iterate through each page and save the images to the disk.

Convertować XPS na BMP w 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);
    }
}

Ten kod demonstruje kompletny proces konwersji dokumentów XPS na obrazy BMP w C#. Plik XPS jest ładowany za pomocą klasy XpsDocument wraz z XpsLoadOptions, aby przygotować go do renderowania. Następnie inicjalizowany jest obiekt BmpSaveOptions, w którym można ustawić rozdzielczość obrazu, tryb wygładzania oraz konkretne strony do konwersji. Zapewnia to, że każda strona jest zapisywana oddzielnie z wyraźnym oznaczeniem, co ułatwia zarządzanie i wykorzystywanie wygenerowanych obrazów w dalszych aplikacjach. Ogólnie rzecz biorąc, ta metoda zapewnia bardzo wydajny sposób na wyodrębnienie i zachowanie zawartości XPS w formacie BMP.

Wnioski

Konwersja dokumentów XPS na obrazy BMP w C# pozwala deweloperom generować rastrowe wyjścia obrazów do łatwej integracji, archiwizacji lub dalszego przetwarzania. Conholdate.Total dla .NET oferuje potężne interfejsy API do obsługi takich konwersji dokumentów z minimalnym wysiłkiem.

See Also