📄 htmlpane.java
字号:
/*
* Created on 2005/01/30
*/
package za.co.halo.SecureCommunications.util;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import javax.swing.JEditorPane;
import javax.swing.plaf.basic.BasicTextUI;
import javax.swing.text.Element;
import javax.swing.text.View;
import javax.swing.text.html.HTMLDocument;
// import za.co.iocom.util.Bug;
/**
* This pane is used to render and print HTML.
* @author ?
* @author stolen from "Swing book" found on web :TODO find
* real author
* @author (Edited) iocom
*/
public class HTMLPane extends JEditorPane implements Printable
{
protected PrintView m_printView;
public HTMLPane(String html)
{
super("text/html", html);
}
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
super.paint(g);
}
public int print(Graphics pg, PageFormat pageFormat, int pageIndex)
{
pg.translate((int) pageFormat.getImageableX(), (int) pageFormat.getImageableY());
int wPage = (int) pageFormat.getImageableWidth();
int hPage = (int) pageFormat.getImageableHeight();
pg.setClip(0, 0, wPage, hPage);
// Only do this once per print
if (m_printView == null)
{
BasicTextUI btui = (BasicTextUI) getUI();
View root = btui.getRootView(this);
Element rootElement = getDocument().getDefaultRootElement();
if (rootElement instanceof HTMLDocument)
rootElement = rootElement.getElement(2); // this,
// i
// think
// is
// the
// body
// without this, printing never finishes, possibly
// because the entire element cannot fit onto a
// page
m_printView = new PrintView(/* m_doc */getDocument().getDefaultRootElement()
.getElement(1), root, wPage, hPage); // getElement1
// for
// html
// only
}
boolean bContinue = m_printView.paintPage(pg, hPage, pageIndex);
// Bug.pr("PPPPPPPPPPPPPPPPPPrinting" + hPage + " "+
// pageIndex + " " + bContinue);
System.gc();
if (bContinue)
return PAGE_EXISTS;
else
{
m_printView = null;
return NO_SUCH_PAGE;
}
}
/**
* @see java.awt.print.Printable#print(java.awt.Graphics,
* java.awt.print.PageFormat, int)
*/
/*public int print2(Graphics g, PageFormat page, int n)
{
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
print(g2);
if (n > 1)
return Printable.NO_SUCH_PAGE;
return 0;
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -