Java的。打印PDF。

时间:2012-08-20 10:24:32

标签: java pdf printing

我需要使用Java打印API打印PDF文件。据我所知,如果我需要打印本机不支持的格式,我需要使用2DGraphics等。但如果打印机本身支持格式,那么我不需要使用2DGraphics。我只需要发送文件打印:

Doc myDoc = new SimpleDoc(stream, myFormat, dset);
...
job.print(myDoc, aset);

因此,当我使用Java print API进行打印时,我会遇到异常:sun.print.PrintJobFlavorException: invalid flavor 但是当我使用Adobe Reader打印时,所有打印都是FINE。为什么这样?

1 个答案:

答案 0 :(得分:0)

显然PDF不是原生格式。很可能会覆盖PostScript,而PDF在PostScript中有其古老的根源。所以可能存在误解。

您可以让PDF注册申请表(Adobe Reader?)打印(或打开)PDF文件。这几乎是一个单行。

public static void print(File file) {
    if (!Desktop.isDesktopSupported()) {
        throw new IllegalStateException(
                "Must not be run in headless server mode.");
    }
    try {
        Desktop.getDesktop().print(file);
    } catch (UnsupportedOperationException e) {
        throw new IllegalStateException(
                "Please install a PDF reader.");
    }
}

先决条件是必须安装PDF应用程序。