通用打印机驱动程序 - Android

Generic printer driver - Android

我正在尝试使用我正在开发的 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();
}

谢谢!

Android 有 "print drivers",但只能通过它自己的 printing framework,不适用于您正在执行的那种直接打印机通信。

Android 有自己的 printing framework 可从病房的 Android 4.4(API 19 级)获得。

但是,如果您想将文件直接发送到打印机,则需要将文件转换为打印机可以理解的仿真文件,例如

PCL6, BR-Script 3, IBM Pro-Printer XL, Epson FX-850

您的打印机支持的仿真将在您的打印机文档中提供。

您的通用打印机驱动器应用程序 的工作原理是将 PDF 转换为图像,然后将此图像转换为您的打印机支持的仿真并将其作为字节发送到打印机。