Tento krátky článok ukazuje ako pomocou knižnice docx4j vytvoriť dokument typu docx (Word).
Potrebné knižnice môžeme nájsť na webe Docx4Java.org alebo v centrálnom repozitári mavenu (tuto cestu som si zvolil aj ja).
Maven dependency:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>6.0.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>6.0.1</version>
</dependency>
Vzorové použitie
Vytvorenie docx dokumentu s jednou tabuľkou:
package net.adamjak.tomas.htmltodocx;
import java.io.File;
import javax.xml.bind.JAXBException;
import org.docx4j.convert.in.xhtml.XHTMLImporterImpl;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.NumberingDefinitionsPart;
public class Main {
private static final String HTML_CODE = "<html><head></head><body><h2>HTML Table</h2><table><tr><th>Company</th><th>Contact</th><th>Country</th></tr><tr><td>Alfreds Futterkiste</td><td>Maria Anders</td><td>Germany</td></tr><tr><td>Centro comercial Moctezuma</td><td>Francisco Chang</td><td>Mexico</td></tr><tr><td>Ernst Handel</td><td>Roland Mendel</td><td>Austria</td></tr><tr><td>Island Trading</td><td>Helen Bennett</td><td>UK</td></tr><tr><td>Laughing Bacchus Winecellars</td><td>Yoshi Tannamuri</td><td>Canada</td></tr><tr><td>Magazzini Alimentari Riuniti</td><td>Giovanni Rovelli</td><td>Italy</td></tr></table></body></html>";
private static final String USER_DIR = System.getProperty("user.dir");
private static final File OUTPUT_FILE = new File(USER_DIR + "/output.docx");
public static void main(String[] args) throws Docx4JException, JAXBException {
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
NumberingDefinitionsPart ndp = new NumberingDefinitionsPart();
wordMLPackage.getMainDocumentPart().addTargetPart(ndp);
ndp.unmarshalDefaultNumbering();
XHTMLImporterImpl xHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
wordMLPackage.getMainDocumentPart().getContent().addAll(xHTMLImporter.convert(HTML_CODE, null));
wordMLPackage.save(OUTPUT_FILE);
}
}
Zdroje:
[1] https://www.docx4java.org/trac/docx4j
[2] https://github.com/plutext/docx4j-ImportXHTML/blob/master/src/samples/java/org/docx4j/samples/ConvertInXHTMLDocument.java
Komentáre
Zverejnenie komentára