【问题标题】:Connect and print on any ethernet printer in android using ip address使用 ip 地址在 android 中的任何以太网打印机上连接和打印
【发布时间】:2017-06-07 08:02:26
【问题描述】:

是否可以使用 IP 地址和端口在任何以太网打印机上打印?我们的想法是我们不想使用 android 的打印对话框,因为如果我们必须在同一台打印机上打印 1000 个文档,我们将手动选择打印机 1000 次。

有没有不手动控制界面的打印方式?

我试过了: How to connect a network printer over Android?

但我的打印机是以太网打印机而不是 WIFI 打印机。

【问题讨论】:

  • 请访问stackoverflow.com/questions/6301132/…,它将帮助您开发应用程序和打印
  • 上述解决方案对我不起作用。我的打印机是“Hp Laser Jet Pro M126nw”
  • 请稍等,我有解决方案,我将在 EOD 之前将同一打印机的代码发送给您。
  • 嗨 @amity 你有解决方案了吗?
  • 对不起,我会在今天 eod 之前完成的。

标签: android printing ethernet


【解决方案1】:

请在下面找到 wifi 打印类。

public abstract class WifiPrinterConnection extends AsyncTask<Void, Void, Void>  {
    private byte[] printData;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
         //place your progress dialog
    }


    @Override
    protected Void doInBackground(final Void... params) {



        try {
            final Socket socket = new Socket();
            socket.connect(new InetSocketAddress(InetAddress.getByName(((WifiPrintingEntity)this.connectionEntity).getIp()), ((WifiPrintingEntity)this.connectionEntity).getPort()),
                    ((WifiPrintingEntity)this.connectionEntity).getTimeout());
            LOGGER.info(PrinterLoggerMessage.WIFI_PRINTER_CONNECTION_SUCCESS);
            final OutputStream outputStream = socket.getOutputStream();

            final byte[] data = this.printData;
            LOGGER.info(PrinterLoggerMessage.PRINTING_STARTED);
            outputStream.write(data, 0, data.length);

            outputStream.close();
            socket.close();
            entity.setSuccessful(true);
            LOGGER.info(PrinterLoggerMessage.SOCKET_CLOSE);


        } catch (final IOException e) {

            LOGGER.error(e.getMessage(),e);
        } catch (final Exception ee) {


        }

        return null;
    }


    @Override
    public void connection(final PrintingEntity connectionEntity, final IConnectionResponse listner,final byte[] data) {
        this.connectionEntity = connectionEntity;
        this.printData = data;
        this.response = listner;
        this.execute();
    }

}

将此课程称为wifiPrinterConnection.connect()

【讨论】:

  • 这不适用于以太网打印机。我会在 wifi 打印机上尝试这个并让您知道。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多