// 导出页面为PDF格式
import JsPDF from 'jspdf'
import store from '@/store'
import domtoimage from './dom_to_image';
export default {
    install(Vue, options) {
        Vue.prototype.getPdfByImg = () => {

        }

        Vue.prototype.getPdf = () => {
			return new Promise((r,j) => {
				
			
            var title = store.state.answerSheet.paperItem.name
            setTimeout(() => {
                domtoimage.toJpeg(document.querySelector('#pdfDom'), { bgcolor: '#fff', scale: 4 })
                    .then((pageData) => {
                        let img = new Image();
                        img.src = pageData;
                        img.onload = function () {
                            console.log('height', img.height);
                            console.log('width', img.width);
                            const a4Height = 841.89
                            const a4Width = 592.28
                            let contentWidth = img.width
                            let contentHeight = img.height
                            let pageHeight = contentWidth / a4Width * a4Height
                            let leftHeight = contentHeight
                            let position = 0
                            let imgWidth = a4Width
                            let imgHeight = a4Width / contentWidth * contentHeight
                            console.log(pageData)
                            console.log(pageHeight, leftHeight)
                            let PDF = new JsPDF({
                                unit: 'pt',
                                format: 'a4',
                                putOnlyUsedFonts: true,
                                floatPrecision: 16
                            })
                            // 如果是一页的情况
                            if (leftHeight <= pageHeight) {
                                PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
                            } else {
                                // 如果超出则多页
                                while (leftHeight > 0) {
                                    PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
                                    leftHeight -= pageHeight
                                    position -= a4Height
                                    if (leftHeight > 0) {
                                        PDF.addPage()
                                    }
                                }
                            }
                            PDF.save(title + '.pdf')
							r(200)
                        }

                    })
                    .catch(function (error) {
                        console.error('oops, something went wrong!', error);
						j(error)
                    });

                // html2canvas( document.querySelector('#pdfDom'), {
                //     allowTaint: true,  //允许 canvas 污染， allowTaint参数要去掉，否则是无法通过toDataURL导出canvas数据的
                //     useCORS:true  //允许canvas画布内 可以跨域请求外部链接图片, 允许跨域请求。
                // } ).then( (canvas)=>{
                //     var contentWidth = canvas.width;
                //     var contentHeight = canvas.height;
                //     console.log(contentWidth)
                //     console.log(contentHeight)
                //     //一页pdf显示html页面生成的canvas高度;
                //     var pageHeight = contentWidth / 592.28 * 841.89;
                //     //未生成pdf的html页面高度
                //     var leftHeight = contentHeight;
                //     //页面偏移
                //     var position = 0;
                //     //a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
                //     var imgWidth = 595.28;
                //     var imgHeight = 595.28/contentWidth * contentHeight;
                //     var pageData = canvas.toDataURL('image/jpeg', 1.0);
                //     var pdf = new JsPDF('', 'pt', 'a4');
                //     //有两个高度需要区分，一个是html页面的实际高度，和生成pdf的页面高度(841.89)
                //     //当内容未超过pdf一页显示的范围，无需分页
                //     if (leftHeight < pageHeight) {
                //         //在pdf.addImage(pageData, 'JPEG', 左，上，宽度，高度)设置在pdf中显示；
                //         pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
                //         // pdf.addImage(pageData, 'JPEG', 20, 40, imgWidth, imgHeight);
                //     } else {    // 分页
                //         while(leftHeight > 0) {
                //             pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
                //             leftHeight -= pageHeight;
                //             position -= 841.89;
                //             //避免添加空白页
                //             if(leftHeight > 0) {
                //                 pdf.addPage();
                //             }
                //         }
                //     }
                //     //可动态生成
                //     pdf.save(title + '.pdf')
                // })
            }, 1000)
			})
		}
    }
}
