当前位置:  开发笔记 > 编程语言 > 正文

Java Applet可以使用打印机吗?

如何解决《JavaApplet可以使用打印机吗?》经验,为你挑选了2个好方法。

Java Applet能否轻松地将text/html打印到标准打印机驱动程序(所有常见平台Win/Mac/Linux)?

是否需要签名?



1> grom..:

要打印,您需要使用已签名的小程序,或者如果未签名的小程序尝试打印,系统将提示用户询问是否允许.

以下是使用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, 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();
}



2> Neil Coffey..:

为了打印,安全管理器需要允许它访问打印机.这意味着要么对applet进行签名,要么至少使用最新版本的Sun Java插件,如果未签名的applet尝试打印,系统将提示用户询问是否允许.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有