我想将html转换为png。
这是我的HTML
<!DOCTYPE html>
<html>
<head>
<style type="text/css">* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
main {
width: 600px;
margin: 100px auto;
}
header {
width: 100%;
height: auto;
background-color: red;
background-size: cover;
background-repeat: no-repeat;
}
header .content {
width: 80%;
margin-left: 10%;
margin-right: 10%;
display: flex;
padding: 40px 0;
}
.content .column {
width: 25%;
margin: auto;
text-align: center;
}
.content .column.lfp-logo {
width: 30%;
}
.content .column img {
width: 80%;
height: auto;
}
</style>
</head>
<body>
<main>
<header>
<div class="content">
<div class="column"><img
src="https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg"></div>
<div class="column lfp-logo"><img
src="https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg"></div>
<div class="column"><img
src="https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg"></div>
</div>
</header>
</main>
</body>
</html>
这是jsfiddle的例子。这实际上是我需要在我的png文件中jsfiddle
此外,我尝试使用phantomjs
并获取此图片
我将phantomjs与nodejs模块webshot
一起使用。
任何人都可以建议我将html渲染为png图像。 我不需要动态HTML。我想渲染的只是静态的。
更新。添加了生成图像的代码
const pug = require('pug');
const child_process = require('child_process');
const fs = require('fs');
const webshot = require('webshot');
const options = {
data: {
images: {
header: 'https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg',
team1: 'https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg',
team2: 'https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg',
competition: 'https://cdn.shopify.com/s/files/1/1237/5652/products/spiderman_3_compression_shirt_3_small.jpg'
}
}
};
const html = pug.renderFile('./template/next.pug', options);
console.log(html); // this is html
// webshot with wkhtmltoimage
child_process.exec(`echo "${html}" | wkhtmltoimage --width 600 --disable-smart-width - export/out.png`, (err) => {
console.log(err);
});
// webshot with phantomjs
webshot(html, 'hello_world.png', {siteType:'html'}, function(err) {
console.log(err);
});
答案 0 :(得分:-1)
我会说像this这样的东西。使用html2canvas,您可以轻松快速地完成工作。
convert_to_img = function (do_download) {
html2canvas(document.getElementById("contenedor_chimichangas"), {
//onrender devuelve el canvas para hacerle los retoques necesarios
onrendered: function (canvas) {//sombra aqui, sombra allí!!
var context = canvas.getContext('2d');//context from originalCanvas
var data_image = canvas.toDataURL("image/png"); //cogemos la url de la imagen sin tratar
//añadimos la url en una imagen para poder tratarla y redimensionarla
var image_edicion = $("<img/>", {
id: "image",
src: data_image
}).appendTo($("#show_img").empty());
//if we click download:
if(do_download === true){
Canvas2Image.saveAsPNG(new_canvas);
}
});
},
});
}
js在线记录。 ; d