我想打印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文件。
答案 0 :(得分:1)
据我了解Java API文档,setJobName(String)
设置了要打印的文档的名称,但这并没有引用该文档,而是它只是作业的名称,可以是类似的 “MyPrintJobName”
打印文档时,需要渲染此文档,然后将生成的“图形”发送到打印机,如下所述:http://docs.oracle.com/javase/tutorial/2d/printing/printable.html
因此,要从纯Java代码打印.doc文件,您需要一个能够相应地呈现文档的引擎。看一下类似的问题,Oracle似乎没有提供这样的引擎和Java,所以你需要使用第三方组件来处理.doc文件。