1

我正在尝试使用 JPS 以下教程将 JPG 图像打印到打印机,但它总是在 mac osx 中给我一个错误。它总是说,“无法转换 PostScript 文件”。

这是我用来打印的代码:

final PrintRequestAttributeSet photoAttr = createPhotoPaperPrintAttributes(copies);
PrintService printerService = findPrintService(photoAttr);
        try {
            DocAttributeSet das = new HashDocAttributeSet();
            das.add(new PrinterResolution(300, 300, PrinterResolution.DPI));
            das.add(MediaSizeName.ISO_A6);
            final Doc doc = new SimpleDoc(new FileInputStream(new File(imageFile)), DocFlavor.INPUT_STREAM.JPEG, das);

            DocPrintJob printJob = printerService.createPrintJob();
            printJob.print(doc, photoAttr);
        } catch (Exception e) {
            throw new PrintException(e);
        }

有谁知道可能出了什么问题?

我设法让它使用 Printable 界面进行打印,但我无法以高于 72 DPI 的分辨率打印图像。我尝试了一些建议,例如缩放图形 2d,但它似乎不起作用。

任何帮助,将不胜感激。

4

1 回答 1

1

仅使用 JPS,Mac 会出现问题。我的建议是使用 Java 2 Print API + Java Print Service。

Java 2 Print API 有点像 1990 年的风格。为避免使用 Java 2 Print API 创建代码,您可以使用 PDFBox http://pdfbox.apache.org作为框架。

使用 PDFBox,您可以创建一个 PDF 文档(http://pdfbox.apache.org/cookbook/documentcreation.html),但不是保存,而是使用该代码打印它:

PrinterJob printJob = PrinterJob.getPrinterJob();
PrintService service = PrintServiceLookup.lookupDefaultPrintService(); 
printJob.setPrintService(service);      
document.silentPrint(printJob);

它在我的 Mac 上运行良好。

于 2013-06-14T01:06:48.853 回答