Ücretsiz C++ API'si ile Dinamik Word DOCX Dosyası Oluşturma
C++ kodundan doğrudan Word belgeleri (.docx formatı) oluşturmak için Açık Kaynak C++ DOCX Kütüphanesi. Tablo ve resim eklemenize, metne formatlar ve stiller uygulamanıza ve daha fazlasına izin verir.
MiniDocx Nedir?
DocxFactory, şablon tabanlı belge oluşturma yoluyla Microsoft Word DOCX dosyaları (OpenXML formatı) üretmek için tasarlanmış güçlü, çok platformlu açık kaynaklı bir C++ kütüphanesidir. Bu ücretsiz kütüphane, C#, Java, Python ve Progress 4GL dahil olmak üzere birden çok programlama dili için sarmalayıcılar ve komut satırı araçlarıyla birlikte gelir. DocxFactory'yi farklı kılan, geliştiricilerin karmaşık OpenXML dosya formatını anlamasına gerek kalmadan şablon odaklı yaklaşımıdır. Kütüphane, şablon tabanlı belge oluşturma, paragraf veya resim ekleme/çıkarma, metin biçimlendirme, tablolarla çalışma, hücre birleştirme veya bölme, listeleri yönetme, çok dilli destek, kapsamlı barkod desteği, birden fazla çıktı formatı desteği gibi çeşitli önemli kelime işleme özelliklerini içerir.
DocxFactory, Microsoft Word .docx dosyalarıyla çalışmayı basitleştiren olgun, ücretsiz, çok platformlu bir C/C++ kütüphanesidir (çok dilli sarmalayıcılarla). Kütüphane, büyük işletim sistemlerinde (Windows, UNIX/Linux) sorunsuz bir şekilde çalışır — sunucular, masaüstü veya gömülü sistemlerde dağıtım esnekliği sağlar. Apache 2.0 lisansı altında lisanslanan bu kütüphane, özel ve ticari kullanım için hiçbir özellik sınırlaması veya zaman kısıtlaması olmaksızın tamamen ücretsizdir. Kurumsal raporlama sistemleri, otomatik belge iş akışları veya basit posta birleştirme uygulamaları geliştiriyor olsanız da, DocxFactory profesyonel belgeler üretmek için gereken araçları verimli bir şekilde sağlar.
MiniDocx ile Başlarken
DocxFactory'yi kurmanın önerilen yolu GitHub üzerinden olmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
DocxFactory'yi GitHub Üzerinden Kurun
git clone git@github.com:totravel/minidocx.git
cd minidocx You can also download it directly from Aspose product page.C++ ile Şablon Tabanlı Belge Oluşturma
DocxFactory'nin temel felsefesi sadeliğe dayanır. Belgeleri element element programatik olarak inşa etmek yerine, Microsoft Word'de bir şablon (yer tutucular içeren normal bir DOCX dosyası) oluşturur ve verilerinizi ona birleştirirsiniz. Bu yaklaşım, daha hızlı geliştirme, WYSIWYG düzenleme ve benzeri birçok avantaj sunar. İşte C++ kütüphanesini kullanarak bir şablondan yeni Word belgeleri oluşturmayı gösteren yararlı bir örnek.
C++ Kütüphanesi ile Şablondan Yeni Belge Nasıl Oluşturulur?
#include "minidocx/minidocx.hpp"
#include
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
ParagraphPointer para = sect->addParagraph();
para->prop_.align_ = Alignment::Centered;
RichTextPointer rich = para->addRichText("Happy Chinese New Year!");
rich->prop_.fontSize_ = 32;
rich->prop_.color_ = "FF0000";
doc.saveAs("a.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
DOCX'te Geniş Barkod Desteği
Açık kaynaklı DocxFactory kütüphanesi, Code39, Code128, EAN, UPC, ISBN, Databar, posta kodları, PDF417, Data Matrix, QR Code ve Maxi Code dahil olmak üzere geniş bir 1D ve 2D barkod yelpazesini destekler. Barkodlar şablonlarda alan olarak eklenir ve sağladığınız verilere göre otomatik olarak işlenir. Bu, envanter yönetim sistemleri, nakliye ve lojistik uygulamaları, ürün etiketleme çözümleri, belge izleme sistemleri, perakende satış noktası entegrasyonu gibi durumlar için idealdir.
C++ Kütüphanesi ile Word Belgelerinde İleri Düzey Biçimlendirme ve Stil Nasıl Uygulanır?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
// Create a table with 3 rows and 2 columns
TablePointer table = sect->addTable(3, 2);
// Access and populate cells
// First row - header
auto cell00 = table->cell(0, 0);
auto para00 = cell00->addParagraph();
auto text00 = para00->addRichText("Name");
text00->prop_.bold_ = true;
auto cell01 = table->cell(0, 1);
auto para01 = cell01->addParagraph();
auto text01 = para01->addRichText("Age");
text01->prop_.bold_ = true;
// Second row
auto cell10 = table->cell(1, 0);
auto para10 = cell10->addParagraph();
para10->addRichText("Alice");
auto cell11 = table->cell(1, 1);
auto para11 = cell11->addParagraph();
para11->addRichText("25");
// Third row
auto cell20 = table->cell(2, 0);
auto para20 = cell20->addParagraph();
para20->addRichText("Bob");
auto cell21 = table->cell(2, 1);
auto para21 = cell21->addParagraph();
para21->addRichText("30");
doc.saveAs("table_document.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
C+ ile World Dosyalarına Grafik Ekle ve Yönet
DocxFactory kütüphanesi, grafik verilerini dinamik olarak doldurabilir, böylece veri odaklı görselleştirmeler oluşturabilirsiniz. Şablonunuzda tanımlı grafikler, veri serilerini programatik olarak güncelleyebilir ve bu sayede yöneticiler panelleri ve analitik raporlar oluşturmak mümkün olur. Kütüphane ayrıca Microsoft Word'de bulunan 70'ten fazla grafik türünün (Sütun, Çizgi, Pasta, Çubuk, Alan, Dağılım, Hisse, Yüzey, Halka, Balon, Radar vb.) tam listesini destekler. Bu özellik, gerçek zamanlı veri görselleştirme, istatistiksel analiz belgeleri, iş zekası panelleri, bilimsel araştırma raporları, performans takibi belgeleri gibi dinamik finansal raporları mümkün kılar.
How to Insert an Image into a Word Document via C++ library?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
// Add a paragraph before the image
ParagraphPointer para1 = sect->addParagraph();
para1->addRichText("Below is an important diagram:");
// Add a paragraph containing the image
ParagraphPointer para2 = sect->addParagraph();
para2->prop_.align_ = Alignment::Centered;
// Insert the picture
PicturePointer pic = para2->addPicture("path/to/image.png");
pic->prop_.width_ = 400;
pic->prop_.height_ = 300;
// Add a paragraph after the image
ParagraphPointer para3 = sect->addParagraph();
para3->addRichText("Figure 1: Important visualization");
doc.saveAs("document_with_image.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
DOCX Dosyalarında İleri Düzey Biçimlendirme ve Stil
Açık kaynaklı DocxFactory kütüphanesi, C++ uygulamaları içinde stilleri dinamik olarak ayarlarken Word'ün yerel biçimlendirmesini korur. Kütüphane, yazı tipi stilleri, boyutları ve renkleri, paragraf hizalaması ve aralığı, özel kenarlıklı tablolar, üstbilgi ve altbilgi, sayfa numaraları ve bölüm sonlandırmaları, özelleştirilmiş stiller ve temalar gibi çeşitli biçimlendirme özelliklerini destekler. Oluşturulan belge, şablondaki tüm biçimlendirmeyi korur, böylece tutarlı bir marka kimliği ve profesyonel bir görünüm sağlar. Aşağıdaki kod örneği, geliştiricilerin C++ uygulamalarında verilere dayalı koşullu biçimlendirme uygulamasını gösterir.
How to Work with Multiple Sections of Word Documents via C++ Library?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
// First section with portrait orientation
SectionPointer sect1 = doc.addSection();
sect1->prop_.orientation_ = Orientation::Portrait;
sect1->prop_.pageWidth_ = 8.5 * 1440; // Letter size in twips
sect1->prop_.pageHeight_ = 11 * 1440;
ParagraphPointer para1 = sect1->addParagraph();
para1->addRichText("This is content in portrait orientation.");
// Second section with landscape orientation
SectionPointer sect2 = doc.addSection();
sect2->prop_.orientation_ = Orientation::Landscape;
sect2->prop_.pageWidth_ = 11 * 1440;
sect2->prop_.pageHeight_ = 8.5 * 1440;
ParagraphPointer para2 = sect2->addParagraph();
para2->addRichText("This content appears in landscape orientation.");
doc.saveAs("multi_section_document.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}