Bàn chải mã và độ dốc của XPS

Giải pháp API C++ để hoạt động với bút vẽ và độ dốc của tệp XPS.

 

Giải pháp API Aspose.Page cho C++ cung cấp cho bạn khả năng thao tác đồ họa vector của các tệp XPS. Nó cho phép bạn tạo các hình dạng hình học khác nhau với màu sắc và kết cấu khác nhau. Tìm hiểu thêm tài liệu Aspose.Page về cách làm việc với cọ vẽ .

Để thao tác cọ vẽ và chuyển màu của tệp XPS, chúng ta cần:

  • Aspose.Page cho API C++ là API chuyển đổi và thao tác tài liệu giàu tính năng, mạnh mẽ và dễ sử dụng cho nền tảng C++.

  • Bạn có thể trực tiếp tải xuống phiên bản mới nhất của nó, chỉ cần mở trình quản lý gói NuGet, tìm kiếm Aspose.Page.Cpp và cài đặt. Bạn cũng có thể sử dụng lệnh sau từ Bảng điều khiển quản lý gói.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Làm việc với bàn chải trực quan với C ++

API Aspose.Page cho C++ cho phép bạn thêm lưới vào các tệp XPS của mình bằng cách sử dụng một vài dòng mã. Điều này có thể được thực hiện cho cả tài liệu mới và tài liệu hiện có. Lớp XpsVisualBrush được sử dụng để đặt các thuộc tính của lưới, sử dụng XpsPathGeometryXpsCanvas . Để thêm lưới vào tài liệu XPS của bạn, bạn cần làm theo các bước sau:

  1. Sử dụng Lớp XpsDocument tạo đối tượng Tài liệu
  2. Tạo đối tượng XpsPathGeometry với các phân đoạn cần thiết được xác định.
  3. Sử dụng Lớp XpsCanvas để đặt chuyển đổi kết xuất.
  4. Điều chỉnh các thuộc tính FillOpacity như mong muốn.
  5. Lưu tài liệu bằng cách gọi phương thức Save().

Mã C++ để thêm lưới vào cọ vẽ trực quan

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

Thêm gradient ngang bằng C++.

API Aspose.Page cho C++ cho phép bạn thêm lưới vào các tệp XPS của mình bằng cách sử dụng một vài dòng mã. Điều này có thể được thực hiện cho cả tài liệu mới và tài liệu hiện có. Lớp XpsVisualBrush được sử dụng để đặt các thuộc tính của lưới, sử dụng XpsPathGeometryXpsCanvas . Để thêm lưới vào tài liệu XPS của bạn, bạn cần làm theo các bước sau:

  1. Sử dụng Lớp XpsDocument tạo đối tượng Tài liệu
  2. Tạo đối tượng XpsPathGeometry với các phân đoạn cần thiết được xác định.
  3. Sử dụng Lớp XpsCanvas để đặt chuyển đổi kết xuất.
  4. Điều chỉnh các thuộc tính FillOpacity như mong muốn.

Mã C++ để chèn gradient ngang vào tệp 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");



Câu hỏi thường gặp

1. Làm cách nào để thêm độ dốc vào tệp XPS?

Đặt đường dẫn đến thư mục tài liệu. Để thêm độ dốc, hãy sử dụng các phương thức CreateColor()CreateGradientStop().

2. Làm cách nào để làm việc với cọ vẽ trực quan trong tệp XPS?

Đặt đường dẫn đến thư mục tài liệu. Để tạo cọ vẽ trực quan, hãy sử dụng Phương thức CreateVisualBrush().

3. Làm cách nào để mở tệp XPS?

Sử dụng Giải pháp API Aspose.Page để mở XPS tệp theo chương trình hoặc bằng phương tiện đa nền tảng XPS Viewer .

XPS Những gì là XPS Tập Tin Định Dạng

Định dạng XPS tương tự như định dạng PDF. Cả hai đều là định dạng ngôn ngữ mô tả trang (PDL). EPS dựa trên HTML và không dựa trên ngôn ngữ PostScript. Tệp .eps có thể chứa phần đánh dấu cấu trúc của tài liệu cùng với thông tin về cách tài liệu sẽ trông như thế nào. Ngoài ra còn có các hướng dẫn bổ sung về cách in và kết xuất tài liệu. Đặc điểm của định dạng là nó sửa chữa mô tả của tài liệu, có nghĩa là nó sẽ trông giống nhau cho dù ai và từ hệ thống hoạt động nào mở nó ra.