首页 > 解决方案 > 使用java在POS热敏打印机中打印PDF或PNG

问题描述

我大家。我在使用 java 打印票证时遇到问题。我用 jasper 生成了票,然后我需要在 POS 热敏打印机中打印它。我尝试打印 PDF,结果 格式错误 然后我使用 pdfbox 将 pdf 转换为 png,但图像打印太小。如何正确打印?有什么方法可以正确打印 POS Thremal 打印机的 PDF 或填充和增加 PNG 图像?

打印PNG太小

从 Adob​​e 阅读器直接打印到我的 POS 热敏打印机,我得到了正确的票。 正确来自 Adob​​e 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();

标签: javaprintingpdfboxthermal-printerreceipt

解决方案


推荐阅读