XPS のコード ブラシとグラデーション

XPS ファイルのブラシとグラデーションを操作する C++ API ソリューション。

 

Aspose.Page API Solution for C++ は、XPS ファイルのベクター グラフィックスを操作する機能を提供します。さまざまな色とテクスチャを使用して、さまざまな幾何学的形状を作成できます。 ブラシの使用方法 に関する Aspose.Page ドキュメントも参照してください。

XPS ファイルのブラシとグラデーションを操作するには、次のものが必要です。

  • Aspose.Page for C++ API は、C++ プラットフォーム向けの機能が豊富で強力で使いやすいドキュメント操作および変換 API です。

  • 最新バージョンを直接ダウンロードできます。NuGet パッケージ マネージャーを開き、Aspose.Page.Cpp を検索してインストールします。パッケージ マネージャー コンソールから次のコマンドを使用することもできます。

Package Manager Console Command


    PM> Install-Package Aspose.Page

C++ でビジュアル ブラシを操作する

Aspose.Page for C++ API を使用すると、数行のコードを使用して XPS ファイルにグリッドを追加できます。これは、新しいドキュメントと既存のドキュメントの両方に対して実行できます。 XpsVisualBrush クラスは、 XpsPathGeometryXpsCanvas オブジェクト。 XPS ドキュメントにグリッドを追加するには、次の手順に従う必要があります。

  1. XpsDocument クラスを使用して Document オブジェクトを作成する
  2. 必要なセグメントが定義された XpsPathGeometry オブジェクトを作成します。
  3. XpsCanvas クラスを利用して、レンダリング変換を設定します。
  4. 必要に応じて Fill および Opacity プロパティを調整します。
  5. Save() メソッドを呼び出してドキュメントを保存します。

ビジュアル ブラシにグリッドを追加する C++ コード

    using Aspose::Page::XPS;
    using Aspose::Page::XPS::XpsModel;
    using System::Drawing;
    // Create geometry for a magenta grid VisualBrush
    System::SharedPtr<XpsPathGeometry> pathGeometry = doc->CreatePathGeometry();
    pathGeometry->AddSegment(doc->CreatePolyLineSegment(System::MakeArray<System::Drawing::PointF>({ System::Drawing::PointF(240.f, 5.f), System::Drawing::PointF(240.f, 310.f), System::Drawing::PointF(0.f, 310.f) })));
    pathGeometry->idx_get(0)->set_StartPoint(System::Drawing::PointF(0.f, 5.f));

    // Create canvas for the magenta grid VisualBrush
    System::SharedPtr<XpsCanvas> visualCanvas = doc->CreateCanvas();

    System::SharedPtr<XpsPath> visualPath = visualCanvas->AddPath(doc->CreatePathGeometry(u"M 0,4 L 4,4 4,0 6,0 6,4 10,4 10,6 6,6 6,10 4,10 4,6 0,6 Z"));
    visualPath->set_Fill(doc->CreateSolidColorBrush(doc->CreateColor(1.f, .61f, 0.1f, 0.61f)));

    System::SharedPtr<XpsPath> gridPath = doc->CreatePath(pathGeometry);
    // Create a Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs)
    gridPath->set_Fill(doc->CreateVisualBrush(visualCanvas, System::Drawing::RectangleF(0.f, 0.f, 10.f, 10.f), System::Drawing::RectangleF(0.f, 0.f, 10.f, 10.f)));
    (System::DynamicCast<Aspose::Page::Xps::XpsModel::XpsVisualBrush>(gridPath->get_Fill()))->set_TileMode(Aspose::Page::Xps::XpsModel::XpsTileMode::Tile);

    // Create a new canvas
    System::SharedPtr<XpsCanvas> canvas = doc->AddCanvas();
    canvas->set_RenderTransform(doc->CreateMatrix(1.f, 0.f, 0.f, 1.f, 268.f, 70.f));

    // Add a grid
    canvas->AddPath(gridPath);

    // Create a red transparent rectangle in the middle top
    System::SharedPtr<XpsPath> path = canvas->AddPath(doc->CreatePathGeometry(u"M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
    path = canvas->AddPath(doc->CreatePathGeometry(u"M 10,10 L 228,10 228,100 10,100"));
    path->set_Fill(doc->CreateSolidColorBrush(doc->CreateColor(1.0f, 0.0f, 0.0f)));
    path->set_Opacity(0.7f);

    // Save the resultant XPS document
    doc->Save(outDir() + u"AddGrid_out.xps");

C++ で水平グラデーションを追加します。

Aspose.Page for C++ API を使用すると、数行のコードを使用して XPS ファイルにグリッドを追加できます。これは、新しいドキュメントと既存のドキュメントの両方に対して実行できます。 XpsVisualBrush クラスは、 XpsPathGeometryXpsCanvas オブジェクト。 XPS ドキュメントにグリッドを追加するには、次の手順に従う必要があります。

  1. XpsDocument クラスを使用して Document オブジェクトを作成する
  2. 必要なセグメントが定義された XpsPathGeometry オブジェクトを作成します。
  3. XpsCanvas クラスを利用して、レンダリング変換を設定します。
  4. 必要に応じて Fill および Opacity プロパティを調整します。

XPS ファイルに水平グラデーションを挿入する C++ コード

    // Create new XPS Document
    auto doc = System::MakeObject<XpsDocument>();

    // Initialize List of XpsGradentStop
    System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<XpsGradientStop>>> stops = System::MakeObject<System::Collections::Generic::List<System::SharedPtr<XpsGradientStop>>>();
    stops->Add(doc->CreateGradientStop(doc->CreateColor(255, 244, 253, 225), 0.0673828f));
    stops->Add(doc->CreateGradientStop(doc->CreateColor(255, 251, 240, 23), 0.314453f));
    stops->Add(doc->CreateGradientStop(doc->CreateColor(255, 252, 209, 0), 0.482422f));
    stops->Add(doc->CreateGradientStop(doc->CreateColor(255, 241, 254, 161), 0.634766f));
    stops->Add(doc->CreateGradientStop(doc->CreateColor(255, 53, 253, 255), 0.915039f));
    stops->Add(doc->CreateGradientStop(doc->CreateColor(255, 12, 91, 248), 1.f));

    // Create new path by defining geometery in abbreviation form
    System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 10,210 L 228,210 228,300 10,300"));
    path->set_RenderTransform(doc->CreateMatrix(1.f, 0.f, 0.f, 1.f, 20.f, 70.f));
    path->set_Fill(doc->CreateLinearGradientBrush(System::Drawing::PointF(10.f, 0.f), System::Drawing::PointF(228.f, 0.f)));
    (System::DynamicCast<Aspose::Page::Xps::XpsModel::XpsGradientBrush>(path->get_Fill()))->get_GradientStops()->AddRange(stops);

    // Save resultant XPS document
    doc->Save(outDir() + u"AddHorizontalGradient_out.xps");



よくある質問

1. XPS ファイルにグラデーションを追加するにはどうすればよいですか?

ドキュメントディレクトリへのパスを設定します。グラデーションを追加するには、CreateColor() メソッドと CreateGradientStop() メソッドを使用します。

2. XPS ファイルでビジュアル ブラシを使用するにはどうすればよいですか?

ドキュメントディレクトリへのパスを設定します。ビジュアル ブラシを作成するには、CreateVisualBrush() メソッドを使用します。

3. XPSファイルを開くにはどうすればよいですか?

Aspose.Page API ソリューションを使用して、プログラムまたはクロスプラットフォームの XPS Viewer ファイルを XPS を開く します。

XPS XPS ファイル形式とは

XPS 形式は PDF 形式に似ています。どちらもページ記述言語 (PDL) 形式です。 EPS は PostScript 言語ではなく、HTML に基づいています。 .eps ファイルには、ドキュメントの構造のマークアップと、ドキュメントがどのように見えるかに関する情報を含めることができます。また、ドキュメントを印刷およびレンダリングする方法についての説明も追加されています。この形式の特徴は、ドキュメントの説明を修正することです。つまり、誰が、どのオペレーティング システムからドキュメントを開いたとしても、同じように表示されます。