XPS의 코드 브러시 및 그라디언트

XPS 파일의 브러시 및 그라데이션 작업을 위한 C++ API 솔루션입니다.

 

C++용 Aspose.Page API 솔루션은 XPS 파일의 벡터 그래픽을 조작하는 기능을 제공합니다. 다양한 색상과 질감으로 다양한 기하학적 모양을 만들 수 있습니다. 브러시 작업 방법 에 대한 Aspose.Page 문서도 알아보세요.

XPS 파일의 브러시 및 그라디언트를 조작하려면 다음이 필요합니다.

  • Aspose.Page for C++ API는 기능이 풍부하고 강력하며 사용하기 쉬운 C++ 플랫폼용 문서 조작 및 변환 API입니다.

  • 최신 버전을 직접 다운로드하고 NuGet 패키지 관리자를 열고 Aspose.Page.Cpp를 검색하여 설치할 수 있습니다. 패키지 관리자 콘솔에서 다음 명령을 사용할 수도 있습니다.

Package Manager Console Command


    PM> Install-Package Aspose.Page

C++로 비주얼 브러시 작업

Aspose.Page for C++ API를 사용하면 몇 줄의 코드를 사용하여 XPS 파일에 그리드를 추가할 수 있습니다. 새 문서와 기존 문서 모두에 대해 이 작업을 수행할 수 있습니다. XpsVisualBrush 클래스는 XpsPathGeometryXpsCanvas 객체. XPS 문서에 격자를 추가하려면 다음 단계를 따라야 합니다.

  1. XpsDocument 클래스를 사용하여 문서 개체를 만듭니다.
  2. 필요한 세그먼트가 정의된 XpsPathGeometry 개체를 만듭니다.
  3. XpsCanvas 클래스를 활용하여 렌더링 변환을 설정합니다.
  4. FillOpacity 속성을 원하는 대로 조정합니다.
  5. 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 for C++ API를 사용하면 몇 줄의 코드를 사용하여 XPS 파일에 그리드를 추가할 수 있습니다. 새 문서와 기존 문서 모두에 대해 이 작업을 수행할 수 있습니다. XpsVisualBrush 클래스는 XpsPathGeometryXpsCanvas 객체. XPS 문서에 격자를 추가하려면 다음 단계를 따라야 합니다.

  1. XpsDocument 클래스를 사용하여 문서 개체를 만듭니다.
  2. 필요한 세그먼트가 정의된 XpsPathGeometry 개체를 만듭니다.
  3. XpsCanvas 클래스를 활용하여 렌더링 변환을 설정합니다.
  4. FillOpacity 속성을 원하는 대로 조정합니다.

XPS 파일에 가로 그라데이션을 삽입하는 C++ 코드

    // 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. XPS 파일에서 시각적 브러시로 작업하는 방법은 무엇입니까?

문서 디렉터리의 경로를 설정합니다. 시각적 브러시를 만들려면 CreateVisualBrush() 메서드를 사용하세요.

3. XPS 파일을 여는 방법? .

Aspose.Page API 솔루션을 사용하여 프로그래밍 방식으로 또는 크로스 플랫폼 XPS 뷰어 를 통해 XPS 열기 파일을 사용하세요.

XPS XPS 파일 형식이란 무엇입니까?

XPS 형식은 PDF 형식과 유사합니다. 둘 다 PDL(페이지 설명 언어) 형식입니다. EPS는 PostScript 언어가 아닌 HTML을 기반으로 합니다. .eps 파일은 문서가 어떻게 생겼는지에 대한 정보와 함께 문서 구조의 마크업을 포함할 수 있습니다. 문서를 인쇄하고 렌더링하는 방법에 대한 지침도 추가되었습니다. 형식의 특징은 문서의 설명을 수정한다는 것입니다. 즉, 누가, 어떤 운영 체제에서 문서를 열더라도 동일하게 보일 것입니다.