首页 > 解决方案 > 如何在php中格式化打印输出

问题描述

我是 php 新手,并编写了一个代码,该代码从数据库中获取一些信息并将其转换为 code128 条形码。将其回显到页面是没有问题的:

$finalvar = '<p>'.bar128(stripcslashes($row['Flowers'])).'</p>';
echo $finalvar; 

在此处输入图像描述

到现在为止还挺好。我现在想在网络打印机上打印这个条形码并使用它:

$port = "9100";
$host = "10.64.33.33";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    echo "socket_create() failed, reason: " . socket_strerror(socket_last_error    ()) . "\n";
} else {
    echo "OK.\n";
}
$result = socket_connect($socket, $host, $port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror    (socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}
socket_write($socket, $finalvar);
socket_close($socket);

打印效果很好,但不是像图片中那样打印条形码,纸张看起来像这样:

<p><table cellpadding=0 cellspacing=0><tr><td><div class="128"
style"border-"

我认为这可能更像是一种格式化的东西,但我没有找到任何有用的东西。如何打印$finalvar如上图所示?

标签: phphtmlcsssocketsprinting

解决方案


谷歌搜索“render html to image”给出了一些结果,例如这里。查看自述文件,将您的 html 转换为像这样的图像/pdf 似乎非常简单(假设您安装了它)

use Spatie\Browsershot\Browsershot;    

Browsershot::html($someHtml)->savePdf('example.pdf');

我不熟悉使用套接字和打印,但是您应该能够通过例如读取文件内容

file_get_contents('file.pdf')

并做你以前做过的事情。


推荐阅读