您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
js将网页转换成pdf文件流并上传到服务器
发布时间:2022-06-30 21:15:54编辑:雪饮阅读()
这个需求实现起来,目前看来不是特别难,目前仅仅在chrome浏览器上面测试了,win10环境的,其它情况没有测试过。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- .pdf文件下载 download -->
<script src="html2canvas.js"></script>
<script src="jspdf.debug.js"></script>
<!-- jQuery 2.2.3 -->
<script src="jquery-2.2.3.min.js"></script>
</head>
<body>
<div class="right-aside" id="pdfDom" class="right-aside">
<img src="murphy_pendleton.jpg" width="100%"/>
</div>
<script type="text/javascript">
function dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(","),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, { type: mime });
}
function makeMpdf() {
var pdf = new jsPDF('p','px','a4');
// 设置打印比例 越大打印越小
pdf.internal.scaleFactor = 2;
var options = {
pagesplit: true, //设置是否自动分页
"background": '#FFFFFF' //如果导出的pdf为黑色背景,需要将导出的html模块内容背景 设置成白色。
};
var printHtml = $('#pdfDom').get(0); // 页面某一个div里面的内容,通过id获取div内容
pdf.addHTML(printHtml,0, 0, options,function() {
console.log("pdf",pdf);
var datauri = pdf.output('dataurlstring');
var file= dataURLtoFile(datauri,"test.pdf");
console.log("file",file);
var form = new FormData();
form.append("file", file);
$.ajax({
type: 'POST',
url: 'pdf.php',
data: form,
processData: false,
contentType: false,
success: function (arg) {
console.log(arg)
}
});
//pdf.save('目标.pdf');
});
}
$(document).ready(function(){
makeMpdf();
});
</script>
</body>
</html>
完整的实现demo:
关键字词:js,网页,转换,pdf,文件流
上一篇:03_Junit_使用步骤
相关文章
- 纯前端js实现二维码生成并转文件并上传到oss
- js读取excel JavaScript读取excel
- lodash神奇妙用,實現前端數據分組按字段分組 js分組
- 基于GuzzleHttp(thinkphp5实现原生获取獲取微信公衆平
- webman-请求-判断客户端是否接受json返回、获得请求的
- webman-快速開始-簡單示例-返回json、xml及jsonp
- workerman自定义协议-jsonl数据包(首部无符号int四字节
- js实现阿拉伯数字转大写
- phpunit断言-assertJsonStringEqualsJsonString
- phpunit断言-assertJsonStringEqualsJsonFile