Pracuję nad czymś przy użyciu Canvas HTML5. To wszystko działa świetnie, z wyjątkiem teraz, mogę wyeksportować zawartość canvas do PNG przy użyciu Canvas2image. Ale chciałbym wyeksportować go do formatu PDF. Zrobiłem kilka badań i jestem prawie pewien, że jest to możliwe ... ale nie mogę zrozumieć, co muszę zmienić w moim kodzie, aby działało. Czytałem o wtyczce o nazwie pdf.js ... ale nie mogę wymyślić, jak wprowadzić ją do mojego kodu.Eksportuj zawartość Canvas do formatu PDF
Pierwsza część:
function showDownloadText() {
document.getElementById("buttoncontainer").style.display = "none";
document.getElementById("textdownload").style.display = "block";
}
function hideDownloadText() {
document.getElementById("buttoncontainer").style.display = "block";
document.getElementById("textdownload").style.display = "none";
}
function convertCanvas(strType) {
if (strType == "PNG")
var oImg = Canvas2Image.saveAsPNG(oCanvas, true);
if (strType == "BMP")
var oImg = Canvas2Image.saveAsBMP(oCanvas, true);
if (strType == "JPEG")
var oImg = Canvas2Image.saveAsJPEG(oCanvas, true);
if (!oImg) {
alert("Sorry, this browser is not capable of saving " + strType + " files!");
return false;
}
oImg.id = "canvasimage";
oImg.style.border = oCanvas.style.border;
oCanvas.parentNode.replaceChild(oImg, oCanvas);
showDownloadText();
}
I JS temu oszczędza obraz:
document.getElementById("convertpngbtn").onclick = function() {
convertCanvas("PNG");
}
document.getElementById("resetbtn").onclick = function() {
var oImg = document.getElementById("canvasimage");
oImg.parentNode.replaceChild(oCanvas, oImg);
hideDownloadText();
}
}
Pierwszy link wygląda bardzo interesująco. Chodzi o to, że zdaje się nie zapisywać zawartości Canvas. Płótno nie ma nic na początku. Dopiero po załadowaniu strony rysuje tło, ale na początku jest puste. Zapisuje więc PDF pustego płótna. A dla drugiego linku zapisuje tylko tekst i linki, a nie obrazy ... (Jeśli dobrze zrozumiałem). W każdym razie dzięki! – larin555