将当前窗口打印到File / Blob对象?

时间:2015-08-12 05:01:58

标签: javascript

我很想做:

file

File是打印文档的Blob或{{1}}内容。

这背后的想法是将我的发票打印成pdf并自动作为电子邮件附件发送,但我的小小的告诉我今天有点要求。

思想?

2 个答案:

答案 0 :(得分:1)

这样的事情怎么样(见the jsfiddle)?

var myBlob = new Blob([document.body.textContent], {type : "text/plain"});

var myReader = new FileReader();

myReader.addEventListener("loadend", function(e){
  console.log(e.srcElement.result);
});

//start the reading process.
myReader.readAsText(myBlob);

首先调用window.print,然后创建blob,然后按照自己的意愿(也许,在XHR中发送blob并让服务器处理发送电子邮件?)

答案 1 :(得分:1)

发送电子邮件是服务器的责任,您尝试从客户端执行此操作。虽然如果您只想保存为pdf,那么您可以使用jsPDF 这是fiddle

<强> HTML

<div id="content">
     <h3>Hello, this is a H3 tag</h3>

    <p>a pararaph</p>
</div>
<div id="editor"></div>
<button id="cmd">generate PDF</button>

jquery使用jsPDF

var doc = new jsPDF();
var specialElementHandlers = {
    '#editor': function (element, renderer) {
        return true;
    }
};

$('#cmd').click(function () {
    doc.fromHTML($('#content').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});