html를 이미지로 변환
HTML 화면을 이미지로 변환.
HTML 파일을 이미지 파일로 변환 하는 것이 아니라, HTML를 웹브라우저로 열었을 떄 뜨는 화면을 이미지로 변환 하는 것 입니다.
이때 이 HTML 문서는 css 속성이 따로 파일로 존재하면 안되고, 순수 HTML에 모든 속성이 다 적용이 되어야 합니다.
그래야 원하는 HTML 화면을 이미지로 변환해서 볼 수 있습니다.
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
import javax.imageio.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
public abstract class Test{
@SuppressWarnings("serial")
static class Kit extends HTMLEditorKit{
public Document createDefaultDocument() {
HTMLDocument doc = (HTMLDocument) super.createDefaultDocument();
doc.setTokenThreshold(Integer.MAX_VALUE);
doc.setAsynchronousLoadPriority(-1);
return doc;
}
}
public static BufferedImage create(String src, int width, int height){
BufferedImage image = null;
JEditorPane pane = new JEditorPane();
Kit kit = new Kit();
pane.setEditorKit(kit);
pane.setEditable(false);
pane.setMargin(new Insets(0,20,0,20));
pane.setContentType("text/html; charset=UTF-8");
try{
pane.setPage(new URL(src));
// HTML 내용을 콘솔창 출력.
System.out.println(pane.getText());
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
Container c = new Container();
SwingUtilities.paintComponent(g, pane, c, 0, 0, width, height);
g.dispose();
}catch (Exception e) {
System.out.println(e);
}
return image;
}
public static void main(String[] args){
BufferedImage ire;
// 서버의 웹서버로 접근.
String url="http://localhost/print.jsp";
//String url="file:///D:\\print.html"; 서버의 파일을 부를 때.
// 저장될 이미지 위치와 이름
String path="D:\\tmp1.jpg";
// 이미지 크기.
ire = Test.create(url, 800, 800);
try{
ImageIO.write(ire, "PNG", new File(path));
}catch(IOException e){
e.printStackTrace();
}catch(IllegalArgumentException e){
e.printStackTrace();
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] IE11 첨부파일 한글깨짐 (0) | 2017.11.27 |
---|---|
[JAVA]https 로 변경 (0) | 2017.11.27 |
[JAVA]HASHMAP 돌리기(SORT) (0) | 2017.11.24 |
[JAVA]getBean Test Main (0) | 2017.11.24 |
[JAVA]ftp util (0) | 2017.11.24 |