XPSおよびOXPSファイルは、解像度に依存しないため、印刷に頻繁に使用されます。ただし、XPSをPDFに、またはOXPSをPDFに変換する必要がある場合があります。 Aspose.Page for .NET APIを使用すると、これらの変換を忠実かつ迅速に実行できます。次のユースケースを調べてみましょう。

C#を使用してプログラムでXPSをPDFに変換する

XPSからPDFへの変換は、Aspose.Page for.NET APIを使用すると簡単です。 XPSファイル変換を実行するための次のアプローチを学習します。

i)C#でXPSの特定のページをPDFに変換する

XPSドキュメントの選択したページをPDFに変換するには、以下の手順に従ってください。

  1. XPS入力ストリームを初期化します
  2. ストリームからXPSドキュメントをロードする
  3. PdfSaveOptionsオブジェクトを初期化します
  4. 変換するページ番号を指定する
  5. ドキュメントをPDFファイルとして保存します

以下のコードスニペットは、次の手順に従い、C#を使用してXPSをPDFに変換する方法を示しています。

// PDF出力ストリームを初期化します
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// XPS入力ストリームを初期化します
//using(System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps"、System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
    // ストリームからXPSドキュメントをロードする
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // または、ファイルから直接XPSドキュメントをロードします。その場合、xpsStreamは必要ありません。
    // XpsDocument document = new XpsDocument(inputFileName、new XpsLoadOptions());

    // オプションオブジェクトを必要なパラメータで初期化します。
    Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
    {
        JpegQualityLevel = 100,
        ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
        TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
        PageNumbers = new int[] {1, 3}
    };
    // PDF形式のレンダリングデバイスを作成する
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

このコードスニペットは、入力ファイルとして複数のページを含むXPSドキュメントを使用します。一方、コードスニペットで指定されているように、ページ番号1と3のみがPDFに変換されます。次のスクリーンショットは、PDFドキュメントにレンダリングされた2ページを示しています。

XPSからPDFへ

ii)C#でXPSのすべてのページをPDFに変換する

XPSファイル全体をPDFに変換できます。以下の手順に従うと、XPSファイルのすべてのページがPDFファイルに変換されます。

  1. 入力XPSファイルをロードする
  2. 必要なパラメータを使用してオプションオブジェクトを初期化します
  3. レンダリング用のPdfDeviceのインスタンスを作成します
  4. XPSをPDFドキュメントにエクスポートする

以下のコードスニペットは、C#言語を使用してXPSファイルをPDFに変換する方法を示すこれらすべての手順に基づいています。

// PDF出力ストリームを初期化します
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// XPS入力ストリームを初期化します
//using(System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps"、System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
// ストリームからXPSドキュメントをロードする
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// または、ファイルから直接XPSドキュメントをロードします。その場合、xpsStreamは必要ありません。
// XpsDocument document = new XpsDocument(inputFileName、new XpsLoadOptions());

// オプションオブジェクトを必要なパラメータで初期化します。
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
    JpegQualityLevel = 100,
    ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
    TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// PDF形式のレンダリングデバイスを作成する
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

C#を使用してOXPSをPDFに変換する

OXPS形式は、XPSファイル形式の更新された高度な形式です。ただし、このようなファイルは、一部の古いオペレーティングシステムではサポートされていません。 Aspose.Page for .NET APIは、OXPSファイルも変換できます。次の使用シナリオの学習に進みましょう。

i)OXPSの一部のページをC#でPDFに変換する

OXPSファイルには多くのページが含まれている場合があり、以下の手順に従って、任意の数のページをPDFに変換できます。

  1. OXPSファイルをロードする
  2. PdfSaveOptionsオブジェクトを宣言します
  3. 変換するページ番号を設定します
  4. OXPSをPDFにレンダリング

次のコードスニペットは、C#を使用してOXPSをPDFに変換する方法を示しています。コードスニペットに記載されているように、OXPSファイルの最初のページをPDFに変換します。

// PDF出力ストリームを初期化します
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// OXPS入力ストリームを初期化します
//using(System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps"、System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
    // ストリームからOXPSドキュメントをロードする
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // または、ファイルから直接XPSドキュメントをロードします。その場合、xpsStreamは必要ありません。
    // XpsDocument document = new XpsDocument(inputFileName、new XpsLoadOptions());

    // オプションオブジェクトを必要なパラメータで初期化します。
    Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
    {
        JpegQualityLevel = 100,
        ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
        TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
        PageNumbers = new int[] {1}
    };
    // PDF形式のレンダリングデバイスを作成する
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

ii)OXPSのすべてのページをC#でPDFに変換する

OXPSのすべてのページの変換は簡単で、上記で検討した例に関連しています。以下の手順に従って、OXPSファイルのすべてのページを単一のPDFドキュメントに変換しましょう。

  1. OXPS入力ストリームを初期化します
  2. ストリームからOXPSファイルをロードします
  3. PdfSaveOptionsクラスのオブジェクトをインスタンス化します
  4. OXPSをPDFファイルにエクスポート

以下のコードスニペットは、これらの手順を1つずつ実行し、C#を使用してOXPSをPDFに変換します。

// PDF出力ストリームを初期化します
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// OXPS入力ストリームを初期化します
//using(System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps"、System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
// ストリームからOXPSドキュメントをロードする
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// または、OXPSドキュメントをファイルから直接ロードします。その場合、xpsStreamは必要ありません。
// XpsDocument document = new XpsDocument(inputFileName、new XpsLoadOptions());

// オプションオブジェクトを必要なパラメータで初期化します。
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
    JpegQualityLevel = 100,
    ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
    TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// PDF形式のレンダリングデバイスを作成する
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

結論

この記事では、C#を使用してプログラムでXPSをPDFに、OXPSをPDFに変換する方法を学習しました。 C#のコード例とスクリーンショットを使用して、忠実度が高く、効率的で、迅速なファイル形式変換について学習しました。 APIドキュメントおよびAPIリファレンスを使用して、Aspose.Page for .NETAPIをさらに詳しく調べることができます。また、無料サポートフォーラムでお気軽にお問い合わせください。

関連項目