网上搜了很多,基本上用到的类都差不多,但把代码拷过来却发现明明就打印一页pdf,打印机却打出了3张而且内容也全是乱码(打出乱码问题大概知道了原因:是因为打印机不支持pdf文件打印)。
重要:遇到了2个问题:
- 1 使用下面的代码遇到了一个问题,在使用
HP laserjet M401d
打印机没有立即不打印,打印机上面显示”将介质装入纸盒1,普通纸 信封C4或按OK使用可用介质”,按了打印机上面的ok
按钮后才打印,这个问题需要给打印机设置任何材质打印
。- 2 后台代码报错以及打印出来二进制的乱码:
sun.print.PrintJobFlavorException: invalid flavor
,我设置的是DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF;
根据网上查证,是因为打印机不支持pdf格式,而且在程序里面设置AUTOSENSE
打印出来就是乱码了,可能是因为这个打印机是用来打印小票的。解决方法是把文件转成JPEG
格式再打印出来。