Open Source Java API för Word DOCX Documents
Skapa, läs, redigera och konvertera Microsoft Word DOCX-filer, lägg till text och tabeller via Java-biblioteket.
DOCX4J är ett JAXB-baserat bibliotek med öppen källkod (Apache v2) för att manipulera Microsoft Office-filformat. Det ger funktionen för att läsa, skriva, redigera och spara Microsoft Word 2007 DOCX-filformat.
DOCX4J liknar Microsofts OpenXML SDK, men för Java. Den använder JAXB för att skapa objektrepresentationen i minnet. Med hjälp av API:et kan du skapa Mircosoft Office-dokument, redigera dem, formatera text och stycken, infoga tabeller och bilder och hantera andra formulärelement och mycket mer. I grund och botten ligger dess tonvikt på makt, om formatet stöder det kan du göra det med hjälp av API.
Komma igång med DOCX4J
Först och främst måste du ha Java Development Kit (JDK) installerat på ditt system. Att referera till DOCX4J i ditt Maven-baserade Java-projekt är ännu enklare. Allt du behöver är att lägga till följande beroende i din pom.xml och låta din IDE hämta och referera till DOCX4J Jar-filerna.
DOCX4J Maven beroende
<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>
Lägg till stycke, bild och tabell i Word-dokument
Med DOCX4J låter utvecklarna lägga till stycken och bilder i Word-dokument. API:et tillhandahåller även funktionen att lägga till tabeller i DOCX-dokument samtidigt som det gör det möjligt att skapa enkla och kapslade tabeller med användardefinierade data.
Skapa DOCX gratis med 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"));
Extrahera text från DOCX
DOCX4J tillhandahåller den specialiserade klassen för att extrahera data från Microsoft Word DOCX-dokument med bara några rader kod. På samma sätt kan den också extrahera rubriker, fotnoter, tabelldata och så vidare från en Word-fil.
Extrahera text från DOCX gratis - 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);
}
Generera och redigera Word-dokument med Java API
DOCX4J gör det möjligt för programvaruprogrammerare att skapa nya Word-dokument i DOCX-filformat. Utvecklare kan också ladda en befintlig Microsoft Word DOCX-fil för att redigera den enligt deras applikationsbehov. Det låter dig lägga till nya stycken, infoga text, tillämpa textjustering och ramar, ändra textstil och mer.
Konvertera Microsoft Word Docx-dokument till PDF
Java-biblioteket med öppen källkod docx4j ger komplett stöd för generering och konvertering av Microsoft Word docx-dokument till olika populära format. Där erbjuder docx4j 3 olika sätt att konvertera Microsoft Word docx-dokument till PDF. Följande exempel använder documents4j (körs på distans) för att konvertera en docx-fil till PDF.
EWord Docx-dokumentkonvertering till 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();
}
}