所用插件: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>

最新文章

  1. [连载]《C#通讯(串口和网络)框架的设计与实现》- 8.总体控制器的设计
  2. 通过SQL Server 2008数据库复制实现数据库同步备份
  3. JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
  4. Java-开启一个新的线程
  5. jsp页面中创建方法
  6. [Node.js] Cluster,把多核用起来
  7. 去掉inline-block元素间隙的几种方法
  8. CLREX
  9. 【解决方案】: hyper-v 导入虚拟机报这个错误 32784
  10. Openstack:ice-house安装过程
  11. MongoDB(四)——管理架构
  12. mysql技术调优资料整理
  13. C利用宏语言(#,##,do…while(0)盛大)
  14. php5.4下配置zend guard loader
  15. UEditor编辑器第一次赋值失败的解决方法
  16. Python Skelve 库
  17. [LeetCode] Expressive Words 富于表现力的单词
  18. sql 判断两条数据库查询语句结果是否有重复
  19. CodeForces - 1101G :(Zero XOR Subset)-less(线性基)
  20. Oracle 表空间和数据文件之间的关系

热门文章

  1. 剑指offer 面试61题
  2. spring mvc 自动扫描注解失效原因
  3. dockfile
  4. 【Tech】CAS RESTful API使用笔记
  5. HTML如何禁止文本框输入
  6. memcpy与memmove
  7. ceph安装各种报错
  8. linux 安装mysql服务
  9. Spring Cloud Stream消息总线
  10. java基础(6)-集合类2