加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Applet可以使用打印机吗?

发布时间:2020-12-15 00:47:39 所属栏目:Java 来源:网络整理
导读:Java Applet能够轻松打印文本/ HTML到标准的打印机驱动程序(所有常见的平台Win / Mac / Linux)? 需要签名吗? 解决方法 要打印,您将需要使用 Signed Applets,或者如果未签名的小程序尝试打印,则会提示用户询问是否允许权限. 以下是使用JEditorPane打印HTML
Java Applet能够轻松打印文本/ HTML到标准的打印机驱动程序(所有常见的平台Win / Mac / Linux)?

需要签名吗?

解决方法

要打印,您将需要使用 Signed Applets,或者如果未签名的小程序尝试打印,则会提示用户询问是否允许权限.

以下是使用JEditorPane打印HTML的一些示例代码:

public class HTMLPrinter implements Printable{
    private final JEditorPane printPane;

    public HTMLPrinter(JEditorPane editorPane){
        printPane = editorPane;
    }

    public int print(Graphics graphics,PageFormat pageFormat,int pageIndex){
        if (pageIndex >= 1) return Printable.NO_SUCH_PAGE;

        Graphics2D g2d = (Graphics2D)graphics;
        g2d.setClip(0,(int)pageFormat.getImageableWidth(),(int)pageFormat.getImageableHeight());
        g2d.translate((int)pageFormat.getImageableX(),(int)pageFormat.getImageableY());

        RepaintManager rm = RepaintManager.currentManager(printPane);
        boolean doubleBuffer = rm.isDoubleBufferingEnabled();
        rm.setDoubleBufferingEnabled(false);

        printPane.setSize((int)pageFormat.getImageableWidth(),1);
        printPane.print(g2d);

        rm.setDoubleBufferingEnabled(doubleBuffer);

        return Printable.PAGE_EXISTS;
    }
}

然后发送到打印机:

HTMLPrinter target = new HTMLPrinter(editorPane);
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(target);
try{
    printJob.printDialog();
    printJob.print();
}catch(Exception e){
    e.printStackTrace();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读