wtto WTTO'S BLOG

下载页面上的canvas

Posted on: 2022年5月18日  at 15:32
下载页面上的canvas

JS 脚本下载 canvas 为本地图片

许多文档类网站,文档的预览用的是 canvas,但是下载是收费的。
我们可以通过在控制台执行下述代码,保存预览的图片到本地。

浏览器最好是设置下载保存无需询问,提前设置好下载的目录

function getFileUrls(canvas) {
  return new Promise((resolve) => {
    canvas.toBlob((blob) => {
      const url = URL.createObjectURL(blob)
      resolve(url)
    })
  })
}

function delay() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(0)
    }, 1000)
  })
}

async function download() {
  // 这里的.inner_page是所有文档页的canvas元素选择,根据实际更改
  let canvas = document.querySelectorAll('.inner_page')
  for (let i = 0; i < canvas.length; i++) {
    const url = await getFileUrls(canvas[i])
    const a = document.createElement('a')
    a.href = url
    a.download = `${i}.png`
    a.click()
    await delay()
  }
}

download()

本地图片转 PDF 文档

下载保存所有文档页到本地图片后,可以使用 https://www.67tool.com/pdf/imgToPdf 把图片转为 pdf。

如果页面特别多,不好一下子全部转成 pdf,可以分段转成多个 pdf 文件,然后使用 https://www.67tool.com/pdf/merge 把多个 pdf 合并为一个。

作者:  wtto
发表时间: 2022年5月18日
最后更新时间:  2024年2月5日
版权说明:  CC BY-NC-ND 4.0 DEED