Open Source Java API for Word DOCX Documents
Opprett, les, rediger og konverter Microsoft Word DOCX-filer, legg til tekst og tabeller via Java-biblioteket.
DOCX4J er JAXB-basert åpen kildekode (Apache v2) bibliotek for manipulering av Microsoft Office-filformater. Den gir funksjonaliteten til å lese, skrive, redigere og lagre Microsoft Word 2007 DOCX-filformat.
DOCX4J ligner på Microsofts OpenXML SDK, men for Java. Den bruker JAXB til å lage objektrepresentasjonen i minnet. Ved å bruke API kan du generere Mircosoft Office-dokumenter, redigere dem, formatere tekst og avsnitt, sette inn tabeller og bilder og administrere andre skjemaelementer og mye mer. I utgangspunktet er det lagt vekt på kraft, hvis formatet støtter det kan du gjøre det ved å bruke API.
Komme i gang med DOCX4J
Først av alt må du ha Java Development Kit (JDK) installert på systemet ditt. Å referere til DOCX4J i ditt Maven-baserte Java-prosjekt er enda enklere. Alt du trenger er å legge til følgende avhengighet i pom.xml og la IDE-en hente og referere til DOCX4J Jar-filene.
DOCX4J Maven Dependency
<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>
Legg til avsnitt, bilde og tabell i Word-dokumenter
DOCX4J lar utviklerne legge til avsnitt og bilder i Word-dokumenter. API-en gir også funksjonen for å legge til tabeller i DOCX-dokumenter, samtidig som det gjør det mulig å lage enkle og nestede tabeller med brukerdefinerte data.
Lag DOCX Free ved å bruke 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"));
Trekk ut tekst fra DOCX
DOCX4J tilbyr den spesialiserte klassen for å trekke ut data fra Microsoft Word DOCX-dokumenter med bare noen få linjer med kode. På samme måte kan den også trekke ut overskrifter, fotnoter, tabelldata og så videre fra en Word-fil.
Trekk ut tekst fra 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);
}
Generer og rediger Word-dokumenter ved hjelp av Java API
DOCX4J gjør det mulig for programmerere å lage nye Word-dokumenter i DOCX-filformat. Utviklere kan også laste inn en eksisterende Microsoft Word DOCX-fil for å redigere den i henhold til applikasjonsbehovene deres. Den lar deg legge til nye avsnitt, sette inn tekst, bruke tekstjustering og kantlinjer, endre tekststil og mer.
Konverter Microsoft Word Docx-dokumenter til PDF
Java-biblioteket med åpen kildekode docx4j gir fullstendig støtte for generering og konvertering av Microsoft Word docx-dokumenter til forskjellige populære formater. Der docx4j gir 3 forskjellige måter å konvertere Microsoft Word docx-dokumenter til PDF. Følgende eksempel bruker documents4j (kjører eksternt) for å konvertere en docx-fil til PDF.
Konvertering av EWord Docx-dokumenter til 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();
}
}