将Canvas内容导出为PDF

时间:2012-11-02 19:17:51

标签: javascript html5 canvas

我正在使用HTML5 Canvas开展工作。 这一切都很好,除了现在,我可以使用Canvas2image将画布内容导出到PNG。但我想将其导出为PDF。我做了一些研究,我很确定它是可能的......但我似乎无法理解我需要在代码中进行哪些更改才能使其正常工作。我已经读过一个名为pdf.js的插件......但我无法弄清楚如何在我的代码中实现它。

第一部分:

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();
    }

JS将保存图像:

    document.getElementById("convertpngbtn").onclick = function() {
        convertCanvas("PNG");
    }

    document.getElementById("resetbtn").onclick = function() {
        var oImg = document.getElementById("canvasimage");
        oImg.parentNode.replaceChild(oCanvas, oImg);

        hideDownloadText();
    }

}

3 个答案:

答案 0 :(得分:2)

你需要使用2个插件: 1)jsPDF 2)canvas-toBlob.js

然后添加这段代码以生成轻量级PDF:

SELECT stock.*, price.*
    FROM stock
    LEFT INNER JOIN price 
        ON stock.stock_code = price.stock_code
    WHERE stock.stock_code LIKE '%123%'
    LIMIT 0,10

答案 1 :(得分:0)

答案 2 :(得分:0)

此jspdf仅用于将文件保存在浏览器中,但是我们不能使用生成的PDF发送给服务器