DuckX
C++ API с отворен код за Word OOXML документи
Създавайте, четете, актуализирайте и експортирайте DOCX файлове на Microsoft Office Word в C++ приложения.
DuckX е безплатна C++ библиотека с отворен код, която позволява на разработчиците на софтуер да работят с Microsoft Word (DOCX) в техните собствени приложения. API може да чете, пише и редактира документи на MS Word, които имат файлово разширение .docx.
API е много стабилен и осигурява поддръжка за много важни функции за обработка на текст, като създаване и запазване на DOCX документи, добавяне на абзац, заглавие, вмъкване на текст, добавяне на таблици, добавяне на изображения, стилове на абзаци, прилагане на форматиране на текст и много други.
Първи стъпки с DuckX
Предпочитаният начин е да създадете папка за компилация.
Създайте папка за компилация за DuckX
git clone https://github.com/amiremohamadi/DuckX.git
cd DuckX
mkdir build
cd build
cmake ..
cmake --build;
C++ API за отваряне и четене на Word DOCX документи
Библиотеката DuckX позволява на софтуерните професионалисти да отварят съществуващи Word DOCX документи в техните собствени приложения, без да използват Microsoft Word. Можете да прегледате абзаци, редове и да ги отпечатате. Той също така дава функционалност за модифициране на текстови документи, можете също да добавяте изображения, текст, шрифтове, форматиране на текст и др.
Как да отворите и прочетете Word документи чрез C++ API
#include
#include
int main() {
duckx::Document doc("file.docx");
doc.open();
for (auto p : doc.paragraphs())
for (auto r : p.runs())
std::cout << r.get_text() << std::endl;
}
Вмъкване и пътна маса в Word DOCX файл
Библиотеката DuckX дава възможност на разработчиците да вмъкват таблици в Word DOCX документ в C++ приложения. Таблиците на MS Word играят много важна роля в оформлението на добре форматирани данни. Таблиците са добър начин за представяне на данни в редове и колони. Те са много лесни за вмъкване и манипулиране във файлове на Word.
Подкрепа за четене на Word Документи чрез C++ API
#include "../src/duckx.hpp"
using namespace std;
// Print a paragraph and all children runs
void print_paragraph(duckx::Paragraph& p) {
for (auto r = p.runs(); r.has_next(); r.next()) {
cout << r.get_text() << endl;
}
}
int main() {
duckx::Document doc("my_test.docx");
doc.open();
cout << "Paragraph content:" << endl;
for (auto p = doc.paragraphs(); p.has_next(); p.next()) {
for (auto r = p.runs(); r.has_next(); r.next()) {
cout << r.get_text() << endl;
}
print_paragraph(p);
}
cout << "Table content:" << endl;
for (auto t = doc.tables(); t.has_next(); t.next()) {
for (auto tr = t.rows(); tr.has_next(); tr.next()) {
for (auto tc = tr.cells(); tc.has_next(); tc.next()) {
for (auto p = tc.paragraphs(); p.has_next(); p.next()) {
print_paragraph(p);
}
}
}
}
return 0;
}
Добавяне на изображения към Word DOCX файлове
Библиотеката DuckX предоставя функционалност за вмъкване на изображения в документа на Word DOCX. За да добавите изображение, трябва да посочите името и местоположението на изображението. Разработчиците също могат да определят както ширината, така и височината на изображението.