html 转pdf下载
原文链接 https://blog.csdn.net/weixin_34289454/article/details/88768689 下载pdf
导出的页面组件如下:
- <template>
- <div id="resumeId">
- <resumeHtml ref="resume" @on-download="download"/>
- div>
- template>
"https://cdn.bootcss.com/iview/2.14.0/styles/iview.css" />
导出的样式js文件:
- export const resumecss =`
- html,
- body {
- position: relative;
- height: 100%;
- }
- .page_layout {
- position: relative;
- height: 100%;
- display: flex;
- & .layout_content {
- flex-grow: 1;
- display: flex;
- flex-direction: column;
- }
- }
- ...
2、导出Word
方法:
1)使用上面构造好的html文本,以文件流的形式发送到后台,后台通过转换得到word流传给前端并下载
- let url = `${this.$url}/uploadFile/uploadResume`;
- let html = this.getHtmlContent();
- // 构造blob文件流
- let html_ = new Blob([html],{ "type" : "text/html;charset=utf-8" })
- let formdata = new FormData();
- formdata.append('file', html_, `sdf.html`);//sdf.html是设置文件名
- axios({
- method: 'post',
- url: url,
- data:formdata,
- responseType:'blob',//这里如果不设置,下载会打不开文件
- })
- .then(res=>{
- console.log('download res',res);
- //通过后台返回 的word文件流设置文件名并下载
- var blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.wordprocessingml.document这里表示doc类型
- var downloadElement = document.createElement('a');
- var href = window.URL.createObjectURL(blob); //创建下载的链接
- downloadElement.href = href;
- downloadElement.download ='s.doc'; //下载后文件名
- document.body.appendChild(downloadElement);
- downloadElement.click(); //点击下载
- document.body.removeChild(downloadElement); //下载完成移除元素
- window.URL.revokeObjectURL(href); //释放掉blob对象
- })