Travailler avec le pinceau visuel | C++
Contents
[
Hide
Show
]Ajouter une grille à l’aide de Visual Brush
Aspose.Page pour l’API C++ vous permet d’ajouter une grille au document XPS. La grille peut être ajoutée à des documents XPS nouveaux ou existants à l’aide de simples lignes de code dans les applications C++. Ceci peut être réalisé en utilisant la classe XpsVisualBrush utilisée pour spécifier les propriétés de la grille avec les objets XpsPathGeometry et XpsCanvas.
Pour ajouter une grille au document XPS, suivez les étapes comme ce code :
1For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-C
2auto doc = System::MakeObject<XpsDocument>();
3// Geometry for magenta grid VisualBrush
4System::SharedPtr<XpsPathGeometry> pathGeometry = doc->CreatePathGeometry();
5pathGeometry->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) })));
6pathGeometry->idx_get(0)->set_StartPoint(System::Drawing::PointF(0.f, 5.f));
7
8// Canvas for magenta grid VisualBrush
9System::SharedPtr<XpsCanvas> visualCanvas = doc->CreateCanvas();
10
11System::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"));
12visualPath->set_Fill(doc->CreateSolidColorBrush(doc->CreateColor(1.f, .61f, 0.1f, 0.61f)));
13
14System::SharedPtr<XpsPath> gridPath = doc->AddPath(pathGeometry);
15//Create Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs)
16gridPath->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)));
17(System::DynamicCast<Aspose::Page::Xps::XpsModel::XpsVisualBrush>(gridPath->get_Fill()))->set_TileMode(Aspose::Page::Xps::XpsModel::XpsTileMode::Tile);
18// New canvas
19System::SharedPtr<XpsCanvas> canvas = doc->AddCanvas();
20canvas->set_RenderTransform(doc->CreateMatrix(1.f, 0.f, 0.f, 1.f, 268.f, 70.f));
21// Add grid
22canvas->AddPath(gridPath);
23// Red transparent rectangle in the middle top
24System::SharedPtr<XpsPath> path = canvas->AddPath(doc->CreatePathGeometry(u"M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
25path = canvas->AddPath(doc->CreatePathGeometry(u"M 10,10 L 228,10 228,100 10,100"));
26path->set_Fill(doc->CreateSolidColorBrush(doc->CreateColor(1.0f, 0.0f, 0.0f)));
27path->set_Opacity(0.7f);
28// Save resultant XPS document
29doc->Save(outDir() + u"AddGrid_out.xps");
Le résultat est le suivant