热搜:NVER node 开发 php

printer扩展的一些使用疑问

2024-09-08 09:55:01
printer扩展的一些使用疑问

//phpinfo();exit;//打印机的名字,并初始化$handle = printer_open("EPSON LQ-735K ESC/P2");$name = "麻花藤";$address = "上海市虹梅路1801号";//转换格式,UTF8打出来乱码$name = iconv("UTF-8", "GBK", $name);$address = iconv("UTF-8", "GBK", $address);//手动设置纸张的长宽,但这步没启作用,纸张还是按照A4的大小在进行打印printer_set_option($handle,PRINTER_PAPER_FORMAT,PRINTER_FORMAT_CUSTOM);printer_set_option($handle,PRINTER_PAPER_WIDTH,320);printer_set_option($handle,PRINTER_PAPER_LENGTH,250);//开启文档printer_start_doc($handle, "Print"); // Name Document//打印次数,其实上面printer_set_option也有参数,但也没起作用for($i=1;$i<=2;$i++){	printer_start_page($handle);	printer_draw_text($handle, $name.$i.$i.$i,150,150);	printer_draw_text($handle, $address.$i.$i.$i,250,250);	printer_end_page($handle);  //	//打印图片	//printer_start_page($handle); // Start Logo	//printer_draw_bmp($handle, "c:\\logo.bmp", 60, 0);  // Logo Dir, lenght H , With V	//printer_end_page($handle);  // End Logo}printer_end_doc($handle);   // Close document printer_close($handle);     // Close Pritner

printer_set_option这步并没有起作用,还是按照A4的规格在打印,我想自己自定义规格。不知道哪位大神用过这个扩展,指教一下。(控制面板里的打印机默认的规格我也已经改成自定义的规格了,但还是按照A4的规格在打印)


回复讨论(解决方案)

先验证一下那些常量的值是否符合你所使用的打印机所支持的命令字的值

先验证一下那些常量的值是否符合你所使用的打印机所支持的命令字的值
请问应该如何验证呀?printer_set_option这个函数我试了下其他参数,也没作用。

你看看你的打印机程序员手册,所有的打印机控制指令都是 Esc 引导的一个字符串

去官网看了看,发现有人说这个问题是printer.dll的问题,里面有BUG导致printer_set_option失效,不知道真伪~但google了2天都没发现解决办法,果断转投js,发现window.print()果然强大,解决了我的问题。