แปรงโค้ดและการไล่ระดับสีของ XPS
โซลูชัน C++ API เพื่อทำงานกับแปรงและการไล่ระดับสีของไฟล์ XPS
โซลูชัน Aspose.Page API สำหรับ C++ ให้ความสามารถในการจัดการกราฟิกแบบเวกเตอร์ของไฟล์ XPS ช่วยให้คุณสร้างรูปทรงเรขาคณิตต่างๆ ที่มีสีและพื้นผิวต่างกัน เรียนรู้เพิ่มเติมเกี่ยวกับเอกสาร Aspose.Page เกี่ยวกับ วิธีการทำงานกับแปรง
ในการจัดการแปรงและการไล่ระดับสีของไฟล์ XPS เราต้องการ:
Aspose.Page สำหรับ C++ API ซึ่งเป็น API การจัดการและการแปลงเอกสารที่มีคุณลักษณะหลากหลาย ทรงพลัง และใช้งานง่ายสำหรับแพลตฟอร์ม C++
คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้โดยตรง เพียงแค่เปิด NuGet package manager แล้วค้นหา Aspose.Page.Cpp และติดตั้ง คุณสามารถใช้คำสั่งต่อไปนี้จาก Package Manager Console
Package Manager Console Command
PM> Install-Package Aspose.Page
ทำงานกับ Visual Brush ด้วย C++
Aspose.Page สำหรับ C++ API ช่วยให้คุณเพิ่มกริดให้กับไฟล์ XPS ของคุณโดยใช้โค้ดไม่กี่บรรทัด สามารถทำได้ทั้งเอกสารใหม่และเอกสารที่มีอยู่ คลาส XpsVisualBrush ใช้เพื่อตั้งค่าคุณสมบัติของกริด โดยใช้ XpsPathGeometry และ XpsCanvas วัตถุ ในการเพิ่มกริดให้กับเอกสาร XPS คุณจะต้องทำตามขั้นตอนเหล่านี้:
- การใช้คลาส XpsDocument สร้างวัตถุเอกสาร
- สร้างวัตถุ XpsPathGeometry โดยกำหนดส่วนที่จำเป็น
- ใช้คลาส XpsCanvas เพื่อตั้งค่าการแปลงการแสดงผล
- ปรับคุณสมบัติ Fill และ Opacity ตามต้องการ
- บันทึกเอกสารโดยเรียกเมธอด 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 สำหรับ C++ API ช่วยให้คุณเพิ่มกริดให้กับไฟล์ XPS ของคุณโดยใช้โค้ดไม่กี่บรรทัด สามารถทำได้ทั้งเอกสารใหม่และเอกสารที่มีอยู่ คลาส XpsVisualBrush ใช้เพื่อตั้งค่าคุณสมบัติของกริด โดยใช้ XpsPathGeometry และ XpsCanvas วัตถุ ในการเพิ่มกริดให้กับเอกสาร XPS คุณจะต้องทำตามขั้นตอนเหล่านี้:
- การใช้คลาส XpsDocument สร้างวัตถุเอกสาร
- สร้างวัตถุ XpsPathGeometry โดยกำหนดส่วนที่จำเป็น
- ใช้คลาส XpsCanvas เพื่อตั้งค่าการแปลงการแสดงผล
- ปรับคุณสมบัติ Fill และ Opacity ตามต้องการ
รหัส C ++ เพื่อแทรกการไล่ระดับสีในแนวนอนให้กับไฟล์ XPS
// 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. จะทำงานกับ Visual Brush ในไฟล์ XPS ได้อย่างไร?
กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร หากต้องการสร้างแปรงภาพให้ใช้เมธอด CreateVisualBrush()
3. เปิดไฟล์ .XPS ได้อย่างไร
ใช้โซลูชัน Aspose.Page API เพื่อ เปิด XPS ไฟล์โดยทางโปรแกรมหรือโดยวิธีข้ามแพลตฟอร์ม XPS Viewer
XPS XPS รูปแบบไฟล์คืออะไร
รูปแบบ XPS คล้ายกับรูปแบบ PDF ทั้งสองรูปแบบเป็นภาษาคำอธิบายหน้า (PDL) EPS อิงตาม HTML ไม่ใช่ภาษา PostScript ไฟล์ .eps สามารถใส่มาร์กอัปของโครงสร้างของเอกสารพร้อมกับข้อมูลเกี่ยวกับลักษณะของเอกสารได้ นอกจากนี้ยังมีคำแนะนำเพิ่มเติมเกี่ยวกับวิธีการพิมพ์และแสดงผลเอกสาร คุณสมบัติของรูปแบบคือ แก้ไขคำอธิบายของเอกสาร ซึ่งหมายความว่าจะมีลักษณะเหมือนกันไม่ว่าใครจะเปิดจากระบบปฏิบัติการใด