⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlpane.java

📁 create the email in the server
💻 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 + -