java 。打印 PDF。

标签 java pdf printing

我需要使用 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 打印时,所有打印结果都很好。为什么这样?

最佳答案

显然 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 应用程序。

关于 java 。打印 PDF。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12035962/

相关文章:

Excel VBA : Is it possible to get to the "New-School" print preview via VBA?

python - 使用 Python 进行独立于操作系统的打印

java - NullPointExceptionError 需要帮助

java - 传递对方法的引用 Java

java - 使用 DOM 解析 XML 时的最大大小

pdf - ITextSharp - PdfPCell 中的文本字段

ios - 在 swift 中从 HTML 字符串创建 PDF 文件时如何设置 pdf 中的底部空间?

java - != Java for 循环中的运算符

c# - 不使用第 3 方工具从头开始开发 Word 到 PDF 转换器

c# - PrintPage PrintPageEventHandler 正在打印太多副本