条形码生成器的php代码(从这里取http://www.barcodephp.com/en/userguide)看起来就是这样。
我无法弄清楚哪个部分必须在foreach循环中从数组生成多个条形码? $code->parse('1'); // Text
此行获得1个值 - 在这种情况下为1,并生成条形码。我需要为数字数组的所有元素生成条形码
// Including all required classes
require_once('incl/class/BCGFontFile.php');
require_once('incl/class/BCGColor.php');
require_once('incl/class/BCGDrawing.php');
// Including the barcode technology
require_once('incl/class/BCGcode39.barcode.php');
// Loading Font
$font = new BCGFontFile('./incl/class/font/Arial.ttf', 18);
// The arguments are R, G, B for color.
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255);
$drawException = null;
try {
$code = new BCGcode39();
$code->setScale(2); // Resolution
$code->setThickness(30); // Thickness
$code->setForegroundColor($color_black); // Color of bars
$code->setBackgroundColor($color_white); // Color of spaces
$code->setFont($font); // Font (or 0)
$code->parse('1'); // Text
} catch(Exception $exception) {
$drawException = $exception;
}
/* Here is the list of the arguments
1 - Filename (empty : display on screen)
2 - Background color */
$drawing = new BCGDrawing('', $color_white);
if($drawException) {
$drawing->drawException($drawException);
} else {
$drawing->setBarcode($code);
$drawing->draw();
}
// Header that says it is an image (remove it if you save the barcode to a file)
header('Content-Type: image/png');
// Draw (or save) the image into PNG format.
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
答案 0 :(得分:1)
虽然我之前从未使用过该库,但您似乎只需要执行以下操作:
foreach ($barcodes as $barcode) {
$code->parse($barcode);
$drawing->setBarcode($code);
$drawing->draw();
}
其中$条形码是一个包含条形码编号的数组,而foreach位于当前$drawing->draw();
部分的位置
答案 1 :(得分:0)
嗯,你当然可以只提取一个部分来放入一个循环,但我不推荐它,因为如果其他东西根据输入崩溃,那么你将无法恢复或知道发生了什么。
我建议您将$ code写入数组。因此,为每个人创建一个新的BCGcode39。
与BCGDrawing相同,它是一个绘图表面。除非您更改它们的位置,否则不能对所有条形码使用相同的绘图表面。
您可能想要生成多个文件?为此,您需要更改BCGDrawing的第一个参数。
所以基本上
foreach($barcodes as $basicString) {
$drawException = null;
...
$code->parse($basicString);
...
$drawing = new BCGDrawing($basicString . '.png', $color_white);
...
$drawing->draw();
...
// NO header()
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
}