1. 程式人生 > >laravel TCPDF PDF生成

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.圖片採用黑白,增加圖片清晰度。(彩色圖片轉碼會失真)