vue将html内容转为图片并下载到本地

需求:将自己写的html内容转化为图片并可以下载到本地

1.安装html2canvas

npm install --save html2canvas

2.在自己所需要的页面进行引入

import html2canvas from "html2canvas";

3.html

<div class="popuptop" id="img">
    <div class="pupupbg">
        内容内容内容
    </div>
</div>
 <div class="weixin" @click="downimg">
     <div class="weixinlogo" >
         <img src="../../assets/images/mypage/down.png">
          <p class="weixinshare" >下载</p>
      </div>
</div>
<a id="downimg" href="" style="display:none"></a>

4.JS 

//下载图片
let downimg= ()=>{
  setTimeout(()=>{
    proxy.$nextTick(()=>{
      html2canvas(document.querySelector('#img'),{
        useCORS: true
      }).then(canvas => {
        var url = canvas.toDataURL()     //把canvas转成base64
        // 写一个隐藏的按标签,借助按标签的download属性下载图片
        document.querySelector('#downimg').href = url
        document.querySelector('#downimg').download = "我的持仓报告.png"
        document.querySelector('#downimg').click()
      })
    })
  },2000)
}

以上代码就能实现将html内容转为图片并下载到本地。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue.js 是一个流行的前端框架,用于构建用户界面。在 Vue 中,如果你想要实现 HTML 内容转为图片预览功能,通常是在处理富文本编辑器(如 VueQuillEditor、Vue-TinyMCE 等)或者文件上传后展示文件预览的情况。以下是一个简单的步骤: 1. 使用富文本编辑器插件:像 Quill 或者 TinyMCE 这样的插件可以让你在输入框中插入或粘贴图片,它们通常会自动显示图片的缩略图。 ```html <quill-editor :options="editorOptions" @ready="onEditorReady"></quill-editor> ``` 2. 在 JavaScript 中处理图片预览: ```javascript methods: { onEditorReady(editor) { editor.on('text', (delta, oldDelta, source) => { if (delta && delta.ops && delta.ops.insert && delta.ops.insert && delta.ops.insert.attributes) { const imgAttributes = delta.ops.insert.attributes; if (imgAttributes['src']) { // 创建一个 img 元素,并添加到某个容器中显示 const imgElement = document.createElement('img'); imgElement.src = imgAttributes['src']; this.previewContainer.appendChild(imgElement); } } }); }, previewContainer: document.getElementById('preview-container'), // 预览区域的选择 } ``` 3. 另一种情况是处理文件上传,可以使用 Vue-File-Reader 或者 Axios 发送请求获取文件内容,然后显示预览。 ```javascript <template> <div> <input type="file" @change="handleFileChange" /> <img v-if="previewUrl" :src="previewUrl" /> </div> </template> <script> export default { data() { return { previewUrl: null, }; }, methods: { handleFileChange(e) { const file = e.target.files; this.$axios.post('/api/file-preview', { file }).then(response => { this.previewUrl = response.data.url; // 假设API返回图片URL }); }, }, }; </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿wei程序媛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值