1. Html2Image
- <dependency>
- <groupId>gui.ava</groupId>
- <artifactId>html2image</artifactId>
- <version>2.0.1</version>
- </dependency>
复制代码- String HtmlTemplateStr = "....";// HTML
- HtmlParser htmlParser = new HtmlParserImpl();
- htmlParser.loadHtml(HtmlTemplateStr);
- ImageRenderer imageRenderer = new ImageRendererImpl(htmlParser);
- imageRenderer.saveImage("./image.png");
复制代码 假如出现图片变红题目
- public class ImageRendererSubImpl extends ImageRendererImpl {
- public ImageRendererSubImpl(DocumentHolder documentHolder) {
- super(documentHolder);
- }
- private String getImageFormat(String filename) {
- if (this.getImageFormat() != null) {
- return this.getImageFormat();
- } else {
- return filename != null ? FormatNameUtil.formatForFilename(filename) : FormatNameUtil.getDefaultFormat();
- }
- }
- private FSImageWriter getImageWriter(String imageFormat) {
- FSImageWriter imageWriter = new FSImageWriter(imageFormat);
- imageWriter.setWriteCompressionMode(this.getWriteCompressionMode());
- imageWriter.setWriteCompressionQuality(this.getWriteCompressionQuality());
- imageWriter.setWriteCompressionType(this.getWriteCompressionType());
- return imageWriter;
- }
- public void saveImage(File file) {
- try {
- BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file));
- this.save(outputStream, file.getName(), true);
- } catch (IOException var3) {
- throw new RenderException("IOException while rendering image to " + file.getAbsolutePath(), var3);
- }
- }
- public void saveImage(String filename) {
- this.saveImage(new File(filename));
- }
- private void save(OutputStream outputStream, String filename, boolean closeStream) {
- try {
- String imageFormat = this.getImageFormat(filename);
- FSImageWriter imageWriter = this.getImageWriter(imageFormat);
- BufferedImage bufferedImage = this.getBufferedImage(getImageType(imageFormat));
- imageWriter.write(bufferedImage, outputStream);
- } catch (IOException var15) {
- throw new RenderException("IOException while rendering image", var15);
- } finally {
- if (closeStream) {
- try {
- outputStream.close();
- } catch (IOException var14) {
- ;
- }
- }
- }
- }
- /**
- * 获取图像类型
- * 根据图像的格式
- */
- public int getImageType(String imageFormat){
- if ("jpg".equalsIgnoreCase(imageFormat)){
- return BufferedImage.TYPE_3BYTE_BGR;
- }
- if ("bmp".equalsIgnoreCase(imageFormat)){
- return BufferedImage.TYPE_INT_RGB;
- }
- return BufferedImage.BITMASK;
- }
- }
复制代码 2. cssbox
- <dependency>
- <groupId>net.sf.cssbox</groupId>
- <artifactId>cssbox</artifactId>
- <version>5.0.2</version>
- </dependency>
复制代码- try{
- // 创建 ImageRenderer 实例
- ImageRenderer render = new ImageRenderer();
- // 将文件路径转换为 URL
- File file = new File("./html.html");
- URL url = file.toURI().toURL();
- // 输出文件流
- FileOutputStream outputStream = new FileOutputStream("./html.png");
- // 调用 renderURL 方法
- render.renderURL(url.toString(), outputStream);
- // 关闭输出流
- outputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
复制代码 3. Openhtmltopdf
- <dependency>
- <groupId>io.github.openhtmltopdf</groupId>
- <artifactId>openhtmltopdf-java2d</artifactId>
- <version>1.1.24</version>
- </dependency>
复制代码 由于过于复杂这里使用基于的html转图片代码
- <!-- https://mvnrepository.com/artifact/com.github.alotuser/html2image -->
- <dependency>
- <groupId>com.github.alotuser</groupId>
- <artifactId>html2image</artifactId>
- <version>1.0.0</version>
- </dependency>
复制代码- String html=HtmlRender.readHtml("D://about.xhtml");
- HtmlRender htmlRender=new HtmlRender(BufferedImage.TYPE_INT_RGB);//main: BufferedImage.TYPE_INT_ARGB
- htmlRender.addFontDirectory("D:/myfonts");
- //生成图片
- htmlRender.toPng(html, "D://test.png");
- //生成pdf文件
- try (FileOutputStream outputStream = new FileOutputStream("D:/test.pdf")) {
- htmlRender.toPdf(html,outputStream);
- }
复制代码 4. wkhtmltopdf
底层是欣赏器内核以是支持js
前去下载 https://wkhtmltopdf.org/downloads.html
自利用用下令行调用即可
5. chrome 举行渲染这里不睁开了
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|