คอยควบคุมโค้ดแปลงแปรงการทำงานรวมถึงการตั้งค่าไล่ระดับสีผ่านระบบ XPS
โซลูชัน C++ API เพื่อเข้าประมวลผลแปรงจำลอง (brushes) และการไล่ระดับสีบนไฟล์ XPS
C++ โซลูชัน Aspose.Page API จะคอยซัพพอร์ตคุณให้ลงลึกระดับประมวลผลกราฟฟิกเลเยอร์แบบเวคเตอร์บนไฟล์ XPS นอกจากนี้ยังรองรับการปั้นรูปทรงเรขาคณิตในสีรวมถึงผิวสัมผัสรูปแปลกตาไปจากเดิม คุณสามารถอ่านข้อมูลของ ความสามารถของโหมด brush เพิ่มเติมได้ที่เอกสาร Aspose.Page
ถ้าต้องการปรับตั้งค่าให้คำสั่ง brushes หรือ gradients ในไฟล์ XPS ใช้งานได้ คุณจำเป็นต้องมี:
C++ API Aspose.Page ตัวควบคุมอันทรงประสิทธิภาพที่ทั้งยอดเยี่ยม ใช้งานแปลงเอกสารและแต่งเติมไฟล์ของคุณได้ดี
ซึ่งคุณสามารถหาดาวน์โหลดเอาเวอร์ชั่นใหม่มาใช้งานได้โดยตรงบนแพ็กเกจ NuGet (NuGet package manager) แล้วมองหาฟีเจอร์นี้ผ่าน Aspose.Page.Cpp จากนั้นกดติดตั้งลงเครื่องได้เลย หรือคุณสามารถเปิดแพ็กเกจนี้ผ่านคำสั่ง Package Manager Console บนเครื่องของคุณก็ได้
Package Manager Console Command
PM> Install-Package Aspose.Page.Cpp
การควบคุมคำสั่งของ visual brushes ด้วย C++
C++ API ของ Aspose.Page จะทำให้คุณปรับแต่ง XPS file ของคุณด้วย grid pattern ซึ่งเป็นรูปแบบที่จัดมาในรูปแบบชุดคำสั่งเพื่อประมวลผลสำหรับทำลายเส้นทั้งบนเอกสารแบบใหม่และรูปแบบเดิม โครงสร้างข้อมูลหรือคลาส XpsVisualBrush ช่วยให้สามารถนำเอา XpsPathGeometry และ XpsCanvas มาวาดเส้นตารางเหล่านั้นออกมาเป็นชิ้นเป็นอันได้ แต่การที่ประมวลมันออกมาโชว์บนงาน XPS file ได้นั้นจะต้องทำตามขั้นตอนนี้ซะก่อน:
- ใช้คลาสข้อมูล XpsDocument คอยสร้างตัวเอกสารที่ต้องการ (Document object)
- สร้างข้อมูล XpsPathGeometry พร้อมกำหนดส่วนระบุขอบเขต (segments) การวาดที่จำเป็นแล้วลงโค้ด
- ใช้โครงสร้าง XpsCanvas คลาสเข้าคุมสั่งให้เกิดลายเส้นหรือทรานสฟอร์มแปลงค่า (rendering transformation)
- ทำการปรับเปลี่ยนสี (Fill) ตลอดจนถึงความทึบแสงในงาน (Opacity) ได้ตามใจชอบ
- ทำการบันทึกข้อมูลหน้ากระดาษไว้เพื่อประมวลผลด้วย Save() Method
Namespaces in use
using Aspose::Page::XPS;
using Aspose::Page::XPS::XpsModel;
using System::Drawing;
ระบบแปรง visual brush เปิดเข้าถึงเส้นตารางโครงภาพวาดเสมือน (grid)
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithVisualBrush();
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();
// Geometry for 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));
// Canvas for 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->AddPath(pathGeometry);
//Create 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::ExplicitCast<Aspose::Page::XPS::XpsModel::XpsVisualBrush>(gridPath->get_Fill()))->set_TileMode(Aspose::Page::XPS::XpsModel::XpsTileMode::Tile);
// 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 grid
canvas->AddPath(pathGeometry);
// 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 resultant XPS document
doc->Save(dataDir + u"output/" + u"AddGrid_out.xps");
เพิ่มกราฟิกสั่งระบบไล่ระดับสีแนวนอน (horizontal gradient) ด้วย C++
แพลตฟอร์ม C++ พร้อมโซลูชัน Aspose.Page API ยินดีให้เราเปิดรับโค้ดรันกราฟิกไล่ระดับสีหรือ gradients มากมายหลายรูปแบบผ่านคลาสคลาส XpsGradientBrush โหมดคลาสชนิดนี้ถูกดีไซน์สร้างมาเพื่อกำหนดคุณสมบัติให้ XpsGradientStop หรือ XpsPath ซึ่งถือว่าเป็น Object กลุ่ม XpsDocument บนไฟล์ XPS ในตัวเอง มาดูวิธีตัวอย่างง่ายตามต่อไปนี้ดีกว่า:
- เริ่มต้นการทำงานที่ (Initialize) object ไฟล์ XpsDocument
- ตั้งค่าตัวแปร XpsGradientStop และ XpsPath ของเอกสาร XPS file
- ตั้งค่าแบบจำลองเรนเดอร์ข้อมูล (rendering information)
- ให้บันทึกไฟล์ด้วยฟังก์ชัน Save() Method
ทำรูปแสดงบน XPS ให้โชว์ด้วย horizontal gradient
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithGradient();
// Create new XPS Document
System::SharedPtr<XpsDocument> 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::ExplicitCast<Aspose::Page::XPS::XpsModel::XpsGradientBrush>(path->get_Fill()))->get_GradientStops()->AddRange(stops);
// Save resultant XPS document
doc->Save(dataDir + u"output/" + u"AddHorizontalGradient_outXPS.xps");XPS XPS รูปแบบไฟล์คืออะไร
XPS (XML Paper Specification) เป็นรูปแบบทางเลือกของ Microsoft ต่อ PDF พื้นฐานบน XML/HTML รักษาเลย์เอาต์ข้ามแพลตฟอร์มและไม่ขึ้นกับระบบปฏิบัติการ