laravel TCPDF PDF生成

/**
 * private  私有方法
 *   生成带二维码的PDF
 *  @string    $public_code 用于生成二维码
 * @string     $upc 用于生成二维码下方数字
 **/
private function cc($public_code,$upc){     //生成二维码PDF
    $this->public_code = $public_code;    //此参数用于生成二维码
    $this->upc = $upc;           //此参数为二维码下方数字
    $pdf = new TCPDF("P", "mm", array(30, 30));   //实例化一个30*30mm大小的pdf
    $pdf->SetAutoPageBreak(FALSE, PDF_MARGIN_BOTTOM);    //是否开启自动分页功能
    $pdf->setPrintHeader(false);
    $pdf->addPage();     //添加pdf页
    $pdf->SetFont('helvetica', '', 7.5);     //设置页面字体和字体大小
    $style = array(     //这个样式用于控制二维码样式,

// ‘position’ => ‘’,
// ‘align’ => ‘C’,
// ‘cellfitalign’ => ‘’,
// ‘border’ => false, //边框
// ‘fgcolor’ => array(102, 102, 102),
‘bgcolor’ => false, //array(255,255,255),
// ‘text’ => false, //是否显示条码下方文字
// ‘font’ => ‘helvetica’, //字体
// ‘fontsize’ => 6, //字体大小
// ‘stretchtext’ => 6
);
// $pdf->SetMargins(15, 27, 15);
//
// $pdf->SetHeaderMargin(5);

// $pdf->SetFooterMargin(10);

    $pdf->Image('D:\888.png', 1, 4.5, 6, 6, 'PNG', '', '', true, 1200, '', false, false, 0, false, false, false);     //引入外部图片到PDF
    $pdf->Text(6, 4, 'Scan with your');    //写文本
    $pdf->Text(6, 6.5, 'Transparency app');
    $pdf->write2DBarcode($this->public_code, 'DATAMATRIX', 7.5, 10.5, 16, 16, $style, 'N');    //写二维码 编码格式 起始位置x.y 图片宽高w,h
    $pdf->SetFont('helvetica', '', 7);
    $pdf->Text(6.3, 27.5, $this->upc);
    $pdf->Output('saa' . ".pdf", 'I');  //D下载  I展示    //输出
}

效果:在这里插入图片描述

1.laravel安装tcpdf
composer require tecnickcom/tcpdf
2.controller文件引入
use TCPDF;

坑1:网页输出的效果和下载之后用PDF文件打开的效果不一样
$pdf->Output(‘saa’ . “.pdf”, ‘I’); //D下载 I展示 //输出
也就是这里选择I和D的打印效果不一样,打印机完全按照下载下来的打印,但是不完全按照网页输出的效果打印。

坑2:左上角图片清晰度不够
解决办法:1.下载打印机官方配置工具,调整打印浓度,冷天可以将‘加热表微调’选项数值调大。
2.图片采用黑白,增加图片清晰度。(彩色图片转码会失真)

猜你喜欢

转载自blog.csdn.net/weixin_39815001/article/details/85267723
今日推荐