buli
2022-05-09 0953b3b5fcf19c627c6479a6b86648df653c40db
force-app/main/default/pages/OrderPdf2.page
@@ -1,4 +1,4 @@
<apex:page Controller="OrderPdf2Controller" showHeader="false" sidebar="false" id="allPage" action="{!init}" renderAs="pdf" > <!-- renderAs="pdf" -->
<apex:page Controller="OrderPdf2Controller" showHeader="false" sidebar="false" id="allPage" action="{!init}" > <!-- renderAs="pdf" -->
<head>
    <style>
        @page {
@@ -15,9 +15,30 @@
        td.border-thick-title { border-width: 1pt 0pt 1pt 0pt; border-style: solid; border-color: black; text-align: center;}
        td.border-thick-bottom { border-width: 0pt 0pt 1pt 0pt; border-style: solid; border-color: black; text-align: center;}
        td.detail { text-align: center; }
        /* 20220221 PI改造 by 徐亮 start */
        body{margin: 0 auto;
            width: 780px;}
            #title1{height: 30px;}
            #title2{height: 110px;}
            /* 20220221 PI改造 by 徐亮 end */
    </style>
    <!-- 20220221 PI改造 by 徐亮 start  -->
    <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
    <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
    <apex:includeScript value="{!URLFOR($Resource.jspdf)}"/>
    <apex:includeScript value="{!URLFOR($Resource.html2canvas)}"/>
    <!-- 20220221 PI改造 by 徐亮 end  -->
</head>
<body style="font-family: Arial Unicode MS; page-break-inside: auto; font-size: 8pt;">
<body style="font-family: Arial Unicode MS; page-break-inside: auto; font-size: 8pt;line-height: 16pt;">
    <div id="pdf-wrapper">
        <div id="title1"></div>
    <table border="0" width="100%">
        <tr>
            <td style="text-align: center; font-size: 16pt;">完税订货单</td>
@@ -151,7 +172,7 @@
        </tr>
        <tr>
            <td style="text-align: right;">联系地址:</td>
            <td style="text-align: left;" colspan="5">{!header.delivery_address}</td>
            <td style="text-align: left;" colspan="5" id="delivery_address">{!header.delivery_address}</td>
        </tr>
        <tr>
            <td style="text-align: right;">城市:</td>
@@ -161,11 +182,11 @@
        </tr>
        <tr>
            <td style="text-align: right;">收货人姓名:</td>
            <td style="text-align: left;">{!header.delivery_user}</td>
            <td style="text-align: left;" id="delivery_user">{!header.delivery_user}</td>
            <td style="text-align: right;">固话:</td>
            <td style="text-align: left;">{!header.delivery_phone}</td>
            <td style="text-align: left;" id="delivery_phone">{!header.delivery_phone}</td>
            <td style="text-align: right;">手机:</td>
            <td style="text-align: left;">{!header.delivery_tel}</td>
            <td style="text-align: left;" id="delivery_tel">{!header.delivery_tel}</td>
        </tr>
    </table>
    <table style="border:solid 1px black" width="100%">
@@ -193,7 +214,7 @@
        </tr>
        <tr>
            <td style="text-align: right;">联系地址:</td>
            <td style="text-align: left;" colspan="5">{!header.user_address}</td>
            <td style="text-align: left;" colspan="5" id="user_address">{!header.user_address}</td>
        </tr>
        <tr>
            <td style="text-align: right;">城市:</td>
@@ -203,11 +224,11 @@
        </tr>
        <tr>
            <td style="text-align: right;">用户姓名:</td>
            <td style="text-align: left;">{!header.user_name2}</td>
            <td style="text-align: left;" id="user_name2">{!header.user_name2}</td>
            <td style="text-align: right;">固话:</td>
            <td style="text-align: left;">{!header.user_phone}</td>
            <td style="text-align: left;" id="user_phone">{!header.user_phone}</td>
            <td style="text-align: right;">手机:</td>
            <td style="text-align: left;">{!header.user_tel}</td>
            <td style="text-align: left;" id="user_tel">{!header.user_tel}</td>
        </tr>
        <apex:outputPanel layout="none" rendered="{!IF(productSegment == 'IE', true, false)}">
        <tr>
@@ -533,5 +554,134 @@
            <td style="text-align: left;">&nbsp;</td>
        </tr> -->
    </table>
</div>
</body>
<!-- 20220221 PI改造 by 徐亮 start  -->
<script>
    AWSService.sfSessionId = '{!GETSESSIONID()}';
    var staticResources = JSON.parse('{!staticResource}');
    function Fun(pdf){
        var iframe = document.createElement('iframe');
        iframe.setAttribute('style', 'position:absolute;right:0; top:0; bottom:0; height:100%; width:100%');
        document.body.appendChild(iframe);
        iframe.src = pdf.output('datauristring');
        for(let e of document.body.childNodes){
            if( e != iframe && e.style){
                e.style.display = 'none';
            }
        }
    }
    let id = "pdf-wrapper";
    var target = document.getElementById(id);
    function jsPdfDownload(){
        let pdfName = "测试";
        let id = "pdf-wrapper";
        var target = document.getElementById(id);
        target.style.background = "#FFFFFF";
        if(pdfName==''||pdfName==undefined) pdfName= getNowFormatDate();
        html2canvas(target, {
            scale: 2,
            onrendered:function(canvas) {
                let landscape = false;
                let pw = 595.28;
                let ph = 841.89;
                const marginw = 40;
                let orientation = '';
                if (landscape) {
                    let temp =ph;
                    ph = pw;
                    pw = temp;
                    orientation = 'l';
                }
                var contentWidth = canvas.width;
                var contentHeight = canvas.height;
                //一页pdf显示html页面生成的canvas高度;
                var pageHeight = contentWidth / pw * ph;
                //未生成pdf的html页面高度
                var leftHeight = contentHeight;
                //页面偏移
                var position = 0;
                //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
                var imgWidth = pw-2*marginw;//595.28//左右边距20
                var imgHeight = imgWidth/contentWidth * contentHeight;//左右边距20
                var pageData = canvas.toDataURL('image/jpeg', 1.0);
                var pdf = new jsPDF(orientation, 'pt', 'a4');// 第一个参数填字母l,注意不是数字1,为横向pdf
                //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
                //当内容未超过pdf一页显示的范围,无需分页
                if (leftHeight < pageHeight) {
                    pdf.addImage(pageData, 'JPEG', marginw, 0, imgWidth, imgHeight );//左右边距20
                } else {
                    while(leftHeight > 0) {
                        pdf.addImage(pageData, 'JPEG', marginw, position, imgWidth, imgHeight)//左右边距20
                        leftHeight -= pageHeight;
                        position -= ph;
                        //避免添加空白页
                        if(leftHeight > 0) {
                            pdf.addPage();
                        }
                    }
                }
                Fun(pdf);
            }
        })
    }
    //blockme();
    document.body.onload = function(){
        let dataIds = [];
        if('{!header.delivery_aws_data_id}')dataIds.push('{!header.delivery_aws_data_id}');
        if('{!header.user_aws_data_id}')dataIds.push('{!header.user_aws_data_id}');
        AWSService.post(staticResources.searchUrl, JSON.stringify({
            dataIds:dataIds
        }), function(data){
            //unblockUI();
            if(data && data.object && data.object.length){
                for (const obj of data.object) {
                    if (obj.dataId == '{!header.delivery_aws_data_id}') {
                        document.getElementById("delivery_address").innerHTML = obj.address1;
                        document.getElementById("delivery_user").innerHTML = obj.lastName;
                        document.getElementById("delivery_phone").innerHTML = obj.phone;
                        document.getElementById("delivery_tel").innerHTML = obj.mobilePhone;
                    }
                    if (obj.dataId == '{!header.user_aws_data_id}') {
                        document.getElementById("user_address").innerHTML = obj.address1;
                        document.getElementById("user_name2").innerHTML = obj.lastName;
                        document.getElementById("user_phone").innerHTML = obj.phone;
                        document.getElementById("user_tel").innerHTML = obj.mobilePhone;
                    }
                }
                setTimeout(() => {
                    jsPdfDownload();
                }, 1500);
            }
        }, staticResources.token);
    }
    document.body.onclick = function(){
        //jsPdfDownload();
    }
</script>
<!-- 20220221 PI改造 by 徐亮 end  -->
</apex:page>