在我的Java应用程序中,我创建了一个文本文件并将其保存到特定目录中。 我希望用户可以打印此文件,因此我遵循以下步骤:
if (reportFile.exists())
{
PrintService [] printServices = PrintServiceLookup.lookupPrintServices(null, null);
PrintService chosenPrinter = JOPtionPane.... //choice it with a JOptionPane
DocFlavor [] flavors = chosenPrinter.getSupportedDocFlavors();
DocFlavor printFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
FileInputStream fis = new FileInputStream(reportFile);
Doc document = new SimpleDoc (fis, printFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(1));
aset.add(Sides.ONE_SIDED);
DocPrintJob job = chosenPrinter.createPrintJob();
try
{
job.print(document, aset);
}
catch (PrintException pe)
{
System.out.println("====PrintException======="+pe);
}
}
使用DocFlavor.INPUT_STREAM_AUTOSENSE
,我也不例外,但我得到的是一个空白页面(我目前正在使用PDF创建者打印机),如果我尝试设置不同的DocFlavor,我会得到无效的味道异常。
有谁能告诉我如何解决这个问题?