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.
Начало работы с DOCX4J
Прежде всего, в вашей системе должен быть установлен Java Development Kit (JDK). Ссылка на DOCX4J в вашем Java-проекте на основе Maven еще проще. Все, что вам нужно, это добавить следующую зависимость в ваш pom.xml и позволить вашей IDE извлекать файлы Jar DOCX4J и ссылаться на них.
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 бесплатно, используя 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 бесплатно — 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. В следующем примере используется document4j (запущенный удаленно) для преобразования файла docx в PDF.
Преобразование документов 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();
}
}