如何使用fpdf和pdf_label将动态生成的qrcodes添加到pdf中

问题描述 投票:0回答:1

我有一些记录存储在数据库中。我想将它们打印到Avery标签上。我可以使用FPDF来创建pdf文档。我可以使用PDF_Label扩展FPDF,轻松定位信息以与Avery标签对齐。到现在为止还挺好。

除了输出文本,我想在qr代码中表示一些数据。我可以创建qr代码,将它们临时存储在磁盘上作为.png文件。我可以将qr_codes作为图像插入到.pdf文档中。到现在为止还挺好。

但问题在于:PDF_label创建的“单元格”与Avery标签对齐,专门处理文本,而不是图像。如何“轻松”将每个qr代码插入每个标签?

我在网上看了两天,但似乎很少有这方面的指导 - 除了一条建议不要将图像插入FPDF细胞。

一种选择可能是使用TCPDF,但我会很感激有关扩展的一些建议,如果有任何有用的话。

为了记录,到目前为止我的代码是:

<?php
    require_once( 'vendor/fpdf181/fpdf.php' );
    require_once( 'vendor/fpdf_label/PDF_Label.php');
    require_once( 'vendor/phpqrcode/qrlib.php' );

   // fetch data from database
   /* … works fine and creates an array of locations … */

   foreach( $locations as $location )
   {
        $title          = "Location " . $location['id'];
        $name           = $location['name'];
        $footer         = "https://www.example.com/something/";
        $barcode_text   = "https://www.example.com/something/?t=1&u=1&l=" . $location['id'];

        // create a temporary file to hold the barcode.png
        $filePath       = './qr_codes/temp_'. $location['id'] . '.png';

        $qr_code        = new QRcode();
        QRcode::png( $barcode_text, $filePath );



        $text  = "";
        $text .= sprintf( $title . "\n" . $name . "\n");
        $text .= $pdf->Image( $filePath, $pdf->GetX(), $pdf->GetY(), 20 );
        $text .= sprintf( "\n" . $footer );


        //$pdf->Add_Label($text);
        $pdf->Add_Label($text);
}

从7条记录中,这在pdf上只生成3个qrcodes。可能有几个图像相互叠加。 qr_codes垂直对齐每行标签的顶部,但未正确水平放置。大概这是因为这是GetX和GetY在调用这些方法时给出的位置。

任何帮助非常感谢...

php qr-code fpdf
1个回答
0
投票

解决了这个问题的回应:How can I use TCPDF to make 2x6 sheets of labels that include 2D barcodes WITHOUT using columns OR 3rd-party classes?

我使用TCPDF和推荐的创建qrcode的方法,然后使用一个单元格“打开”来打印文本

© www.soinside.com 2019 - 2024. All rights reserved.