將html保存為pdf并自動下載(jsPdf.debug.js,html2canvas.js)

這個其實是在做上一篇需求的時候先做出來的,但是由于某些原因不符合需求,所以這個就當做練習弄出來了笆搓。

demo效果圖如下:


image.png

注意點跟上一篇[http://www.reibang.com/p/651c786dd81f]是一樣的,這里不做介紹。

直接上代碼:
html:

<textarea id="editor_id" name="content" style="width:700px;height:300px;" placeholder="請輸入內(nèi)容"></textarea>

<button onclick="save()">將富文本編輯器里的內(nèi)容提取到頁面指定的容器中</button>
<button onclick="btnSave()">轉(zhuǎn)成圖片</button>

<div id="image" style="display: none;"></div>
<div style="width:600px;height: 200px;border:1px solid #000;margin-top:10px;padding:5px;">
    <div id="showContent" style="width:100%;height:100%"></div>
</div>

script:

<script src="../js/jquery.min.js"></script>
    <script src="kindeditor.js"></script>
    <script src="lang/zh_CN.js"></script>
<script src="../js/jsPdf.debug.js"></script>
<script src="../js/html2canvas.js"></script>
    <script src="../js/canvas2image.js"></script>
    <script src="../js/base64.js"></script>

KindEditor.ready(function (K) {
        window.editor = K.create('#editor_id', {
            items: [
                'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste',
                'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
                'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
                'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/',
                'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
                'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage',
                'flash', 'media', 'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak',
                'anchor', 'link', 'unlink', '|', 'about'
            ]
        });
    });

    var editor = K.create('textarea[name="content"]');

 // 同步數(shù)據(jù)后可以直接取得textarea的value
    editor.sync();

function save() {
        var html = editor.html();
        var showContent = document.getElementById('showContent');
        showContent.innerHTML = html;
    }

function btnSave() {
        /*生成canvas圖形*/

        // 獲取內(nèi)容id
        var content = document.getElementById("showContent");
        // 進行canvas生成

        html2canvas(content, {
            onrendered: function (canvas) {
              
                timestamp = Date.parse(new Date());
                thecanvas = "thecanvas" + timestamp
                //添加屬性
                canvas.setAttribute('id', thecanvas);
                //讀取屬性值
                // var value= canvas.getAttribute('id');
                //將生成的canvas放入指定的div中
                document.getElementById('image').appendChild(canvas);
            }

        });
        //下載
        Download(thecanvas);
    }

    function Download(thecanvas) {

        var oCanvas = document.getElementById(thecanvas);

        /*自動保存為png*/
        // 獲取圖片資源
        var img_data1 = Canvas2Image.saveAsPNG(oCanvas, true).getAttribute('src');
        //                saveFile(img_data1);
        //     保存文件函數(shù)

        var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
        save_link.href = img_data1;
        save_link.download = thecanvas;

        var event = document.createEvent('MouseEvents');
        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        save_link.dispatchEvent(event);

        /*下面的為原生的保存噪径,不帶格式名*/
        // 這將會提示用戶保存PNG圖片
        //             Canvas2Image.saveAsPNG(oCanvas);

    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市数初,隨后出現(xiàn)的幾起案子找爱,更是在濱河造成了極大的恐慌,老刑警劉巖泡孩,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件车摄,死亡現(xiàn)場離奇詭異,居然都是意外死亡仑鸥,警方通過查閱死者的電腦和手機吮播,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眼俊,“玉大人意狠,你說我怎么就攤上這事〈郑” “怎么了摄职?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長获列。 經(jīng)常有香客問我谷市,道長,這世上最難降的妖魔是什么击孩? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任迫悠,我火速辦了婚禮,結(jié)果婚禮上巩梢,老公的妹妹穿的比我還像新娘创泄。我一直安慰自己艺玲,他們只是感情好,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布鞠抑。 她就那樣靜靜地躺著饭聚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搁拙。 梳的紋絲不亂的頭發(fā)上秒梳,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機與錄音箕速,去河邊找鬼酪碘。 笑死,一個胖子當著我的面吹牛盐茎,可吹牛的內(nèi)容都是我干的兴垦。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼字柠,長吁一口氣:“原來是場噩夢啊……” “哼探越!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窑业,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤扶关,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后数冬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體节槐,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年拐纱,在試婚紗的時候發(fā)現(xiàn)自己被綠了铜异。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡秸架,死狀恐怖揍庄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情东抹,我是刑警寧澤蚂子,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站缭黔,受9級特大地震影響食茎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馏谨,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一别渔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦哎媚、人聲如沸喇伯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稻据。三九已至,卻和暖如春买喧,著一層夾襖步出監(jiān)牢的瞬間捻悯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工岗喉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炸庞。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓钱床,卻偏偏與公主長得像,于是被迫代替她去往敵國和親埠居。 傳聞我的和親對象是個殘疾皇子查牌,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,336評論 25 707
  • 當主人使用吸塵器,或掃地機器人開始工作時滥壕,不同的貓咪會有不同的反映纸颜。有的貓咪會一聽到聲音便嚇得炸毛,也有的會將它們...
    好奇心害死貓咪閱讀 221評論 0 0
  • 說說娃學習的事绎橘。 英文本來牛2全搞完后該上牛3的胁孙,我不放心,牛2再來一輪称鳞,滿共也沒幾本涮较。以前都很熟了,這一輪超級快...
    慶淑閱讀 428評論 0 3
  • 張總開會筆記整理內(nèi)容冈止。 公司全體上下執(zhí)行狂票,產(chǎn)品主義。服務(wù)熙暴,你要什么闺属?我有什么,拿不過來周霉,怎么辦掂器?找到自己的位...
    兩條腿走路的喵閱讀 1,774評論 0 1
  • 簡述 Taptic Engine 是蘋果的觸覺反饋技術(shù),其中Taptic演變自Haptic俱箱,即觸覺唉匾。 Taptic...
    暖夏未眠丶閱讀 4,357評論 0 1