簡體   English   中英

如何從 html 響應 PHP 在 qrcode tcpdf 的中心設置徽標?

[英]How to set logo on the center of qrcode tcpdf from html response PHP?

我正在使用 TCPDF 庫使用 PHP 生成 pdf 文件。 他們還具有創建 qrcode 的功能。

這是我的語法

$style = array(
    'border' => 0,
    'vpadding' => 'auto',
    'hpadding' => 'auto',
    'fgcolor' => array(0, 0, 0),
    'bgcolor' => false, //array(255,255,255)
    'module_width' => 1, // width of a single module in points
    'module_height' => 1 // height of a single module in points
 );

$this->cetak->AddPage('P', 'A4');
$this->cetak->write2DBarcode("aaaaa", 'QRCODE,L', 155, $this->cetak->getY(), 30, 30, $style);
$this->cetak->Output('PKKPR.pdf', 'I');
die;

這是 output。

在此處輸入圖像描述

對於 html output 二維碼,我正在使用此代碼。

    $barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H');
    print_r($barcodeobj->getBarcodeHTML(3, 3, 'black'));
    die;

這是 output。

在此處輸入圖像描述

如何在二維碼中間制作logo? 我試圖搜索文檔,但找不到相關信息。 甚至可以在二維碼的中心設置標志嗎?

我可能會在這里糾正,但我不認為 TCPDF 條形碼 API 可以將徽標嵌入到二維碼中。 我推薦使用endroid/qr-code庫。

根據示例構建您的 QR 碼,然后使用 base 64 編碼數據 URI 將結果嵌入到您的 PDF 中,如下所示

use Endroid\QrCode\QrCode;

// Compile your QR code
$qr = QrCode::create('Data');

// Render to data URI
$data = $qr->getDataUri();

// Add to PDF page (WriteHTML example)
$pdf->writeHTML("<img src=\"$data\" width=\"200\" height=\"200\">");

如果你有 GD 庫(看起來像你),使用getBarcodePNGData()滾動你自己的 logo/qr 組合,並使用imagecopymerge在它上面應用你的 logo

$barcodeObj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H');
$qrCode = $barcodeObj->getBarcodePNGData(3, 3, 'black');
$logo = imagecreatefrompng('logo.png');

//center in qr code
$logoX =  imagesx($qrCode)/2 - imagesx($logo)/2;
$logoY =  imagesy($qrCode)/2 - imagesy($logo)/2;

imagecopymerge($qrCode, $logo, 0, 0, $logoX, $logoY, imagesx($qrCode), imagesy($qrCode), 75);

imagepng($qrCode, null, 100); // this will stream the image out directly
 

如果您使用endroid/qr-code庫作為上面的“Prof”建議,您還可以使用來自數據 stream 的$pdf->Image

// 以字符串形式呈現數據
$data = $qr->getString();

// '@' 字符用於表示跟隨圖像數據 stream 而不是圖像文件名
$pdf->Image('@'.$data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM