html转换到pdf

<head>
    <script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
</head>

不含分页,分页需要使用addImage单独处理

// import htmlTo from './test.js'
const domToPdf = (function(){
    $('#downloadPDF').click(function() {
        const htmlToCanvas = function(){
            const options = {
                dpi: 192,  //dpi属性的值为192,表示图像的分辨率
                scale: 1, //scale属性的值为2,表示图像的缩放比例。
                loggging:true,
                allowTaint: true,//是否允许跨源图形污染画布
                useCORS: true,//是否允许跨域图像
            };
        
            let dom = document.querySelector('#pdfCtn');
            html2canvas(dom, options).then(canvas => {
                
                // 画布背景色
                // 在pdfCtn容器上定义

                // 转为base64
                let pageData = canvas.toDataURL('image/jpeg', 1.0);
                
                // 得到canvas画布的单位是px 像素单位
                let contentWidth = canvas.width;
                let contentHeight = canvas.height;
                
                // 设置PDF的尺寸
                // 设置pdf的尺寸,pdf要使用pt单位 已知 1pt/1px = 0.75   pt = (px/scale)* 0.75
                // 2为上面的scale 缩放了2倍
                const pdfX = (contentWidth + 10) / options.scale * 0.75
                const pdfY = (contentHeight + 500) / options.scale * 0.75 // 500为底部留白

                // 设置内容图片的尺寸,img是pt单位 
                const imgX = pdfX;
                const imgY = (contentHeight / options.scale * 0.75); //内容图片这里不需要留白的距离

                // 初始化jspdf 第一个参数方向:默认''时为纵向,第二个参数设置pdf内容图片使用的长度单位为pt,第三个参数为PDF的大小,单位是pt
                var PDF = new jsPDF('', 'pt', [pdfX, pdfY])

                // 将内容图片添加到pdf中,因为内容宽高和pdf宽高一样,就只需要一页,位置就是 0,0
                PDF.addImage(pageData, 'jpeg', 0, 0, imgX, imgY)
                PDF.save('测试.pdf')

            })
        }
        htmlToCanvas()
    });
})()

相关推荐

  1. html转换pdf

    2024-07-11 05:06:02       22 阅读
  2. Vue中转换HTMLPDF

    2024-07-11 05:06:02       54 阅读
  3. 【Python】Python 批量转换PDFExcel

    2024-07-11 05:06:02       46 阅读
  4. 使用Python将HTML快速转换PDF

    2024-07-11 05:06:02       57 阅读
  5. HTML及FTL文件转换PDF的实现方式

    2024-07-11 05:06:02       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 05:06:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 05:06:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 05:06:02       45 阅读
  4. Python语言-面向对象

    2024-07-11 05:06:02       55 阅读

热门阅读

  1. 【Rust】字符串String类型学习

    2024-07-11 05:06:02       18 阅读
  2. Docker修改国内镜像源

    2024-07-11 05:06:02       17 阅读
  3. docker无法拉取镜像,推荐可以使用下面镜像源

    2024-07-11 05:06:02       18 阅读
  4. Spring Boot Vue 毕设系统讲解 7

    2024-07-11 05:06:02       19 阅读
  5. influxdb时序数据库常用命令

    2024-07-11 05:06:02       21 阅读
  6. flutter

    flutter

    2024-07-11 05:06:02      21 阅读
  7. mysql索引优化

    2024-07-11 05:06:02       15 阅读
  8. Qt 实战(2)搭建开发环境 | 2.2、.pro文件详解

    2024-07-11 05:06:02       17 阅读
  9. 完善kobj_type结构体

    2024-07-11 05:06:02       18 阅读
  10. 【C++中resize和reserve的区别】

    2024-07-11 05:06:02       19 阅读
  11. 音频基础知识

    2024-07-11 05:06:02       21 阅读