在网上找了很多的html转图片资料使用的版本都比较老了因此有一些css3样式并不支持
现在的1.0.9版本支持字体换行,并且支持css3样式扩展了很多具体可以查看源码
下面是使用方式
1.引入jar包
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-core</artifactId>
<version>1.0.9</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-java2d</artifactId>
<version>1.0.9</version>
</dependency>
2.核心代码
private static BufferedImage buildImage(String template, Map<String, Object> map) {
//填充后的html
String html = getTemplate(template, map);
//绘图构建器
Java2DRendererBuilder builder = new Java2DRendererBuilder();
builder.withHtmlContent(html, "");
//开发模式下开启可以打印信息
builder.useFastMode();
BufferedImagePageProcessor bufferedImagePageProcessor = new BufferedImagePageProcessor(
BufferedImage.TYPE_INT_RGB, 1.0);
//生成文件流
builder.toSinglePage(bufferedImagePageProcessor);
//设置字体可以在html中进行引用
builder.useFont(new File(FONT_PATH + "/1.ttf"), "font1");
builder.useDefaultPageSize(400, 700, null);
try {
builder.runFirstPage();
} catch (Exception e) {
log.error("Failed to render resource", e);
}
return bufferedImagePageProcessor.getPageImages().get(0);
}
3.如果图片有白边边距的情况
在使用的html文件中加入
<style type="text/css">
@page {
-fs-page-width: 1000px;
margin: 0;
}
</style>