我有一些记录存储在数据库中。我想将它们打印到一些Avery标签上。我可以使用FPDF创建pdf文档。我可以使用扩展了FPDF的PDF_Label轻松定位信息以使其与Avery标签对齐。到目前为止,一切都很好。
除了输出文本外,我还想用一个二维码表示一些数据。我可以创建二维码,将它们作为.png文件临时存储在磁盘上。我可以将qr_codes作为图像插入.pdf文档中。到目前为止一切顺利。
但这是问题所在:PDF_label创建了与Avery标签对齐的“单元”,并专门处理文本而不是图像。如何“轻松”将每个二维码插入每个标签?
我在网上看了两天,但是对此似乎没有什么指导-除了一条特别警告不要将图像插入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个qrcode。可能有几张图像相互重叠。 qr_codes在每行标签的顶部垂直对齐,但未正确水平放置。大概是因为这是调用这些方法时GetX和GetY给出的位置。
任何帮助表示赞赏...
答案 0 :(得分:0)
我使用了TCPDF和推荐的创建qrcode的方法,然后使用“围绕”它的单元格来打印文本