1. TCPDF的模块导入

TCPDF的官网为https://tcpdf.org

官方文档有几十个例子;详情参看官方文档!

2. 使用 TCPDF打印

例如:横版表格打印并自动分页

/**
     * 打印
     */
    public function actionPrint($id)
    {
        //设置无布局
        $this->layout = false;

        //获取打印数据
        $model = $this->findModel($id);

        if(!($model->is_del == 0)){
            throw new ForbiddenHttpException("该单据无法打印");
        }

        $wmsCheckDetail = new \backend\models\WmsCheckDetailSearch();
        $dataProvider = $wmsCheckDetail->searchByCheckId($id);

        //生成页面内容
        $content = $this->render('print', [
            'model' => $model,
            'dataProvider'=>$dataProvider,
        ]);
        //打印对象
//        $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false);
        $pdf = (new \TCPDF('L', 'mm', array(240, 140), true, 'UTF-8', false));
        //设置无打印头
        $pdf->setPrintHeader(false);
        $pdf->setPrintFooter(false);
        //设置PDF打印纸张的编剧
        $pdf->SetMargins(20, 20,20);
        //设置单元格内边距
        $pdf->setCellPaddings(0, 0, 0, 0);
        //设置自动进入下一页
        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_RIGHT);
        $pdf->AddPage();
        //设置字体
        $pdf->SetFont('stsongstdlight', '', 10);
        $pdf->writeHTML($content, true, false, true, false, '');
        $pdf->lastPage();
        $pdf->get('库存盘点.pdf');

    }
<style type="text/css">
    @page {
        size: A4;
        margin: 0px;
    }

    .out {
        width: 100%;
        /*border: 1px solid #ddd;*/
        /*margin: 0 auto;*/
    }

    .out .title {
        text-align: center;
    }

    table.table {
        margin: 10px;
        width: 100%;
    }

    table.table-bordered {
        /*table-layout: fixed;*/
        margin: 100px;
        /*border-collapse: collapse;*/
        border: none;
        width: 100%;
    }

    table.table-bordered td {
        border: solid 1px #000 ;
        height: 26px;
        line-height: 26px;
        text-indent: 0.5em;
    }

    .footer {
        width: 100%;
        margin: 10px;
    }
</style>
<div class="out">
    <h2 class="title"><?= $model->common_producer_info_name ?> | 库存盘点清单</h2>
    <table class="table-bordered" style="font-size: 10px">
        <tr>
            <td colspan="24" class="active">基本信息</td>
        </tr>
        <tr>
            <td colspan="2" class="active" align="center">编号</td>
            <td colspan="6" align="center">
                <?= $model->wms_check_code; ?>
            </td>
            <td colspan="4" class="active" align="center">存货类型</td>
            <td colspan="4" align="center">
                <?= $model->common_producer_herb_type == 1 ? '原料' : '成品'; ?>
            </td>
            <td colspan="4" class="active" align="center">截止日期</td>
            <td colspan="4" align="center">
                <?= date('Y-m-d', strtotime('-1 day', $model->wms_check_end_at)) ?>
            </td>
        </tr>
        <tr>
            <td colspan="24" class="active">库存清单</td>
        </tr>
        <tr>
            <td colspan="2" class="active" align="center">名称</td>
            <td colspan="2" class="active" align="center">等级</td>
            <td colspan="4" class="active" align="center">单号</td>
            <td colspan="2" class="active" align="center">件数(袋)</td>
            <td colspan="2" class="active" align="center">实盘</td>
            <td colspan="2" class="active" align="center">差异</td>
            <td colspan="2" class="active" align="center">规格</td>
            <td colspan="2" class="active" align="center">重量(公斤)</td>
            <td colspan="2" class="active" align="center">实盘</td>
            <td colspan="2" class="active" align="center">差异</td>
            <td colspan="2" class="active" align="center">说明</td>
        </tr>
        <?php foreach ($dataProvider->getModels() as $detail){ ?>
            <tr>
                <td colspan="2" align="center"><?= $detail->common_producer_herb_info_name ?></td>
                <td colspan="2" align="center"><?= substr($detail->common_producer_herb_grade_info_name, 0, 12) ?></td>
                <td colspan="4" align="center"><?= $detail->wms_herb_in_sheet_number ?></td>
                <td colspan="2" align="center"><?= $detail->wms_check_detail_system_package_num ?></td>
                <td colspan="2" align="center"></td>
                <td colspan="2" align="center"></td>
                <td colspan="2" align="center"></td>
                <td colspan="2" align="center"><?= \common\models\Base::weightBcdiv($detail->wms_check_detail_system_weight) ?></td>
                <td colspan="2" align="center"></td>
                <td colspan="2" align="center"></td>
                <td colspan="2" align="center"></td>
            </tr>
        <?php } ?>
        <tr>
            <td colspan="24" class="active">库管签字</td>
        </tr>
        <tr>
            <td colspan="4" class="active" align="center">盘点人</td>
            <td colspan="8">

            </td>
            <td colspan="4" class="active" align="center">盘点日期</td>
            <td colspan="8">

            </td>
        </tr>
        <tr>
            <td colspan="4" align="center">盘点备注</td>
        <td colspan="20" class="note">

        </td>
        </tr>

        <tr>
            <td colspan="24" class="active">财务签字</td>
        </tr>
        <tr>
            <td colspan="4" class="active" align="center">复核人</td>
            <td colspan="8">

            </td>
            <td colspan="4" class="active" align="center">复核日期</td>
            <td colspan="8">

            </td>
        </tr>
        <tr>
            <td colspan="4" align="center">复核备注</td>
            <td colspan="20" class="note">
            </td>
        </tr>
    </table>
    <div class="footer">
    </div>
</div>

$content 返回的是html页面打印的具体内容

纸张竖着打印用

$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false);

纸张横着打印使用

$pdf = (new \TCPDF('L', 'mm', array(240, 140), true, 'UTF-8', false));

即宽度为240,高度为140的A4纸

注意:

重要的是纸张的自动分页,如遇到表格也会形成两个表格

$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_RIGHT);

TCPDF打印从入门到精通的更多相关文章

  1. Nginx开发从入门到精通 学习目录分享学习 (阿里著作)

    Nginx开发从入门到精通   缘起 nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部 ...

  2. 2015年新版C#从入门到精通(第2版)视频教学录像【无水印版】

    <c#从入门到精通(第2版)>以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了c#的相关知识和实战技能.<c#从入门到精通(第2版)>第1篇[c#语言基础]主要讲解c# ...

  3. 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)

    办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...

  4. Hibernate从入门到精通(三)Hibernate配置文件

    在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使 ...

  5. (升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

    本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课 ...

  6. 《Java从入门到精通》src0-8

    public class HelloWorld { public static void main(String[] args) { System.out.println("Hello wo ...

  7. 【PHP】PHP从入门到精通(一)——想学习PHP的小伙伴的福利来了!

     PHP从精通到入门 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸 ...

  8. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组

     PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...

  9. 【PHP】最详细PHP从入门到精通(四)——PHP中的字符串

     PHP从入门到精通 之PHP中的字符串 大家好,继续跟进PHP最详尽的知识更新,本周,跟大家重点讲一下PHP中字符串的使用.在PHP中,字符串是非常重要的一个概念,基本上大家想到的字符串的处理功能, ...

随机推荐

  1. 深入浅出的webpack构建工具---PostCss(五)

    一:PostCss是什么?  PostCss是一个样式处理工具,它通过自定义的插件和工具生态体系来重新定义css.它鼓励开发者使用规范的css原生语法编写代码,然后配置编译器转换需要兼容的浏览器版本, ...

  2. PAT A1143 Lowest Common Ancestor (30 分)——二叉搜索树,lca

    The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U ...

  3. 5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)

    http://www.cnblogs.com/yangfengwu/p/9065559.html 基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https://it ...

  4. PHP_EOL换行 与 base64编码

    base64编码包括64个字符:10个数字(0-9),26*2个字母(a-zA-Z),+,/ 其中还有一个第65个字符=作为后缀,没有实际作用. 来一段代码说明个问题: <?php $str = ...

  5. (原创)odoo解决方案---接收以及回复外部邮件

    关于我的那篇"odoo邮件配置那些事儿"中提到的用户接收外部与业务无关邮件的问题,现已形成解决方案,有需要的朋友可以给发email,价格好商量,呵呵 直接贴图了 1.用户绑定 图1 ...

  6. 案例学python——案例二:连接数据库MySql

    调侃的话:案例一跑完之后,欣赏把玩了一番.人就有点飘飘然,昨天除了做饭吃饭,就是玩三国杀,江郎才尽,今天周一,不飘了,敲点代码,看看Python操作数据库有啥不一样的. 前期准备: 1.数据库 电脑上 ...

  7. 身在上海的她,该不该继续"坚持"前端开发?

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 一 对于目前的IT行业,我实在不想她还没在这个行业中站稳脚跟就开始有 ...

  8. 在Ubuntu18.04下将应用程序添加到启动器

    # 在启动器里面给应用程序添加一个快捷方式 在linux(ubuntu)平台下,很多小伙伴发现,自己去官网下载解压的软件不能自动添加到启动器,每次启动的时候需要再次进入软件目录输入命令,非常不方便.本 ...

  9. Jvm 10 升级笔记

    移除了 JPEGCodec https://www.cnblogs.com/liaolongjun/p/6878359.html

  10. Linux下针对服务器网卡流量和磁盘的监控脚本

    1)实时监控网卡流量的通用脚本: [root@ceph-node1 ~]# cat /root/net_monit.sh #!/bin/bash PATH=/bin:/usr/bin:/sbin:/u ...