`

HTML转图片

 
阅读更多
PhantomJS
NodeJS + PhantomJS 抓取页面信息以及截图 http://www.cnblogs.com/justany/p/3279717.html
PhantomJS1.7 API http://www.cnblogs.com/ziyunfei/archive/2012/09/28/2705369.html
配置: Linux把PhantomJS加入到环境变量,window的直接运行exe文件。
利用phantomjs+casperjs实现登陆抓取网页并截图http://my.oschina.net/jiuxiaoyao/blog/148456

利用phantomjs将HTML源代码转换成图片http://neoremind.net/2013/02/%E5%88%A9%E7%94%A8phantomjs%E5%B0%86html%E6%BA%90%E4%BB%A3%E7%A0%81%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BE%E7%89%87/
PhantomJS是一个无界面的WebKit浏览器引擎,还有配套的JavaScript API.它原生支持各种web标准技术: DOM处理, CSS选择器, JSON, Canvas, 以及SVG.
通常我们的需求是将网页渲染成图片保存,那么也会有这样的情况,将HTML源代码转换成图片,下面的代码将满足需求:
var webpage = require('webpage')
  , page = webpage.create();
page.viewportSize = { width: 1024, height: 800 };
page.clipRect = { top: 0, left: 0, width: 1024, height: 800 };
page.settings = {
  javascriptEnabled: false,
  loadImages: true,
  userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0'
};
page.open('http://neoremind.net/2013/02/%E5%88%A9%E7%94%A8phantomjs%E5%B0%86html%E6%BA%90%E4%BB%A3%E7%A0%81%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BE%E7%89%87/', function (status) {
  var data;
  if (status === 'fail') {
    console.log('open page fail!');
  } else { 
    page.render('./snapshot/test.png');
  }
  // release the memory
  page.close();
  phantom.exit();
});

保存成texttoimage.js
运行: phantomjs texttoimage.js
图片保存到newimage.png中

无需浏览器执行Javascript脚本:SlimerJS http://www.open-open.com/lib/view/open1374371986777.html
SlimerJS能够利用Javascript脚本来操作一个网页。SlimerJS允许你在浏览器外执行javascript脚本。
SlimerJS用于做功能测试,页面自动化,网络监控,屏幕捕捉,等。
SlimerJS类似于PhantomJs,但它运行在Gecko之上。而SlimerJS采用Mozilla Firefox浏览器引擎来代替Webkit。

CutyCapt: 开源网页截屏工具 CutyCapt Linux 下安装和使用
http://ddbean.wordpress.com/2011/02/19/%E5%BC%80%E6%BA%90%E7%BD%91%E9%A1%B5%E6%88%AA%E5%B1%8F%E5%B7%A5%E5%85%B7-cutycapt-linux-%E4%B8%8B%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/
截取指定网页图片-CutyCapt的应用http://jingyan.baidu.com/article/90895e0f8f704364ec6b0b97.html



Html2Image https://code.google.com/p/java-html2image/
在这里看到更新的包:http://evgenyg.artifactoryonline.com/evgenyg/repo/gui/ava/html2image/
        <repository>
            <id>yoava</id>
            <name>AOL yoava</name>
            <url>http://repo.jfrog.org/artifactory/third-party-releases-local</url>
        </repository>
......
        <dependency>
            <groupId>gui.ava</groupId>
            <artifactId>html2image</artifactId>
            <version>2.0.1</version>
        </dependency>


<dependency>
   <groupId>gui.ava</groupId>
   <artifactId>html2image</artifactId>
   <version>0.9</version>
</dependency>

<repositories>
   <repository>
      <id>yoava</id>
      <name>AOL yoava</name>
      <url>http://yoava.artifactoryonline.com/yoava/repo</url>
   </repository>
</repositories>


HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadHtml("<b>Hello World!</b> Please goto <a title=\"Goto Google\" href=\"http://www.google.com\">Google</a>.");
imageGenerator.saveAsImage("hello-world.png");
imageGenerator.saveAsHtmlWithMap("hello-world.html", "hello-world.png");

HtmlImageGenerator Methods
loadUrl(url) - Loads HTML from URL object or URL string.
loadHtml(html) - Loads HTML source.
saveAsImage(file) - Save loaded HTML as image.
saveAsHtmlWithMap(file, imageUrl) - Creates an HTML file containing client-side image-map <map> generated from HTML's links.
getLinks() - List all links in the HTML document and their corresponding href, target, title, position and dimension.
getBufferedImage() - Get AWT buffered image of the HTML.
getLinksMapMarkup(mapName) - Get HTML snippet of the client-side image-map <map> generated from the links.
get/setOrientation(orientation) - Get/Set document orientation (left-to-right or right-to-left).
get/setSize(dimension) - Get/Set size of the generated image


这个还能截图,但是要打开一个新窗口。要是服务器没有安装浏览器,那它就无能为力了。
private void test2(String url) {
        try {
            // 此方法仅适用于JdK1.6及以上版本
            Desktop.getDesktop().browse(
                    new URL(url).toURI());
            Robot robot = new Robot();
            robot.delay(10000);
            Dimension d = new Dimension(Toolkit.getDefaultToolkit().getScreenSize());
            int width = (int) d.getWidth();
            int height = (int) d.getHeight();
            // 最大化浏览器
            robot.keyRelease(KeyEvent.VK_F11);
            robot.delay(2000);
            Image image = robot.createScreenCapture(new Rectangle(0, 0, width,
                    height));
            BufferedImage bi = new BufferedImage(width, height,
                    BufferedImage.TYPE_INT_RGB);
            Graphics g = bi.createGraphics();
            g.drawImage(image, 0, 0, width, height, null);
            // 保存图片
            ImageIO.write(bi, "jpg", new File("/mnt/D/work_documents/workspace/dev_cpm/2.jpg"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }



Cobra: 介绍: http://blog.csdn.net/peerlessbloom/article/details/7046777
Cobra主页:http://lobobrowser.org/
Cobra API:http://lobobrowser.org/cobra-api/index.html
只支持jdk6  不支持jdk7, 因为jdk7删除了一些字体包

JFrame window = new JFrame();  
HtmlPanel panel = new HtmlPanel();  
window.getContentPane().add(panel);  
window.setSize(600, 400);  
window.setVisible(true);  
new SimpleHtmlRendererContext(panel, new SimpleUserAgentContext()).navigate("http://www.hefeipet.com/client/chongwuzhishi/shenghuozatan/2012/0220/95.html");  
BufferedImage image = new BufferedImage(panel.getWidth(),  
panel.getHeight(), BufferedImage.TYPE_INT_ARGB);  
SwingUtilities.paintComponent(image.createGraphics(), panel,  new JPanel(), 0, 0, image.getWidth(), image.getHeight());  
ImageIO.write((RenderedImage) image, "png", new File("html.png"));




jsp网页快照,根据url获取页面缩略图 http://hi.baidu.com/bdgaojj/item/1ef674c17e0c807bcfd4f8de
java网页快照-网页转存为图片实现代码 http://www.111cn.net/jsp/java/43586.htm
个人觉得免费的java实现方式,最方便的网页快照生成方式。可以生成大型网页的快照。非常棒! 使用代码前需要导入 jar包。需要三个jar包 :swt-3.6M3-win32-win32-x86.jar,DJNativeSwing-SWT.jar,DJNativeSwing.jar
JSP网页快照代码(自动生成静态页面) http://blog.sina.com.cn/s/blog_40612750010005f5.html
Java 实现HTML 页面转成image 图片 http://blog.csdn.net/oscar999/article/details/8696769
public class HtmlToImage {

	protected static void generateOutput() throws Exception {
		
		//load the webpage into the editor
		//JEditorPane ed = new JEditorPane(new URL("http://www.google.com"));
		JEditorPane ed = new JEditorPane(new URL("http://www.hefeipet.com/client/chongwuzhishi/shenghuozatan/2012/0220/95.html"));
		ed.setSize(200,200);

		//create a new image
		BufferedImage image = new BufferedImage(ed.getWidth(), ed.getHeight(),
		                                        BufferedImage.TYPE_INT_ARGB);

		//paint the editor onto the image
		SwingUtilities.paintComponent(image.createGraphics(), 
		                              ed, 
		                              new JPanel(), 
		                              0, 0, image.getWidth(), image.getHeight());
		//save the image to file
		ImageIO.write((RenderedImage)image, "png", new File("html.png"));
	}
	public static void main(String[] args) {
		try {
			generateOutput();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
分享到:
评论

相关推荐

    html转换成图片 icepdf xhtmlrenderer

    实现把html转换成图片,解决了转换中的图片、表格、中文问题,原则是先转换成pdf,然后转换成图片,需要下载icepdf开源包,附件中包括程序和转换pdf所需jar包 html 图片 pdf icepdf xhtmlrenderer

    java实现html文件转换成图片

    本代码实现html文件转换成一个图片的功能。附件包含所需要的包。 注:该代码转换的html文件必须一个屏幕能展现出来的,如果内容太多一个屏幕展现不出来则不能很好的转换。所以该代码只适用于内容不太多的html文件。...

    html转图片

    这通常涉及到一个叫做“HTML转图片”的过程,它能够将HTML文档的内容捕获为静态图片。 在Java编程环境下,可以实现这个功能,因为Java提供了丰富的库和API来处理这样的任务。其中一个常用的库是Html2Image,这个库...

    html转图片,表格转图片下载demo.zip

    4. **可运行demo**:这个演示可能包含一个HTML页面,展示了如何使用上述库将HTML内容(比如表格)转换成图片并进行下载。用户可以输入或选择一段HTML,然后点击按钮,由`dom-to-image.js`将HTML转换为图片,接着调用...

    html转图片的java代码

    在IT行业中,将HTML页面转换为图片是一种常见的需求,例如为了网页预览、保存或分享。Java作为一种广泛使用的编程语言,提供了多种方法来实现这一功能。以下是一篇关于如何使用Java将HTML转换为图片的详细解释。 ...

    js实现html转图片并下载保存

    在JavaScript的世界里,将HTML页面转换为图片并允许用户下载保存是一种常见的需求,例如用于屏幕截图、页面预览或者数据可视化。本篇文章将详细介绍如何利用`html2canvas.js`和`canvas2image.js`这两个库来实现这个...

    html 转成图片

    在提供的压缩包“html转换成图片”中,很可能包含了使用某一种或多种方法的示例代码、教程或工具。通过学习这些资源,你可以更深入地理解HTML转图片的实现过程,并根据自己的需求进行定制。 总的来说,HTML转图片...

    html转为图片,java后端

    HTML转图片技术是一种将网页内容转化为图像的手段,常用于数据抓取、报表生成或社交媒体分享等场景。在Java后端开发中,实现这一功能通常需要借助特定的库或者工具。本项目是一个基于Maven构建的Java解决方案,名为...

    html2image 2.0.3 用于简单的html转图片

    经过测试,div里添加的样式会失效,图片能转, 也可以直接传入链接 final Html2Image html2Image = Html2Image.fromURL(new URL("http://www.qq.com/"),null);   html2Image.getImageRenderer().saveImage("d...

    html 转 图片 html to image

    HTML转图片是一种技术,它允许我们将网页或者HTML代码转换成静态图像格式,如JPEG、PNG或GIF。这种技术在很多场景下非常有用,比如网页预览、社交媒体分享、保存网页快照等。下面将详细讲解这个过程以及相关知识点。...

    html转图片js代码,整理好,轻松可以用了

    HTML转图片的JavaScript技术主要基于一个叫做`html2canvas`的库,这个库允许开发者将网页的HTML结构及其样式转化为图像。在Web开发中,这种功能有着广泛的应用,例如保存页面为海报、生成预览图或者在不支持HTML的...

    HTML转图片代码.txt

    HTML转图片的详细代码 详情请下载 内容为TXT文档 请转成相应的JAVA类

    html转图片 html2canvas

    HTML转图片技术主要涉及到网页元素的捕获与渲染,它在很多场景中都有应用,比如网页截图、社交媒体分享预览等。在这个过程中,`html2canvas`是一个关键的JavaScript库,它允许我们在浏览器环境中将HTML内容转换为...

    html代码转换成图片并下载

    综上所述,将HTML代码转换成图片并下载下来涉及前端的多个技术层面,包括DOM渲染、Canvas操作、图片转换以及文件下载等。开发者可以根据项目需求选择合适的工具和技术,同时考虑性能、兼容性和安全性。

    使用iText-2.0.8将Html转换为pdf,带图片功能

    我们需要将HTML中的图片URL下载下来,并转换成iText能识别的Image对象。 - 使用`com.itextpdf.text.Image.getInstance()`方法加载本地或网络上的图片。如果是网络图片,可能需要先下载到本地再加载。 - 注意处理...

    html 转 图片

    HTML转图片是一个常见的需求,特别是在数据可视化、网页截图或者生成分享卡片等场景中。这个过程通常涉及将HTML内容渲染到Canvas元素上,然后再通过JavaScript将其转换为图片格式,如JPEG或PNG。`html2canvas`库是...

    html转换成图片或pdf

    html文件转换成pdf,或者转换成图片

    cobra HTML转图片的jar

    总结来说,“cobra HTML转图片的jar”是一个基于Java的命令行工具,用于将HTML页面转换为图像。它可能利用了浏览器内核的渲染能力,并提供了灵活的命令行参数以满足不同的需求。在实际操作中,用户需要具备一定的...

    C#生成网页截图 将指定html网页转换成图片保存到本地

    本主题聚焦于一个特定的C#应用:如何将指定的HTML网页转换为图片并保存到本地。这个功能在很多场景下都非常实用,比如网页快照、网页预览或者在没有浏览器环境下展示网页内容。 首先,实现这一功能需要了解几个关键...

Global site tag (gtag.js) - Google Analytics