java - 可打印到文件

标签 java printing

我有一个可打印对象,我想将其自动打印到文件中。

我可以通过打印对话框将其打印到文件,但我必须打印 135 个不同的生成文档,并且宁愿按程序而不是手动进行。

格式并不特别重要,只要我能将其转换为 pdf 即可。

最佳答案

好的,我已经解决了。我在java文档上偶然发现了这个页面:http://docs.oracle.com/javase/7/docs/technotes/guides/jps/spec/printing2d.fm1.html#998764

感兴趣的部分是“流式 2D 图形”。

我最终得到了这个:

public static boolean printToPostScript(File file, Printable printable) {
    try {
        if(!file.exists()) {
            file.createNewFile();
        }

        PrinterJob job = PrinterJob.getPrinterJob();
        String mime = "application/postscript";
        FileOutputStream out = new FileOutputStream(file.getAbsolutePath());
        StreamPrintService printer;
        StreamPrintServiceFactory[] factories =
            PrinterJob.lookupStreamPrintServices(mime);

        if(factories.length > 0) {
                printer = factories[0].getPrintService(out);
                job.setPrintService(printer);
                job.setPrintable(printable);
                job.print();
        } else {
            System.out.println("No suitable print services");
            return false;
        }
    } catch(Exception e) {
        e.printStackTrace();
        return false;
    }

    return true;
}

可以将其修改为直接打印为 PDF,但您需要有可用的 PDF 打印机。所以我只是打印到 postscript 并使用 ps2pdf 来转换它们。

关于java - 可打印到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530704/

相关文章:

javascript - window.print() 在 ie 中不起作用并且已经尝试了正确的修复

html - 如何使用 HTML5 和 CSS3 制作可打印的条形图?

java - java.exe 程序是实际的 VM 吗?

java - 无法获取类路径资源的资源路径

python - 使用python根据变量正确打印字符

ios - Xcode 6 中的打印机模拟器在哪里

c - 打印两个 double 的答案给出答案 0.00

java - getGraphics() 上的空指针异常

Java:确定 TCP 套接字何时变慢并重新建立连接

java - int 与 long 比较会损害 Java 的性能吗?