Yii2:如何显示条形码?
我有一个功能,打印到PDF在我的控制器。它接收条形码的HTML代码,并将其发送到_print-tags文件 我的控制器文件:Yii2:如何显示条形码?,yii2,barcode,barcode-printing,Yii2,Barcode,Barcode Printing,我有一个功能,打印到PDF在我的控制器。它接收条形码的HTML代码,并将其发送到_print-tags文件 我的控制器文件: public function actionPrintTags($barcode) { Yii::$app->response->format = 'pdf'; return $this->renderPartial('_print-tags', [ 'bar' => $barcode, ]); } &l
public function actionPrintTags($barcode)
{
Yii::$app->response->format = 'pdf';
return $this->renderPartial('_print-tags', [
'bar' => $barcode,
]);
}
<body>
<?= $bar . '<br/>' ?>
</body>
我的打印标签文件:
public function actionPrintTags($barcode)
{
Yii::$app->response->format = 'pdf';
return $this->renderPartial('_print-tags', [
'bar' => $barcode,
]);
}
<body>
<?= $bar . '<br/>' ?>
</body>
但它表明:
如果我把它展示在我的视野中,它看起来很完美:
我用
更新:$barcode具有创建条形码的HTML代码:
<div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 4px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 2px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 3px"></div><div style="float: left; font-size: 0px; width:0; border-left: 2px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 3px"></div><div style="float: left; font-size: 0px; width:0; border-left: 2px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 2px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 2px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 4px solid #000000; height: 50px;"></div><div style="float: left; font-size: 0px; background-color: #FFFFFF; height: 50px; width: 1px"></div><div style="float: left; font-size: 0px; width:0; border-left: 1px solid #000000; height: 50px;"></div><div style="clear:both; width: 100%; background-color: #FFFFFF; color: #000000; text-align: center; font-size: 10px; margin-top: 5px;">A</div>
A
这可能是mPDF的限制。mPDF不完全支持HTML和CSS功能,有些东西的呈现方式可能与浏览器不同
CSS属性float
在mPDF中得到部分支持,允许块元素(p、div等)彼此并排放置。它们还可用于创建跨越多个页面的“列”
限制:
- 只有为浮动设置了宽度,浮动才能正常工作
- 如果未设置宽度,则将宽度设置为最大可用宽度(全宽度,如果已设置浮动,则设置为更小)
- 浮动旁边的块元素调整了填充,使内容适合剩余宽度
- 浮动旁边的文本应正确换行,但背景和边框将重叠和/或凌乱地位于浮动下方
- 如果正在使用列,则不起作用
- 您不能在使用浮动的过程中更改页边距/方向等
- 浮动仅在块元素上受支持(即不支持跨度等)
您可以尝试使用此HTML并使用一些替代项(如
display:inline block
而不是float:left
),或者为父容器设置一些宽度。
但切换到能够将条形码呈现为图像的库(例如)可能会很简单-对于PDF生成器来说,简单的PNG应该不会太麻烦。什么是
$bar
?看起来有一些样式问题。为条形码添加相关代码您已为添加的代码根据文档,您必须生成带有要显示的元素的特定id的条形码in@MuhammadOmerAslam:id是A。