C++ ile Word Belgeleri Oluşturun

Aspose.Words, MS Word belgelerini program aracılığıyla oluşturmanıza, düzenlemenize ve dönüştürmenize olanak tanıyan, zengin özelliklere sahip bir API koleksiyonudur. Kelime işlem belgelerini işlemek için çok çeşitli temel ve gelişmiş özellikler sağlar. Bu makalede, Aspose.Words for C++ kullanmayı ve C++ kullanarak sıfırdan MS Word belgeleri oluşturmayı öğreneceksiniz. Adım adım kılavuz ve kod örnekleri, Word belgelerine metin, resim, tablo, liste ve diğer öğeleri nasıl ekleyeceğinizi bilmenizi sağlayacaktır.

MS Word Belgeleri Oluşturmak için C++ API

Aspose.Words for C++, MS Word olmadan C++ uygulamalarında kelime işlem belgeleri oluşturmanıza ve değiştirmenize olanak tanır. Aşağıdaki komutla NuGet kullanarak API’yi indirebilir veya C++ uygulamalarınıza yükleyebilirsiniz.

PM> Install-Package Aspose.Words.Cpp

C++ kullanarak MS Word Belgeleri oluşturun

Önce basit bir Word belgesi oluşturalım ve bunu .doc veya .docx dosyası olarak kaydedelim. Bunun için aşağıdaki adımları izlemeniz gerekmektedir:

Aşağıdaki kod örneği, C++ kullanarak bir Word DOCX belgesinin nasıl oluşturulacağını gösterir.

// Bir Belge Başlatın.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// Belgeye içerik eklemek için bir belge oluşturucu kullanın.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Yazı ekle
builder->Writeln(u"Hello World!"); 
// Belgeyi diske kaydedin.
doc->Save(u"document.docx");

C++ kullanarak Mevcut Word DOC/DOCX’i Düzenleyin veya Güncelleyin

Aspose.Words for C++ kullanarak mevcut Word belgelerini de düzenleyebilirsiniz. Bunun için API, bir belgenin bellek içi temsili için Belge Nesne Modeli’ni (DOM) kullanır. DOM, bir Word belgesinin üstbilgi/altbilgi, paragraflar, tablolar vb. öğelerine erişmenizi sağlar. DOM hakkında daha fazla bilgiyi buradan okuyun.

Bir Word belgesini güncellemek için Document sınıfını kullanarak yüklemeniz ve istediğiniz gibi işlemeniz yeterlidir. Mevcut bir Word belgesini düzenlemek ve güncellemek için gereken adımlar aşağıdadır.

  • Belge sınıfını kullanarak Word belgesini yükleyin.
  • İçeriğe erişmek için DocumentBuilder sınıfından bir nesne oluşturun.
  • İstediğiniz paragrafa (veya başka bir öğeye) erişin ve içeriği güncelleyin.
  • Güncellenen belgeyi Belge->Kaydet() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C++ kullanarak bir Word belgesindeki bir paragrafın metninin nasıl güncelleneceğini gösterir.

// Bir Belge Başlatın.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// Belgeye içerik eklemek için bir belge oluşturucu kullanın.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Bölümü al
auto section = doc->get_Sections()->idx_get(0);
// Vücut al
auto body = section->get_Body();
// İlk paragrafı al
auto para = body->get_FirstParagraph();
// Metni güncelle
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// Belgeyi diske kaydedin.
doc->Save(u"updated_document.docx");

C++ kullanarak Word Belgesine Görüntü Ekleme

Aşağıda, C++ kullanarak MS Word belgelerine resim ekleme adımları yer almaktadır.

  • Belge sınıfını kullanarak yeni bir Word belgesi oluşturun veya mevcut bir belgeyi yükleyin.
  • Bir DocumentBuilder nesnesi oluşturun ve onu Document nesnesiyle başlatın.
  • [DocumentBuilder->InsertImage(String dosyaAdı, RelativeHorizontalPosition horzPos, çift sol, RelativeVerticalPosition vertPos, çift üst, çift genişlik, çift yükseklik, WrapType wrapType)] yöntemini kullanarak resim ekleyin.
  • Belgeyi bir Word dosyası olarak kaydedin.

Aşağıdaki kod örneği, C++ kullanarak bir Word belgesine nasıl resim ekleneceğini gösterir.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// Sayfanın sol üst köşesine bir logo ekleyin. Resim, diğer tüm metnin önüne yerleştirilir.
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++ kullanarak Word Belgelerine Tablo Ekleme

Tablo, verileri satırlar ve sütunlar şeklinde tutmak için Word belgelerinin önemli bir öğesidir. Word belgeleri içerisinde tablo oluşturmak için aşağıdaki adımları takip ediniz.

  • Document sınıfını kullanarak yeni bir Word belgesi oluşturun.
  • Table sınıfından bir nesne oluşturun.
  • Document->getFirstSection()->getBody()->AppendChild() yöntemini kullanarak belgeye tablo ekleyin.
  • Row sınıfını kullanarak yeni bir satır oluşturun.
  • Table->AppendChild(row) yöntemini kullanarak tabloya satır ekleyin.
  • Cell oluşturun ve Cell->getFirstParagraph()->AppendChild() yöntemini kullanarak içine metin ekleyin.
  • Row->AppendChild() yöntemini kullanarak satıra hücre ekleyin.
  • Birden çok satır eklemek için işlemi tekrarlayın.
  • Belge->Kaydet() yöntemini kullanarak belgeyi kaydedin.

Aşağıdaki kod örneği, C++ kullanarak Word belgesine nasıl tablo ekleneceğini gösterir.

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// Tabloyu belgeye ekleyin.
doc->get_FirstSection()->get_Body()->AppendChild(table); 
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// Artık herhangi bir otomatik sığdırma ayarını uygulayabiliriz.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// Bir hücre oluşturun ve satıra ekleyin
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);
// Hücreye bir paragrafın yanı sıra bazı metinlerle yeni bir çalışma ekleyin.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// Hücreyi satıra ekleyin.
row->AppendChild(cell);
// Daha sonra tablodaki diğer hücreler ve satırlar için işlemi tekrar ederdik.
// Mevcut hücreleri ve satırları klonlayarak da işleri hızlandırabiliriz.
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"));
// Belgeyi diske kaydedin.
doc->Save(u"document_with_table.docx");

C++ kullanarak Word Belgelerine Liste Ekleme

Son olarak, Word belgelerinde bir liste oluşturmak. Madde imli liste oluşturma adımları aşağıdadır.

  • Belge sınıfını kullanarak yeni bir Word belgesi oluşturun veya mevcut bir belgeyi yükleyin.
  • Yeni bir DocumentBuilder nesnesi tanımlayın ve onu Document nesnesiyle başlatın.
  • DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)) yöntemini kullanarak liste oluşturun.
  • Listeyi doldurun ve liste düzeyini ayarlayın.
  • Belgeyi bir dosya olarak kaydedin.

Aşağıdaki kod örneği, C++ kullanarak bir Word belgesinde liste oluşturmayı gösterir.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Microsoft Word liste şablonlarından birine dayalı olarak numaralandırılmış bir liste oluşturun ve
// belge oluşturucudaki geçerli paragrafa uygulayın.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// Bu listede 9 seviye var, hepsini deneyelim.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Microsoft Word liste şablonlarından birini temel alan madde işaretli bir liste oluşturun
// and belge oluşturucudaki geçerli paragrafa uygulayın.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// Bu listede 9 seviye var, hepsini deneyelim.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Bu, liste biçimlendirmesini durdurmanın bir yoludur. 
builder->get_ListFormat()->set_List(nullptr); 
// Belgeyi diske kaydedin.
builder->get_Document()->Save(u"document_with_list.docx");

Çözüm

Bu yazıda, C++ kullanarak MS Word belgelerinin sıfırdan nasıl oluşturulacağını gördünüz. Ayrıca, yeni veya mevcut Word belgelerine metin, resimler, tablolar ve listeler gibi öğeleri nasıl ekleyeceğinizi öğrendiniz. Belgeleri kullanarak API’nin gelişmiş özellikleri hakkında daha fazla bilgi edinebilirsiniz.

Ayrıca bakınız