所以,我一直在阅读很多关于印刷的问题,经过几天的研究和阅读,这一切都开始变得有意义了。假设我有这段代码:(我正在使用 php 和 php_printer 扩展)
$boldon = chr(27)."E".chr(1);
$boldoff = chr(27)."E".chr(0);
$pcenter = chr(27)."a".chr(1);
$pleft = chr(27)."a".chr(0);
$handle = printer_open("Generic / Text Only File");
printer_set_option($handle, PRINTER_MODE, "RAW");
printer_write($handle, $boldon.$pcenter."Some text");
printer_write($handle, "\n");
printer_write($handle, "Some more text");
printer_write($handle, "\n");
printer_close($handle);
在本地主机上运行时效果很好,我使用的是热敏打印机,它打印得很好。当我在我的服务器上尝试这个时,我已经知道(现在它完全有意义),这不起作用,我认为这是因为实际的服务器试图在本地打印它并且找不到打印机,我想如果打印机安装在服务器中,服务器的打印机会打印它,但这不是我想要的。
以 html 或任何类型显示信息并使用 window.print() 没有用,因为浏览器不只发送文本(或者那是我读过很多次的内容)并且只发送通用文本,只打印文本(我猜) .
所以解决方案是制作一个包含 ESC/P 文本的文件,然后用 javascript 打印它(我不需要跳过其他线程中提到的打印对话框),我无法更改驱动程序,它只能是通用文本。因此,如果我用我想要的信息制作一个 .txt 文件,它将打印,但 ESC/P 被忽略,所以我无论如何都无法格式化我的文本,它将使用默认打印机选项打印,以纯文本形式发送文本(具有讽刺意味)忽略新行和每一段 ESC/P。
所以,这里的问题是,是否有创建一个文件(任何类型的文件)来发送我想要的文本而不忽略 ESC/P?