首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在热敏打印机上正确对齐多个标签

如何在热敏打印机上正确对齐多个标签
EN

Stack Overflow用户
提问于 2020-04-17 22:15:33
回答 1查看 108关注 0票数 0

我尝试使用原生awt print API从java项目使用pos80热敏打印机在标签上打印二维码,结果如下。

请帮助我解决这个问题,并在标签中间一个接一个地打印二维码。

我使用javac 1.8.0_101,netbeans11.0,qrgen4来生成二维码。

我用来从dir读取二维码图像并通过awt打印的代码如下:

代码语言:javascript
复制
    public class PrinterService implements Printable {

    private PrinterJob printerJob;
    private PageFormat pageFormat;
    private Paper paper;
    private final int MARGIN = 1;

    public PrinterService() {
        printerJob = PrinterJob.getPrinterJob();
        pageFormat = printerJob.defaultPage(); // Getting the page format.
        paper = new Paper(); // Create a new paper...

        paper.setImageableArea(MARGIN, MARGIN, pageFormat.getWidth(), pageFormat.getHeight());
        pageFormat.setPaper(paper);
        pageFormat.setOrientation(PageFormat.PORTRAIT);
        printerJob.setPrintable(this, pageFormat);
        try {
            printerJob.print();
        } catch (PrinterException ex) {
            JOptionPane.showMessageDialog(null, "Printing Failed, Error: " + ex.toString());
        }
    }

    @Override
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if (pageIndex > 0) {
            return NO_SUCH_PAGE;
        }

        float marginTop = (float) 70.83;
        Graphics2D g2d = (Graphics2D) graphics;
        ImageIcon imageIcon = new ImageIcon("qrcode75b75.gif");
        Image image = imageIcon.getImage();
        g2d.drawImage(image, 20, (int) (marginTop + 10), imageIcon.getImageObserver());
        g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
        return PAGE_EXISTS;
    }

}
EN

回答 1

Stack Overflow用户

发布于 2021-02-09 00:41:03

一般的解决办法是用打印机在纸上印上一个停止标记,它是纸卷上的一个黑点,打印机读取黑点并了解对齐情况。

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

https://stackoverflow.com/questions/61273765

复制
相关文章

相似问题

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