Java API с отворен код за Word DOCX документи
Създавайте, четете, редактирайте и конвертирайте DOCX файлове на Microsoft Word, добавяйте текст и таблици чрез Java библиотека.
DOCX4J е базирана на JAXB библиотека с отворен код (Apache v2) за манипулиране на файлови формати на Microsoft Office. Той предоставя функционалност за четене, писане, редактиране и запазване на файлов формат DOCX на Microsoft Word 2007.
DOCX4J е подобен на OpenXML SDK на Microsoft, но за Java. Той използва JAXB за създаване на представяне на обект в паметта. С помощта на API можете да генерирате документи на Mircosoft Office, да ги редактирате, да форматирате текста и абзаците, да вмъквате таблици и изображения и да управлявате други елементи на формуляра и много повече. По принцип неговият акцент е върху мощността, ако форматът го поддържа, можете да го направите с помощта на API.
Първи стъпки с DOCX4J
На първо място, трябва да имате инсталиран Java Development Kit (JDK) на вашата система. Позоваването на DOCX4J във вашия базиран на Maven Java проект е още по-лесно. Всичко, от което се нуждаете, е да добавите следната зависимост във вашия 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 предоставя специализирания клас за извличане на данни от DOCX документи на Microsoft Word само с няколко реда код. По същия начин може също да извлича заглавия, бележки под линия, данни от таблици и т.н. от файл на 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. Разработчиците могат също да заредят съществуващ DOCX файл на Microsoft Word, за да го редактират според нуждите на приложението си. Позволява ви да добавяте нови абзаци, да вмъквате текст, да прилагате подравняване на текст и граници, да променяте стила на текста и др.
Преобразувайте документи на Microsoft Word Docx в PDF
Java библиотеката с отворен код docx4j осигурява пълна поддръжка за генериране и конвертиране на документи на Microsoft Word docx в различни популярни формати. Там docx4j предоставя 3 различни начина за конвертиране на docx документи на Microsoft Word в PDF. Следващият пример използва documents4j (изпълняващ се от разстояние) за конвертиране на 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();
}
}