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 클래스는 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 for C++ API를 사용하면 몇 줄의 코드를 사용하여 XPS 파일에 그리드를 추가할 수 있습니다. 새 문서와 기존 문서 모두에 대해 이 작업을 수행할 수 있습니다. XpsVisualBrush 클래스는 XpsPathGeometry 및 XpsCanvas 객체. XPS 문서에 격자를 추가하려면 다음 단계를 따라야 합니다.
- XpsDocument 클래스를 사용하여 문서 개체를 만듭니다.
- 필요한 세그먼트가 정의된 XpsPathGeometry 개체를 만듭니다.
- XpsCanvas 클래스를 활용하여 렌더링 변환을 설정합니다.
- Fill 및 Opacity 속성을 원하는 대로 조정합니다.
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 파일은 문서가 어떻게 생겼는지에 대한 정보와 함께 문서 구조의 마크업을 포함할 수 있습니다. 문서를 인쇄하고 렌더링하는 방법에 대한 지침도 추가되었습니다. 형식의 특징은 문서의 설명을 수정한다는 것입니다. 즉, 누가, 어떤 운영 체제에서 문서를 열더라도 동일하게 보일 것입니다.