import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JTextPane;
import javax.swing.plaf.basic.BasicEditorPaneUI;
/**
* <p>ImageOutput.java</p>
* <p>Created on May 14, 2011, 7:53:17 PM</p>
* <p>Copyright (c) 2007-2011. The CUCKOO Workgroup, P.R.China</p>
* @author Ren Jian
* @version 4.1
*/
class ImageOutput {
private JTextPane panel;
ImageOutput(JTextPane panel) {
this.panel = panel;
}
void output(String outputFile) {
int width = panel.getWidth();
int height = panel.getHeight();
int pageIndex = 1;
boolean isContinue = true;
while (isContinue) {
try {
BufferedImage image = new java.awt.image.BufferedImage(width, height, java.awt.image.BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setClip(0, 0, width, height);
isContinue = paint(g, height, pageIndex);
g.dispose();
ImageIO.write(image, “JPG”, new File(outputFile));
pageIndex++;
} catch (IOException ex) {
Logger.getLogger(ImageOutput.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
boolean paint(Graphics g, int height, int pageIndex) {
Graphics2D g2d = (Graphics2D) g;
Dimension d = ((BasicEditorPaneUI) panel.getUI()).getPreferredSize(panel);
double panelHeight = d.height;
double pageHeight = height;
int totalNumPages = (int) Math.ceil(panelHeight / pageHeight);
g2d.translate(0f, -(pageIndex – 1) * pageHeight);
panel.paint(g2d);
boolean ret = true;
if (pageIndex >= totalNumPages) {
ret = false;
return ret;
}
return ret;
}
}
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JTextPane;
import javax.swing.plaf.basic.BasicEditorPaneUI;
/**
* <p>ImageOutput.java</p>
* <p>Created on May 14, 2011, 7:53:17 PM</p>
* <p>Copyright (c) 2007-2011. The CUCKOO Workgroup, P.R.China</p>
* @author Ren Jian
* @version 4.1
*/
class ImageOutput {
private JTextPane panel;
ImageOutput(JTextPane panel) {
this.panel = panel;
}
void output(String outputFile) {
int width = panel.getWidth();
int height = panel.getHeight();
int pageIndex = 1;
boolean isContinue = true;
while (isContinue) {
try {
BufferedImage image = new java.awt.image.BufferedImage(width, height, java.awt.image.BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setClip(0, 0, width, height);
isContinue = paint(g, height, pageIndex);
g.dispose();
ImageIO.write(image, “JPG”, new File(outputFile));
pageIndex++;
} catch (IOException ex) {
Logger.getLogger(ImageOutput.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
boolean paint(Graphics g, int height, int pageIndex) {
Graphics2D g2d = (Graphics2D) g;
Dimension d = ((BasicEditorPaneUI) panel.getUI()).getPreferredSize(panel);
double panelHeight = d.height;
double pageHeight = height;
int totalNumPages = (int) Math.ceil(panelHeight / pageHeight);
g2d.translate(0f, -(pageIndex – 1) * pageHeight);
panel.paint(g2d);