Aspose.Words는 프로그래밍 방식으로 MS Word 문서를 생성, 편집 및 변환할 수 있는 기능이 풍부한 API 모음입니다. 워드 프로세싱 문서를 조작하기 위한 다양한 기본 기능과 고급 기능을 제공합니다. 이 기사에서는 Aspose.Words for C++를 사용하고 C++를 사용하여 처음부터 MS Word 문서를 만드는 방법을 배웁니다. 단계별 가이드와 코드 샘플을 통해 Word 문서에 텍스트, 이미지, 표, 목록 및 기타 요소를 삽입하는 방법을 알 수 있습니다.
- C++ 워드 프로세싱 API
- C++를 사용하여 MS Word 문서 만들기
- C++를 사용하여 기존 MS Word DOC/DOCX 편집 또는 업데이트
- C++를 사용하여 Word 문서에 이미지 삽입
- C++를 사용하여 Word 문서에 표 삽입
- C++를 사용하여 Word 문서에 목록 추가
MS Word 문서를 만드는 C++ API
Aspose.Words for C++를 사용하면 MS Word 없이 C++ 응용 프로그램 내에서 워드 프로세싱 문서를 생성하고 조작할 수 있습니다. 다음 명령과 함께 NuGet을 사용하여 API를 다운로드하거나 C++ 애플리케이션 내에 설치할 수 있습니다.
PM> Install-Package Aspose.Words.Cpp
C++를 사용하여 MS Word 문서 만들기
먼저 간단한 Word 문서를 만들어 .doc 또는 .docx 파일로 저장해 보겠습니다. 이를 위해서는 다음 단계를 따라야 합니다.
- Document 클래스를 사용하여 빈 Word 문서를 만듭니다.
- DocumentBuilder 클래스의 객체를 생성하여 문서에 내용을 추가합니다.
- DocumentBuilder->Writeln() 메서드를 사용하여 텍스트를 추가합니다.
- Document->Save() 메서드를 사용하여 문서를 .doc 또는 .docx 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 Word DOCX 문서를 만드는 방법을 보여줍니다.
// 문서를 초기화합니다.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// 문서 빌더를 사용하여 문서에 콘텐츠를 추가합니다.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// 텍스트 추가
builder->Writeln(u"Hello World!");
// 문서를 디스크에 저장합니다.
doc->Save(u"document.docx");
C++를 사용하여 기존 Word DOC/DOCX 편집 또는 업데이트
C++용 Aspose.Words를 사용하여 기존 Word 문서를 편집할 수도 있습니다. 이를 위해 API는 문서의 메모리 내 표현을 위해 DOM(문서 개체 모델)을 사용합니다. DOM을 사용하면 머리글/바닥글, 단락, 표 등과 같은 Word 문서의 요소에 액세스할 수 있습니다. DOM에 대한 자세한 내용은 여기를 참조하세요.
Word 문서를 업데이트하려면 Document 클래스를 사용하여 로드하고 원하는 대로 처리하면 됩니다. 다음은 기존 Word 문서를 편집하고 업데이트하는 단계입니다.
- Document 클래스를 사용하여 Word 문서를 로드합니다.
- 컨텐츠에 접근하기 위해 DocumentBuilder 클래스의 객체를 생성합니다.
- 원하는 단락(또는 다른 요소)에 액세스하고 콘텐츠를 업데이트합니다.
- Document->Save() 메소드를 사용하여 업데이트된 문서를 저장합니다.
다음 코드 샘플은 C++를 사용하여 Word 문서의 단락 텍스트를 업데이트하는 방법을 보여줍니다.
// 문서를 초기화합니다.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// 문서 빌더를 사용하여 문서에 콘텐츠를 추가합니다.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// 섹션 가져오기
auto section = doc->get_Sections()->idx_get(0);
// 시체 가져오기
auto body = section->get_Body();
// 첫 번째 단락 가져오기
auto para = body->get_FirstParagraph();
// 텍스트 업데이트
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text.");
// 문서를 디스크에 저장합니다.
doc->Save(u"updated_document.docx");
C++를 사용하여 Word 문서에 이미지 삽입
다음은 C++를 사용하여 MS Word 문서에 이미지를 삽입하는 단계입니다.
- Document 클래스를 사용하여 새 Word 문서를 만들거나 기존 문서를 로드합니다.
- DocumentBuilder 개체를 만들고 Document 개체로 초기화합니다.
- DocumentBuilder->InsertImage(String fileName, RelativeHorizontalPosition horzPos, 이중 왼쪽, RelativeVerticalPosition vertPos, 이중 상단, 이중 너비, 이중 높이, WrapType wrapType) 메서드를 사용하여 이미지를 삽입합니다.
- 문서를 Word 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 Word 문서에 이미지를 삽입하는 방법을 보여줍니다.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// 페이지 왼쪽 상단에 로고를 추가합니다. 이미지는 다른 모든 텍스트 앞에 배치됩니다.
System::SharedPtr<Shape> shape = builder->InsertImage( u"Aspose Logo.png", RelativeHorizontalPosition::Page, 60.0, RelativeVerticalPosition::Page, 60.0, -1.0, -1.0, WrapType::None);
doc->Save(u"document_with_image.docx");
C++를 사용하여 Word 문서에 표 삽입
테이블은 데이터를 행과 열의 형태로 유지하기 위한 워드 문서의 중요한 요소입니다. Word 문서 내에서 테이블을 생성하려면 다음 단계를 따르십시오.
- Document 클래스를 사용하여 새 Word 문서를 만듭니다.
- Table 클래스의 객체를 생성합니다.
- Document->getFirstSection()->getBody()->AppendChild() 메서드를 사용하여 문서에 테이블을 삽입합니다.
- Row 클래스를 사용하여 새로운 행을 생성합니다.
- Table->AppendChild(row) 메서드를 사용하여 테이블에 행을 삽입합니다.
- Cell을 새로 만들고 Cell->getFirstParagraph()->AppendChild() 메서드를 사용하여 텍스트를 삽입합니다.
- Row->AppendChild() 메서드를 사용하여 행에 셀을 삽입합니다.
- 여러 행을 추가하는 과정을 반복합니다.
- Document->Save() 메소드를 이용하여 문서를 저장합니다.
다음 코드 샘플은 C++를 사용하여 Word 문서에 표를 삽입하는 방법을 보여줍니다.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// 문서에 표를 추가합니다.
doc->get_FirstSection()->get_Body()->AppendChild(table);
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// 이제 모든 자동 맞춤 설정을 적용할 수 있습니다.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// 셀을 만들고 행에 추가
System::SharedPtr<Cell> cell = System::MakeObject<Cell>(doc);
cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue());
cell->get_CellFormat()->set_Width(80);
// 셀에 단락을 추가하고 일부 텍스트가 포함된 새 실행을 추가합니다.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// 행에 셀을 추가합니다.
row->AppendChild(cell);
// 그런 다음 테이블의 다른 셀과 행에 대해 프로세스를 반복합니다.
// 또한 기존 셀과 행을 복제하여 작업 속도를 높일 수도 있습니다.
row->AppendChild((System::StaticCast<Node>(cell))->Clone(false));
row->get_LastCell()->AppendChild(System::MakeObject<Paragraph>(doc));
row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 2 Text"));
// 문서를 디스크에 저장합니다.
doc->Save(u"document_with_table.docx");
C++를 사용하여 Word 문서에 목록 추가
마지막으로 Word 문서에서 목록을 만드는 것입니다. 다음은 글머리 기호 목록을 만드는 단계입니다.
- Document 클래스를 사용하여 새 Word 문서를 만들거나 기존 문서를 로드합니다.
- 새 DocumentBuilder 개체를 정의하고 Document 개체로 초기화합니다.
- DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)) 메서드를 사용하여 목록을 만듭니다.
- 목록을 채우고 목록 수준을 설정합니다.
- 문서를 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 Word 문서에서 목록을 만드는 방법을 보여줍니다.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Microsoft Word 목록 템플릿 중 하나를 기반으로 번호 매기기 목록을 만들고
// 문서 작성기의 현재 단락에 적용합니다.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// 이 목록에는 9개의 레벨이 있습니다. 모두 시도해 보겠습니다.
for (int32_t i = 0; i < 9; i++)
{
builder->get_ListFormat()->set_ListLevelNumber(i);
builder->Writeln(System::String(u"Level ") + i);
}
// Microsoft Word 목록 템플릿 중 하나를 기반으로 글머리 기호 목록 만들기
// and 문서 작성기의 현재 단락에 적용합니다.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// 이 목록에는 9개의 레벨이 있습니다. 모두 시도해 보겠습니다.
for (int32_t i = 0; i < 9; i++)
{
builder->get_ListFormat()->set_ListLevelNumber(i);
builder->Writeln(System::String(u"Level ") + i);
}
// 이것은 목록 형식을 중지하는 방법입니다.
builder->get_ListFormat()->set_List(nullptr);
// 문서를 디스크에 저장합니다.
builder->get_Document()->Save(u"document_with_list.docx");
결론
이 기사에서는 C++를 사용하여 처음부터 MS Word 문서를 만드는 방법을 살펴보았습니다. 또한 새 문서 또는 기존 Word 문서에 텍스트, 이미지, 표 및 목록과 같은 요소를 삽입하는 방법을 배웠습니다. 문서를 사용하여 API의 고급 기능에 대해 자세히 알아볼 수 있습니다.