解决方法@H_502_6@
要打印,您将需要使用
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();
}
以下是使用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(); }