如何在java中打印.doc和.docx

时间:2011-03-01 22:49:37

标签: java printing ms-word apache-poi docx

我刚学会了如何使用Apache-POI做一些基本的.doc和.docx操作。现在我想要做的是尝试从我的应用程序中打印这些文档。知道我怎么能这样做? 这就是我创建文档的方式:

public void newWordDoc(String filename) throws FileNotFoundException, IOException {
    XWPFDocument document = new XWPFDocument();
    XWPFParagraph tmpParagraph = document.createParagraph();
    XWPFRun tmpRun = tmpParagraph.createRun();
    tmpRun.setText("Writing to a .doc");
    tmpRun.setFontSize(18);
    document.write(new FileOutputStream(new File(filename + ".doc")));
}

public void newWordDocX(String filename) throws FileNotFoundException, IOException {
    XWPFDocument document = new XWPFDocument();
    XWPFParagraph tmpParagraph = document.createParagraph();
    XWPFRun tmpRun = tmpParagraph.createRun();
    tmpRun.setText("Writing to a .docx");
    tmpRun.setFontSize(18);
    document.write(new FileOutputStream(new File(filename + ".docx")));
}

我想现在我应该创建一些再次读取它们并打印它们的方法,对吧? 在我的打印机中打印它们最简单,最快捷的方法是什么? 我是否需要使用java打印API,或者是否有任何可以使事情变得简单的免费软件? 另外我想提一下,我在一个其他地方的帖子里,java不能打印word文档,我们必须先将它们转换为PDF。真的吗?我希望不会:(

2 个答案:

答案 0 :(得分:2)

Apache POI只是用于读取对象,而不是用于渲染,无论是在屏幕上还是在打印机上。

您肯定必须编写可以呈现doc和docx文档的程序的脚本。我想到了Microsoft Word,但如果你幸运的话,OpenOffice也应该做一个或多或少可接受的工作:)。

对于Word:使用Com4J,效果很好。

对于OpenOffice:使用其原生Java API。

答案 1 :(得分:0)

  

我想现在我应该创建一些再次读取它们并打印它们的方法,对吧?

右。除非他们的内容已经在记忆中。

  

在我的打印机中打印它们最简单快捷的方法是什么?我是否需要使用java打印API,或者是否有任何可以使事情变得更容易的免费软件?

你应该分开关注点。首先,你应该担心阅读。打印将是另一个对象的责任:)

关于转换为pdf的问题。我想这不是一个要求。至于你可以阅读内容,你可以用它做任何你想做的事情:)