使用base64解码在PHP中打印PDF时问题
我正在尝试创建一个PHP程序,该程序打印了PDF,该PDF在Base64中编码为任何形式的打印机。
我已经完成了解码,并且Base64 PDF正在转换为真正的PDF。但是,当我将解码的base64发送到打印机时,它会打印出解码的字符串而不是PDF。
我的代码:
打印机IP被禁用以进行开发
<?php
error_reporting(E_ALL);
$base64 = $_POST['fileBase64'];
$printer = $_POST['printer'];
printer('', 9100, $base64);
function printer($printerIp, $printerPort, $base64): void {
$docname = md5(date("Y-m-d-H-i-s-Z")) . '.pdf';
// Generate the pdf from the base64
//Decode pdf content
$pdf_decoded = base64_decode($base64);
//Write data back to pdf file
$pdf = fopen ($docname,'w');
fwrite ($pdf, $pdf_decoded);
//close output file
fclose ($pdf);
// echo file_get_contents($docname);
try {
$fp = pfsockopen($printerIp, $printerPort, $errno, $errstr);
if ($fp === false) {
echo 'Connection Failed! ' . $errno . ' ' . $errstr;
} else {
fputs($fp, file_get_contents($docname), filesize($docname));
fclose($fp);
echo "Successfully printed";
// If done then delete pdf and clear text file
exec("rm -rf '" . $docname . "'");
}
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论