Codieren Sie Pinsel und Farbverläufe von XPS

C++-API-Lösung zum Arbeiten mit Pinseln und Verläufen von XPS-Dateien.

 

Die Aspose.Page API-Lösung für C++ bietet Ihnen die Möglichkeit, die Vektorgrafiken von XPS-Dateien zu manipulieren. Sie können damit verschiedene geometrische Formen mit unterschiedlichen Farben und Texturen erstellen. Lernen Sie auch die Aspose.Page-Dokumentation über Arbeiten mit Pinseln .

Um Pinsel und Farbverläufe von XPS-Dateien zu manipulieren, benötigen wir:

  • Aspose.Page für die C++-API, eine funktionsreiche, leistungsstarke und einfach zu verwendende API zur Dokumentenbearbeitung und -konvertierung für die C++-Plattform.

  • Sie können die neueste Version direkt herunterladen, öffnen Sie einfach den NuGet-Paketmanager, suchen Sie nach Aspose.Page.Cpp und installieren Sie es. Sie können auch den folgenden Befehl in der Paket-Manager-Konsole verwenden.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Arbeiten Sie mit dem visuellen Pinsel mit C++

Mit der Aspose.Page für C++-API können Sie mit wenigen Codezeilen ein Raster zu Ihren XPS-Dateien hinzufügen. Dies kann sowohl für neue als auch für vorhandene Dokumente erfolgen. Die XpsVisualBrush-Klasse wird verwendet, um die Eigenschaften des Rasters festzulegen, wobei XpsPathGeometry und XpsCanvas -Objekte. Um Ihrem XPS-Dokument ein Raster hinzuzufügen, müssen Sie die folgenden Schritte ausführen:

  1. Erstellen Sie mit der Klasse XpsDocument ein Document-Objekt
  2. Erstellen Sie ein XpsPathGeometry-Objekt mit den erforderlichen definierten Segmenten.
  3. Verwenden Sie die XpsCanvas-Klasse, um die Rendering-Transformation festzulegen.
  4. Passen Sie die Eigenschaften Fill und Opacity wie gewünscht an.
  5. Speichern Sie das Dokument, indem Sie die Methode Save() aufrufen.

C++-Code zum Hinzufügen eines Rasters zu einem visuellen Pinsel

    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");

Fügen Sie mit C++ einen horizontalen Farbverlauf hinzu.

Mit der Aspose.Page für C++-API können Sie mit wenigen Codezeilen ein Raster zu Ihren XPS-Dateien hinzufügen. Dies kann sowohl für neue als auch für vorhandene Dokumente erfolgen. Die XpsVisualBrush-Klasse wird verwendet, um die Eigenschaften des Rasters festzulegen, wobei XpsPathGeometry und XpsCanvas -Objekte. Um Ihrem XPS-Dokument ein Raster hinzuzufügen, müssen Sie die folgenden Schritte ausführen:

  1. Erstellen Sie mit der Klasse XpsDocument ein Document-Objekt
  2. Erstellen Sie ein XpsPathGeometry-Objekt mit den erforderlichen definierten Segmenten.
  3. Verwenden Sie die XpsCanvas-Klasse, um die Rendering-Transformation festzulegen.
  4. Passen Sie die Eigenschaften Fill und Opacity wie gewünscht an.

C++-Code zum Einfügen eines horizontalen Farbverlaufs in eine XPS-Datei

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



FAQ

1. Wie kann ich einer XPS-Datei einen Farbverlauf hinzufügen?

Legen Sie den Pfad zum Dokumentenverzeichnis fest. Um einen Farbverlauf hinzuzufügen, verwenden Sie die Methoden CreateColor() und CreateGradientStop().

2. Wie arbeite ich mit einem visuellen Pinsel in einer XPS-Datei?

Legen Sie den Pfad zum Dokumentenverzeichnis fest. Um einen visuellen Pinsel zu erstellen, verwenden Sie die Methode CreateVisualBrush().

3. Wie öffne ich eine XPS-Datei?

Verwenden Sie die Aspose.Page API-Lösung, um open XPS Dateien programmgesteuert oder plattformübergreifend XPS Viewer zu erstellen.

XPS Was ist XPS Dateiformat

Das XPS-Format ähnelt dem PDF-Format. Beides sind Formate der Seitenbeschreibungssprache (PDL). EPS basiert auf HTML und nicht auf der PostScript-Sprache. Die .eps-Datei kann ein Markup der Dokumentstruktur zusammen mit Informationen darüber enthalten, wie das Dokument aussehen würde. Es gibt auch Anweisungen zum Drucken und Rendern des Dokuments. Das Merkmal des Formats ist, dass es die Beschreibung des Dokuments festlegt, was bedeutet, dass es gleich aussieht, egal wer und von welchem ​​​​Betriebssystem es öffnet.