laravel TCPDF PDF生成
阿新 • • 發佈:2019-01-13
/** * 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.圖片採用黑白,增加圖片清晰度。(彩色圖片轉碼會失真)