使用Java在POS热敏打印机中打印PDF或PNG

时间:2018-11-10 15:11:05

标签: java printing pdfbox thermal-printer receipt

我每个人。我在用Java打印票证时遇到问题。我用碧玉生成了票,然后需要在POS热敏打印机中打印票。我尝试打印PDF,结果得到了 Wrong Format 然后我用pdfbox将pdf转换为png,但是图像打印得太小。 如何正确打印?有什么方法可以正确打印POS Thremal Printer PDF或填充并增加PNG图像吗?

Print PNG too small

从Adobe Reader直接打印到POS热敏打印机,我有正确的票证。 Correct from Adobe Reader

这是我的代码的一部分:

PDDocument document = PDDocument.load(new File(pathFile+".pdf"));
            PDPage pd;

            PDFRenderer pdfRenderer = new PDFRenderer(document);

            for (int page = 0; page < document.getNumberOfPages(); ++page)
            {
              pd = document.getPage(page);
              BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
              ImageIOUtil.writeImage(bim, pathFile +".png", 300);

            }
            document.close();

            FileInputStream is = new FileInputStream(pathFile+".png");

            DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
            DocPrintJob job = mPrinter.createPrintJob();
            Doc doc = new SimpleDoc(is, flavor, null);

            job.print(doc, null);

            is.close();

0 个答案:

没有答案