我正在尝试使用我正在开发的Android程序将一些文件(pdf文件)发送到网络打印机,但打印机正在打印随机字符而不是实际文档。使用不同的应用程序,我能够使用应用程序称为“通用打印机驱动器”打印到同一台打印机。我找不到任何用于Android的通用打印机驱动程序,所以我想知道这是否只是一个别名,或者是否存在我可以在Android上安装使用无线打印机的通用软件。
我用来将文件发送到打印机的代码是:
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(IP, Port (9100)), 5000);
BufferedOutputStream bos;
bos = new BufferedOutputStream(socket.getOutputStream());
InputStream in = new FileInputStream(new File (fileName));
int c;
byte[] bytes = new byte[1024];
while ((c = in.read(bytes)) != -1) {
bos.write(bytes, 0, c);
}
bos.flush();
bos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
谢谢!
答案 0 :(得分:1)
Android有自己的printing framework,可以从病房的Android 4.4(API级别19)获得。
但是,如果您想将文件直接发送到打印机,则需要将文件转换为打印机理解的模拟,如
PCL6, BR-Script 3, IBM Pro-Printer XL, Epson FX-850
您的打印机支持的仿真将在您的打印机文档中提供。
您的通用打印机驱动器应用程序的工作原理是将PDF转换为图像,然后将此图像转换为打印机支持的模拟,并将其作为字节发送到打印机。
答案 1 :(得分:0)
Android有“打印驱动程序”,但只能通过自己的printing framework,而不是您正在执行的直接打印机通信。