如何在Java / Scala中创建PDF / DOCX文件?

时间:2016-07-08 14:01:36

标签: java scala pdf document docx

我正在创建一个Web应用程序,它将接受来自用户的一些输入(如姓名,年龄,地址等),并生成一些带有填充信息的预定义表单,供用户下载和打印。

例如,驾驶执照的申请表或其他类似的内容。后端将包含有关要生成的文档的格式信息,其他信息将从前端用户收集。

我将使用 Play Framework 2.5 Java / Scala 作为编程语言。但是现在我不知道是否有任何可用于实现此文档生成的免费库/ API。

我应该可以操纵字体大小,样式,缩进,段落,页面边框,页码,对齐方式,文档页眉和页脚,页面大小(A4,法律等)其他一些基本东西。我需要格式化的文档,这些文档广泛支持编辑和打印。例如 PDF,DOCX 。 DOCX是首选,因此用户可以在下载文档之后编辑内容,然后再打印出来。

2 个答案:

答案 0 :(得分:1)

我使用apache POI库来解析和创建ms word文档(包括docx)文件:

http://www.tutorialspoint.com/apache_poi_word/apache_poi_word_quick_guide.htm

这并不奇怪,但它是我发现的最好的:)。

答案 1 :(得分:1)

我使用docx4j.jar只是将xhtml转换为docx。

您可以为您的要求做的是将格式信息保存为xhtml模板,并在运行时将表单输入(如姓名,年龄,地址等)放入模板中。

这是从此link

引用的示例代码
 public static void main(String[] args) throws Exception 
 {
        String xhtml= 
                "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%;\"><tbody><tr><td>test</td><td>test</td></tr><tr><td>test</td><td>test</td></tr><tr><td>test</td><td>test</td></tr></tbody></table>";       

        // To docx, with content controls
        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();

        XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);

        wordMLPackage.getMainDocumentPart().getContent().addAll( 
                XHTMLImporter.convert( xhtml, null) );

        wordMLPackage.save(new java.io.File("D://sample.docx"));
}