API Java de código aberto para documentos DOCX do Word
Crie, leia, edite e converta arquivos DOCX do Microsoft Word, adicione texto e tabelas por meio da biblioteca Java.
DOCX4J é uma biblioteca de código aberto (Apache v2) baseada em JAXB para manipulação de formatos de arquivo do Microsoft Office. Ele fornece a funcionalidade para ler, escrever, editar e salvar o formato de arquivo DOCX do Microsoft Word 2007.
DOCX4J é semelhante ao SDK OpenXML da Microsoft, mas para Java. Ele usa JAXB para criar a representação do objeto na memória. Usando a API, você pode gerar documentos do Mircosoft Office, editá-los, formatar o texto e parágrafos, inserir tabelas e imagens e gerenciar outros elementos de formulário e muito mais. Basicamente, sua ênfase está no poder, se o formato suportar, você pode fazê-lo usando a API.
Introdução ao DOCX4J
Antes de tudo, você precisa ter o Java Development Kit (JDK) instalado em seu sistema. Fazer referência ao DOCX4J em seu projeto Java baseado em Maven é ainda mais simples. Tudo que você precisa é adicionar a seguinte dependência em seu pom.xml e deixar seu IDE buscar e referenciar os arquivos Jar DOCX4J.
Dependência Maven DOCX4J
<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>
Adicionar parágrafo, imagem e tabela a documentos do Word
O DOCX4J permite que os desenvolvedores adicionem parágrafos e imagens a documentos do Word. A API também oferece o recurso de adicionar tabelas a documentos DOCX e possibilita a criação de tabelas simples e aninhadas com dados definidos pelo usuário.
Crie DOCX Grátis usando 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"));
Extrair texto do DOCX
O DOCX4J fornece a classe especializada para extrair dados de documentos DOCX do Microsoft Word com apenas algumas linhas de código. Da mesma forma, ele também pode extrair títulos, notas de rodapé, dados de tabela e assim por diante de um arquivo do Word.
Extrair texto do DOCX grátis - 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);
}
Gerar e editar documentos do Word usando a API Java
O DOCX4J permite que os programadores de software criem novos documentos do Word no formato de arquivo DOCX. Os desenvolvedores também podem carregar um arquivo DOCX do Microsoft Word existente para editá-lo de acordo com as necessidades do aplicativo. Ele permite adicionar novos parágrafos, inserir texto, aplicar alinhamento e bordas de texto, alterar o estilo do texto e muito mais.
Converter documentos do Microsoft Word Docx para PDF
A biblioteca Java de código aberto docx4j fornece suporte completo para geração e conversão de documentos docx do Microsoft Word para vários formatos populares. Lá docx4j fornece 3 maneiras diferentes de converter documentos docx do Microsoft Word para PDF. O exemplo a seguir usa documentos4j (executando remotamente) para converter um arquivo docx em PDF.
Conversão de documentos EWord Docx para PDF via 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();
}
}