zoukankan      html  css  js  c++  java
  • php实现pdf导出和打印功能。

    所用插件:TCODF

    //导出pdf
        
        public function export_pdf($order_sn){
            require_once(FCPATH .'../shared/plugin/tcpdf/tcpdf.php');
            
            $pdf = new TCPDF(PDF_PAGE_ORIENTATION, "pt", "A4", true, 'UTF-8', false);
            $pdf->SetFooterMargin(50);
            $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
            if (@file_exists(FCPATH .'../shared/plugin/tcpdf/examples/lang/eng.php')) {
                require_once(FCPATH .'../shared/plugin/tcpdf/examples/lang/eng.php');
                $pdf->setLanguageArray($l);
            }
            $pdf->SetMargins(20,50,10 ,true);
            $pdf->AddPage();
            $pdf->SetFont('stsongstdlight', '', 12);
            $buffer = $this->assign_value($order_sn);
            $startpos = strpos($buffer,'<!--startprint1-->');
            $endpos = strpos($buffer,'<!--endprint1-->');
            $html = substr($buffer,$startpos,$endpos-$startpos+strlen('<!--endprint1-->'));
            header("Content-type: text/html; charset=utf-8");
            $name = "customs_declaration";
            $export_name = $name.'_'.$order_sn;
            $pdf->writeHTML($html,true,false,false,false,false);
            $pdf->Output($export_name.'.pdf', 'd');
        }

      //将获取的网页赋值
        public function assign_value($order_sn){
            ob_start();
            $this->declaration_print($order_sn);
            $buffer = ob_get_contents();
            ob_clean();
            return $buffer;
        }

    通过ob缓存,将动态的页面缓存,已用来导出。

    js打印

    <script>
        function preview(oper){
            if (oper < 10){
                //get_page_info();
                bdhtml=window.document.body.innerHTML;//获取当前页的html代码
                sprnstr="<!--startprint"+oper+"-->";//设置打印开始区域
                eprnstr="<!--endprint"+oper+"-->";//设置打印结束区域
                prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html
                
                prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
                window.document.body.innerHTML=prnhtml;
                window.print();
                //prnhtml.print();
                window.document.body.innerHTML=bdhtml;
            } else {
                window.print();
            }
        }
    </script>

  • 相关阅读:
    (多行)省略号隐藏超出范围的文本
    JSON.parse()和JSON.stringify()
    如何获取每个input的值
    禁止文字被选中
    javasctipt数据类型转换
    jq实现伸缩二级菜单
    table-layout 表格宽度不随文字改变
    VNC安装和配置
    HTML超连接的使用
    HTML图像标记
  • 原文地址:https://www.cnblogs.com/bluealine/p/7170615.html
Copyright © 2011-2022 走看看