【问题标题】:Java. Print PDF.爪哇。打印 PDF。
【发布时间】:2012-08-15 16:23:34
【问题描述】:

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

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

所以当我使用 Java 打印 API 进行打印时,我得到了异常:sun.print.PrintJobFlavorException: invalid flavor 但是当我使用 Adob​​e Reader 打印时,所有打印结果都很好。为什么这样?

【问题讨论】:

  • 您可以使用 PdfRenderer,我使用它并成功打印了 pdf 文件。 juixe.com/techknow/index.php/2008/01/17/…
  • @likeToCode 它有问题。它需要 jbig2 解码器,但 jbig2 解码器非常有问题(免费版,我不尝试非免费版(2.0))

标签: java pdf printing


【解决方案1】:

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

您可以让 for 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 应用程序。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多