如何使用PrinteJob打印.doc文件?

时间:2013-12-16 11:50:58

标签: java

我想打印test3.doc文件。我用java.awt.print.PrinterJob尝试过这个;这是我尝试过的代码:

    PrinterJob printerjob= PrinterJob.getPrinterJob();        
    PageFormat pageformat=new PageFormat();
    Paper paper=new Paper();
    paper.setSize(8.27, 11.69);
    pageformat.setPaper(paper);
    printerjob.defaultPage(pageformat);
    text.setText(printerjob.getUserName());
    printerjob.pageDialog(pageformat);
    printerjob.printDialog();
    String file="C:/test3.doc";
    printerjob.setJobName(file);
    try{
    printerjob.print();
    text.setText("success");
    }
    catch (PrinterException e){text.setText("error");}

但它不会打印任何文件。任何人都知道为什么它不起作用?或者我如何更改代码以打印test3.doc文件。

1 个答案:

答案 0 :(得分:1)

据我了解Java API文档,setJobName(String)设置了要打印的文档的名称,但这并没有引用该文档,而是它只是作业的名称,可以是类似的 “MyPrintJobName”

打印文档时,需要渲染此文档,然后将生成的“图形”发送到打印机,如下所述:http://docs.oracle.com/javase/tutorial/2d/printing/printable.html

因此,要从纯Java代码打印.doc文件,您需要一个能够相应地呈现文档的引擎。看一下类似的问题,Oracle似乎没有提供这样的引擎和Java,所以你需要使用第三方组件来处理.doc文件。