サイトでクーポンジェネレータモジュールを開発しました。html形式でクーポンを作成し、JavaScript関数を使用してそのhtml値をキャンバスに入力します。
function checkcanvas(id) {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var data = "<svg xmlns='http://www.w3.org/2000/svg' width='437' height='262'>"
+ "<foreignObject width='100%' height='100%'>"
+ "<div xmlns='http://www.w3.org/1999/xhtml' style='font-size:40px'>"
+ $("#coupon_td").html()
+ "</div>"
+ "</foreignObject>"
+ "</svg>";
var DOMURL = self.URL || self.webkitURL || self;
var img = new Image();
var svg = new Blob([data], {type: "image/svg+xml;charset=utf-8"});
var url = DOMURL.createObjectURL(svg);
img.onload = function() {
ctx.drawImage(img, 0, 0);
DOMURL.revokeObjectURL(url);
};
img.src = url;
if(id == 2) {
document.getElementById('base_64_img').value = canvas.toDataURL();
}
}
base_64_img
は単なる非表示の要素なので、データをphpコードに投稿し、base64コードを使用して画像を作成できます。
私が直面している最大の問題は、このコードがほとんどすべてのバージョンのMozilla Firefoxで完全に機能したが、GoogleChromeでは機能しなかったことです。