Hallo Leute,
ich habe da so ein Problem und komme einfach nicht mehr weiter.
Ich lade eine HTML-Seite in MyEditor (extends JEditorPane) und möchte diese dann ausdrucken. Es funktioniert auch zum Teil, es wird halt bloß die erste Seite ausgedruckt. Hier ist der Code:
Bin für jede Hilfe äußerst dankbar.
Edit Illuvatar: Das nächste Mal aber bitte selber den Code einrücken...
ich habe da so ein Problem und komme einfach nicht mehr weiter.
Ich lade eine HTML-Seite in MyEditor (extends JEditorPane) und möchte diese dann ausdrucken. Es funktioniert auch zum Teil, es wird halt bloß die erste Seite ausgedruckt. Hier ist der Code:
Code:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.swing.JEditorPane;
import javax.swing.text.View;
import javax.swing.text.html.HTMLEditorKit;
public class MyEditor extends JEditorPane implements Printable
{
private HTMLEditorKit html = new HTMLEditorKit();
private PrinterJob PJ;
public MyEditor()
{
PJ = PrinterJob.getPrinterJob();
PJ.setPrintable(this);
}
public void load(String HTMLFile)
{
setEditorKit(html);
try{this.setPage(this.getClass().getResource(HTMLFile));}
catch(Exception e) {System.out.println("Fehler beim laden der URL.");}
}
public void setHTMLText(String html)
{
setContentType("text/html");
setText(html);
}
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException
{
Graphics2D g2 = (Graphics2D) g;
g2.translate((int) pf.getImageableX(), (int) pf.getImageableY());
g2.setClip(0, 0, (int) pf.getImageableWidth(), (int) pf.getImageableHeight());
//setup of PrintView
View root = this.getUI().getRootView(this);
if(pi > (this.getHeight() / (int) pf.getImageableHeight())) return Printable.NO_SUCH_PAGE;
root.paint(g2, new Rectangle( 0,
(int)pf.getImageableHeight() * pi,
(int)pf.getImageableWidth(),
(int)pf.getImageableHeight() * (pi+1)));
return Printable.PAGE_EXISTS;
}
public void drucke()
{
if(PJ.printDialog())try{PJ.print();}catch(Exception pe){pe.printStackTrace();}
}
}
Bin für jede Hilfe äußerst dankbar.
Edit Illuvatar: Das nächste Mal aber bitte selber den Code einrücken...