首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java语言。打印PDF。

Java语言。打印PDF。
EN

Stack Overflow用户
提问于 2012-08-20 18:24:32
回答 1查看 4.2K关注 0票数 4

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

代码语言:javascript
复制
Doc myDoc = new SimpleDoc(stream, myFormat, dset);
...
job.print(myDoc, aset);

因此,当我使用Java print API打印时,我得到了exception:sun.print.PrintJobFlavorException: invalid flavor,但是当我使用Adobe Reader打印时,所有打印都正常。为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2016-01-30 21:40:28

显然,PDF不是本机格式。它很可能会涵盖PostScript,而且它的古老的根源是PostScript。因此,可能存在误解。

您可以让用于PDF注册的应用程序(Adobe Reader?)打印(或打开) PDF文件。这几乎是一行代码。

代码语言:javascript
复制
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应用程序安装。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12035962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档