狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[轉帖]前端界面生成PDF并導出下載

freeflydom
2023年8月18日 8:37 本文熱度 527

思路: 通過 html2canvas 將 HTML 頁面轉換成圖片,然后再通過 jspdf 將圖片的 base64 生成為 pdf 文件


npm install html2canvas --save 


npm install jspdf --save

文檔:http://html2canvas.hertzen.com/configuration


其中,文檔中還缺少dpi,dpi就是像素的意思,dpi的值越大,證明圖片約清晰,我這里選擇的是300

注意事項:界面隱藏、透明度為0都不能夠截圖成功

3、jspdf

文檔:https://www.freesion.com/article/97121153598/
https://parall.ax/products/jspdf
https://www.hangge.com/blog/cache/detail_2205.html

每個文檔介紹的不是很全面,所以,需要幾個文檔對比觀看下


import html2Canvas from 'html2canvas'

import JsPDF from 'jspdf'


export const getPdf = (title) =>{

    return new Promise(resolve => {

        html2Canvas(document.queryselector('#resultsHuiZongTableId'), {

            allowTaint: false,

            useCORS: true, // allowTaint、useCORS只能夠出現一個

            imageTimeout: 0,

            dpi: 300,  // 像素

            scale: 4,  // 圖片大小

        }).then(function (canvas) {

            // document.body.appendChild(canvas)

            // 用于將canvas對象轉換為base64位編碼

            let pageData = canvas.toDataURL('image/jpeg', 1.0),

                canvasWidth = canvas.width,

                canvasHeight = canvas.height,

                concentWidth = 500,

                concentHeight = Math.round((concentWidth / canvasWidth) * canvasHeight),

                position = 72,

                pageHeight = 892,

                height = concentHeight

            console.log(height, pageHeight)

            // 新建一個new JsPDF,A3的像素大小 842*1191,A4的像素大小 592*841。這個px像素不準確,不清楚他們的像素大小來源如何

            let PDF = new JsPDF('p', 'px', 'a3')

            if (height <= pageHeight) {

                // 添加圖片

                PDF.addImage(pageData, 'JPEG', 68, position, concentWidth, concentHeight)

            } else {

                while (height > 0) {

                    PDF.addImage(pageData, 'JPEG', 68, position, concentWidth, concentHeight)

                    height -= pageHeight

                    position -= pageHeight

                    if (height > 0) {

                        PDF.addPage()

                    }

                }

            }

            // 保存 pdf 文檔

            PDF.save(`${title}.pdf`)

            resolve(true)

        })

    })

}

<div class="conts" id="resultsHuiZongTableId" style="width:900px;" ></div>


該文章在 2023/8/18 8:37:32 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved