прямая печать на принтер Wi-Fi - PullRequest
0 голосов
/ 19 февраля 2020

Я застрял, пытаясь реализовать прямую / тихую печать на принтере по IP-адресу, используя канал, указанный c. Я понимаю, что в настоящее время это не доступно на android, и javax.awt не включен в библиотеку android. Вот мой java код, который я звоню из флаттера ниже;

@Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
    new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), PRINTCHANNEL)
            .setMethodCallHandler(
                    (call, result) -> {
                      if (call.method.equals("getBatteryLevel")) {
                        int batteryLevel = getBatteryLevel();

                        if (batteryLevel != -1) {
                          result.success(batteryLevel);
                        } else {
                          result.error("UNAVAILABLE", "Battery level not available.", null);
                        }
                      } else {
                        if (call.method.equals("printVDocument")) {
                          try {
                            result.success(PrintVoucher().toString());
                          } catch (IOException e) {
                            e.printStackTrace();
                          }
                        } else { }
                        result.notImplemented();
                      }
                    }
            );
  }

Мне нужно распечатать PDF-файл напрямую на принтер в сети без пользовательского интерфейса. Кто-нибудь, пожалуйста, помогите.

и способ печати. ​​

public String PrintVoucher() throws IOException {
  int SDK_INT = Build.VERSION.SDK_INT;
    if(SDK_INT > 8)
    {
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
              .permitAll().build();
      StrictMode.setThreadPolicy(policy);
    }
    Socket clientSocket=new Socket("printerIpAddress",80);
    DataOutputStream outToServer = new       DataOutputStream(clientSocket.getOutputStream());
    outToServer.writeBytes("! 0 200 200 203 1" + 'n' + "CENTER" + 'n');
    clientSocket.close();
    return "Printed Successfully";
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...