Javaアプレットは、text / htmlを標準のプリンタドライバ(すべての一般的なプラットフォームWin / Mac / Linuxを使用)に簡単に印刷できますか?
署名する必要がありますか?
印刷するには、署名付きアプレットを使用する必要があります。または、署名なしアプレットを印刷しようとすると、ユーザーは許可を許可するかどうかを尋ねられます。
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();
}
印刷するには、セキュリティ マネージャがプリンタへのアクセスを許可する必要があります。これは、アプレットに署名するか、少なくともSun の Java プラグインの最近のバージョンでは、署名されていないアプレットが印刷しようとすると、許可を許可するかどうかを尋ねるプロンプトが表示されることを意味します。