Java API з відкритим вихідним кодом для документів Word DOCX

Створюйте, читайте, редагуйте та конвертуйте файли Microsoft Word DOCX, додавайте текст і таблиці за допомогою бібліотеки Java.

DOCX4J — це бібліотека з відкритим кодом (Apache v2) на основі JAXB для роботи з форматами файлів Microsoft Office. Він дає змогу читати, писати, редагувати та зберігати формат файлу Microsoft Word 2007 DOCX.

DOCX4J схожий на Microsoft OpenXML SDK, але для Java. Він використовує JAXB для створення представлення об’єкта в пам’яті. Використовуючи API, ви можете створювати документи Mircosoft Office, редагувати їх, форматувати текст і абзаци, вставляти таблиці та зображення, керувати іншими елементами форми та багато іншого. В основному, його акцент робиться на потужності, якщо формат підтримує це, ви можете зробити це за допомогою API.

Previous Next

Початок роботи з DOCX4J

Перш за все, у вашій системі має бути встановлено Java Development Kit (JDK). Посилання на DOCX4J у вашому проекті Java на основі Maven ще простіше. Все, що вам потрібно, це додати наступну залежність у ваш pom.xml і дозволити вашій IDE отримувати та посилатися на файли DOCX4J Jar.

DOCX4J Залежність Maven

<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-Internal</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-MOXy</artifactId>
<version>8.0.0</version>
</dependency>
  

Додайте абзац, зображення та таблицю до документів Word

DOCX4J дозволяє розробникам додавати абзаци та зображення до документів Word. API також надає функцію додавання таблиць до документів DOCX одночасно дозволяючи створювати прості і вкладені таблиці з даними, визначеними користувачем.

Створіть DOCX Free за допомогою DOCX4J - Java

// Create word package
WordprocessingMLPackage wordPackage = WordprocessingMLPackage.createPackage();
// Create main document part
MainDocumentPart mainDocumentPart = wordPackage.getMainDocumentPart();
// Add Paragraph
mainDocumentPart.addParagraphOfText("Open Source Java API for Word DOCX Documents");
// Save file
wordPackage.save(new File("FileFormat.docx"));

Витягніть текст із DOCX

DOCX4J надає спеціалізований клас для вилучення даних із документів Microsoft Word DOCX за допомогою лише кількох рядків коду. Таким же чином він також може витягувати заголовки, виноски, дані таблиці тощо з файлу Word.

Видобуток тексту з DOCX Free - Java

// Load document
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("FileFormat.docx"));
// Load main document part
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
// Extract nodes
String textNodesXPath = "//w:t";
List<Object> textNodes= mainDocumentPart.getJAXBNodesViaXPath(textNodesXPath, true);
// Print text
for (Object obj : textNodes) {
  Text text = (Text) ((JAXBElement) obj).getValue();
  String textValue = text.getValue();
  System.out.println(textValue);
}                 

Створюйте та редагуйте документи Word за допомогою Java API

DOCX4J дозволяє програмістам створювати нові документи Word у форматі DOCX. Розробники також можуть завантажити існуючий файл Microsoft Word DOCX, щоб редагувати його відповідно до потреб своєї програми. Це дозволяє додавати нові абзаци, вставляти текст, застосовувати вирівнювання тексту та рамки, змінювати стиль тексту тощо.

Перетворення документів Microsoft Word Docx на PDF

Бібліотека Java з відкритим вихідним кодом docx4j забезпечує повну підтримку створення та перетворення документів Microsoft Word docx у різні популярні формати. Там docx4j пропонує 3 різні способи конвертації документів Microsoft Word docx у PDF. У наступному прикладі для перетворення файлу docx у формат PDF використовується document4j (запущений віддалено).

Перетворення документів EWord Docx у PDF за допомогою Java


public class DocxFileToPDF {
public static void main(String[] args) throws IOException, Docx4JException {
File output = new File(System.getProperty("user.dir")+"/result.pdf");
FileOutputStream fos = new FileOutputStream(output); 
Documents4jRemoteServices exporter = new Documents4jRemoteServices();
exporter.export(new File(System.getProperty("user.dir")+"/../docx4j-samples-docx4j/sample-docs/sample-docx.docx") , fos, DocumentType.MS_WORD); 
fos.close();
}
}
 Українська