我需要一个 Java 程序来将任何文件打印到默认/选定的打印机(实际上我使用的是 RICOH 通用 PostScript 打印机,它可以将任何文件打印到 PostScript 文件)。此外,我将从打印机读取该流并将其写入 PostScript 文件。我已经尝试了下面来自谷歌的示例程序,但是当我得到 PostScript 文件时,它是某种未知格式。
public class PrintToFileWithJava {
private static boolean jobRunning = true;
public static void main(String[] args) throws Exception {
InputStream is = new BufferedInputStream(new FileInputStream("Authentication in Hive.pdf"));
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob printJob = service.createPrintJob();
printJob.addPrintJobListener(new JobCompleteMonitor());
Doc doc = new SimpleDoc(is, flavor, null);
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
printJob.print(doc, attributes);
while (jobRunning) {
Thread.sleep(1000);
}
System.out.println("Exiting app");
is.close();
}
private static class JobCompleteMonitor extends PrintJobAdapter {
@Override
public void printJobCompleted(PrintJobEvent jobEvent) {
System.out.println("Job completed");
jobRunning = false;
}
}
}
如有任何建议,我们将不胜感激。
最佳答案
你想做的事情在 Java 中是可能的,但并不简单。您必须编写一个框架,它可以读取您想要支持的所有文件类型,并且可以使用 Java Graphics2D
API 呈现这些文件。
工作量很大。您可以使用像 ImageMagick 这样的现有框架让您的生活更轻松。它可以将许多图像格式转换为 PostScript。
要打印 Word 和其他专有格式,您需要特殊的转换器。如果安装了应用程序,您可以尝试Desktop.print()
.如果没有,那么您将不得不找到一个可以为您呈现这些文档的库。
关于java - 如何从 java 程序打印文件的任何风格(文本、word、pdf、图像等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692468/