XPSをC#でBMPに変換する

C# で XPS ファイルを BMP 画像に変換することは、印刷、アーカイブ、または画像処理ワークフローに統合するために XPS ドキュメントの視覚的表現を抽出する必要があるときの一般的な要件です。Conholdate.Total for .NET を使用すると、このタスクは簡単かつ効率的になります。


XPS を BMP に変換する理由は何ですか?

ここにXPSをBMPに変換する必要がある理由がいくつかあります:

  • 高品質の出力:BMPは完全な画像の忠実度を保持し、印刷やデザイン作業に便利です。
  • 簡略化された共有: BMP 画像は、プラットフォーム間で簡単に開いて表示できます。
  • データ抽出: 分析やOCRのためのページレベルのコンテンツを抽出します。
  • バッチ処理: .NET 自動化を使用して、一度に複数のページまたはドキュメントを変換します。

XPSをC#でBMPに変換する

以下の手順に従って変換を行ってください:

  1. XpsDocument クラスを使用して XPS ドキュメントをロードします。
  2. BmpSaveOptions のインスタンスを作成して構成します。
  3. SaveAsImage メソッドを呼び出して BMP 画像のバイト配列を生成します。
  4. 各ページを反復処理し、画像をディスクに保存します。

XPSをC#でBMPに変換する

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

このコードは、C#でXPSドキュメントをBMP画像に変換する完全なプロセスを示しています。XPSファイルは、XpsDocumentクラスとXpsLoadOptionsを使用してロードされ、レンダリングの準備が整えられます。次に、画像の解像度、スムージングモード、および変換する特定のページを設定できるBmpSaveOptionsオブジェクトが初期化されます。これにより、すべてのページが別々に保存され、明確なラベル付けが行われるため、生成された画像をさらにアプリケーションで管理したり使用したりするのが容易になります。全体として、このメソッドは、XPSコンテンツをBMP形式で抽出し、保存するための非常に効率的な方法を提供します。

結論

C# で XPS ドキュメントを BMP 画像に変換することで、開発者はラスタライズされた画像出力を生成し、容易な統合、アーカイブ、またはさらなる処理を行うことができます。 Conholdate.Total for .NET は、このようなドキュメント変換を最小限の手間で処理するための強力な API を提供します。

See Also