XPS 파일을 쉽게 생성, 편집 또는 조작할 수 있습니다. 또한 요구 사항에 따라 내용과 위치를 제어할 수 있습니다. C++ 언어를 사용하여 프로그래밍 방식으로 XPS 파일에 이미지나 텍스트를 삽입할 수 있습니다. 다음 주제에서 이 기능을 자세히 살펴보겠습니다.
- XPS 파일의 텍스트 또는 이미지 콘텐츠 작업 - API 설치
- C++를 사용하여 XPS 파일에 텍스트 추가
- C++에서 유니코드 문자열을 사용하여 XPS 파일에 텍스트 추가
- C++를 사용하여 XPS 문서에 이미지 삽입
- C++를 사용하여 XPS 파일에 타일 이미지 삽입
XPS 파일의 텍스트 또는 이미지 콘텐츠 작업 - API 설치
C++ 응용 프로그램의 XPS 파일에 텍스트 또는 이미지 콘텐츠를 추가할 수 있습니다. 요구 사항에 따라 작업을 수행할 수 있는 API 호출이 거의 없으므로 문서의 파일 형식에 대한 사소한 세부 사항을 고려할 필요가 없습니다. Aspose.Page for C++ API는 New Releases에서 다운로드하거나 아래의 NuGet 설치 명령을 사용하여 쉽게 구성할 수 있습니다.
PM> Install-Package Aspose.Page.Cpp
C++를 사용하여 XPS 파일에 텍스트 추가
텍스트는 XPS 파일에서 일부 그림, 이미지 또는 기타 콘텐츠에 레이블을 지정하는 데 사용할 수 있습니다. 마찬가지로 텍스트를 파일의 워터마크로 사용할 수도 있습니다. XPS 파일에 텍스트를 추가하거나 삽입하려면 아래 단계를 따라야 합니다.
- 새 XPS 문서 만들기
- 텍스트를 추가할 브러시 만들기
- 문서에 글리프 추가
- 출력 XPS 문서 저장
아래 코드는 C++를 사용하여 XPS 파일에 텍스트를 추가하는 방법을 보여줍니다.
// 새 XPS 문서 만들기
auto doc = System::MakeObject<XpsDocument>();
//브러시 만들기
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
//문서에 글리프 추가
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 300.f, 450.f, u"Hello World!");
glyphs->set_Fill(textFill);
// 결과 XPS 문서 저장
doc->Save(RunExamples::outDir() + u"AddText_out.xps");
C++에서 유니코드 문자열을 사용하여 XPS 파일에 텍스트 추가
XPS 파일에 간단한 텍스트 문자열을 추가하는 방법을 배웠습니다. 계속해서 XPS 파일에 유니코드 문자열을 추가해야 하는 시나리오를 고려해 보겠습니다. 유니코드 문자열을 기반으로 XPS 파일에 텍스트를 추가하려면 아래 단계를 따라야 합니다.
- 새 XPS 문서 만들기
- 유니코드 텍스트 추가
- 출력 XPS 문서 저장
다음 코드는 이러한 단계를 기반으로 하며 C++ 언어의 유니코드 문자열을 사용하여 XPS 파일에 텍스트를 추가하는 방법을 보여줍니다.
// 새 XPS 문서 만들기
auto doc = System::MakeObject<XpsDocument>();
// 텍스트 추가
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 20.0f, System::Drawing::FontStyle::Regular, 400.f, 200.f, u"++C. rof SPX.esopsA");
glyphs->set_BidiLevel(1);
glyphs->set_Fill(textFill);
// 결과 XPS 문서 저장
doc->Save(RunExamples::outDir() + u"AddText_unicode.xps");
C++를 사용하여 XPS 문서에 이미지 삽입
이미지는 많은 시각적 정보를 포함할 수 있으므로 API는 C++ 애플리케이션의 XPS 파일에 이미지 삽입을 지원합니다. Aspose.Page for C++ API를 사용하면 아래 단계에 따라 XPS 파일에 그림이나 이미지를 삽입할 수 있습니다.
- 새 XPS 문서 만들기
- 입력 이미지 로드
- 행렬 생성 및 ImageBrush
- 출력 XPS 파일 저장
아래 코드 예제는 C++를 사용하여 XPS 문서에 이미지를 삽입하는 방법을 보여줍니다.
// 새 XPS 문서 만들기
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();
// 이미지 추가
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
// 행렬 생성은 선택 사항이며 적절한 위치 지정에 사용할 수 있습니다.
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));
//이미지 브러시 만들기
path->set_Fill(doc->CreateImageBrush(RunExamples::dataDir() + u"QL_logo_color.tif", System::Drawing::RectangleF(0.f, 0.f, 258.24f, 56.64f), System::Drawing::RectangleF(50.f, 20.f, 193.68f, 42.48f)));
// 결과 XPS 문서 저장
doc->Save(RunExamples::outDir() + u"AddImage_out.xps");
C++를 사용하여 XPS 파일에 타일 이미지 삽입
XPS 파일에 이미지를 추가하거나 삽입하는 첫 번째 단계를 배웠으니 XPS 문서에 타일 이미지를 삽입하는 관련 예제를 진행해 보겠습니다. 다음은 XPS 파일에 타일 이미지를 추가하는 단계입니다.
- 새 XPS 문서 만들기
- ImageBrush 채워진 사각형 추가
- 타일 이미지 추가
- 결과 XPS 문서 저장
다음 코드 조각은 C++를 사용하여 XPS 파일에 타일 이미지를 추가하는 방법을 보여줍니다.
// 새 XPS 문서 만들기
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();
// 타일 이미지
// 오른쪽 상단 벨로우즈에 ImageBrush 채워진 사각형
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 10,160 L 228,160 228,305 10,305"));
path->set_Fill(doc->CreateImageBrush(RunExamples::dataDir() + u"R08LN_NN.jpg", System::Drawing::RectangleF(0.f, 0.f, 128.f, 96.f), System::Drawing::RectangleF(0.f, 0.f, 64.f, 48.f)));
(System::DynamicCast<Aspose::Page::Xps::XpsModel::XpsImageBrush>(path->get_Fill()))->set_TileMode(Aspose::Page::Xps::XpsModel::XpsTileMode::Tile);
path->get_Fill()->set_Opacity(0.5f);
// 결과 XPS 문서 저장
doc->Save(RunExamples::outDir() + u"AddTiledImage_out.xps");
결론
이 기사에서는 C++ 언어를 사용하여 XPS 파일에 일부 텍스트 또는 이미지를 삽입하거나 추가하는 방법을 배웠습니다. 이 기능은 XPS 문서에 워터마크를 추가하거나 요구 사항에 따라 스탬프를 추가해야 하는 경우와 같은 시나리오에서 유용할 수 있습니다. 마찬가지로 XPS 파일 형식에 대해 다른 많은 흥미로운 기능이 지원됩니다. API 문서를 방문하여 자세히 알아보거나 무료 지원 포럼에서 논의할 수도 있습니다. 연락을 기다리겠습니다!