프린터로 안드로이드 폰을 사용하려고합니다. ServerSocket을 사용하여 인쇄 할 문서를 수신합니다. IP 주소와 포트를 제공하고 Generic Postscript Printer를 선택하여 IP 프린터로 전화기를 추가하면 ps 형식의 파일을 올바르게 수신 할 수 있습니다. 전화기를 IP 프린터로 추가하고 싶지 않습니다. 이제 NsdManager를 사용하여 장치를 프린터로 등록합니다. 자동으로 Bonjour 프린터로 인식되어 성공적으로 프린터로 추가 할 수 있습니다. 하지만 지금은 컴퓨터에서 문서를 인쇄 할 때마다 소켓의 입력 스트림에서이 데이터를 얻습니다. Bonjour (IPP)와 젯 다이렉트 소켓 프린터
POST/HTTP/1.1 Content-Length: 673 Content-Type: application/ipp Host:
Android-2.local:9200 User-Agent: CUPS/2.1.0 (Darwin 15.2.0; x86_64)
IPP/2.0 Expect: 100-continue Gattributes-charsetutf-8Hattributes-
natural-languageen-usEprinter-uriipp://Android-
2.local.:9200/Drequested-attributescompression-supportedDcopies-
supportedDcups-versionDdocument-format-supportedD marker-colorsDmarker-
high-levelsD marker-levelsDmarker-low-levelsDmarker-messageDmarker-
namesDmarker-typesDmedia-col-supportedD$multiple-document-handling-
supportedDoperations-supportedDprint-color-mode-supportedD printer-
alertDprinter-alert-descriptionDprinter-is-accepting-jobsD printer-
mandatory-job-attributesD printer-stateDprinter-state-messageDprinter-
state-reasons
내가 IPP 설명서를 읽고 난 문서의 입력 스트림을 읽으려고하면 (100)는 응답에 계속 그 후이
clientSocket.setTcpNoDelay(true);
BufferedOutputStream out = new BufferedOutputStream(clientSocket.getOutputStream());
out.write("HTTP/1.1 100\r\n".getBytes("UTF-8"));
out.write("\r\n".getBytes("UTF-8"));
out.write("compression-supported: \"none\"\r\n".getBytes("UTF-8"));
out.write("printer-is-accepting-jobs: \"true\"\r\n".getBytes("UTF-8"));
.....
....
out.flush();
같은 모든 필요한 PARAMS 보내고, 그것을 제공 null이고 내 컴퓨터에서 "인쇄 중 : 프린터에 연결됨"메시지가 표시되지만 수행 할 경우 out.close(); 소켓의 출력 스트림을 닫으려면 "내 컴퓨터에서 프린터 상태를 가져올 수 없습니다"라는 메시지가 나타납니다. 도와주세요. 제가 방금 전 문서를 받았지만이 게시물 요청이나 올바른 응답을 보내고 문서를받는 방법이 있습니까? 나는 꽤 오랫동안 이것을 붙들고있다. 어떤 도움을 주셔서 감사합니다.
당신의 유스 케이스는 무엇입니까? 무엇을 성취하려고합니까? 앱이 그것을 받으면 추후 스크립트로 어떤 일이 일어날까요? –
@PeterKandinsky 하루 종일 인쇄하는 모든 문서를 보관하기 위해 안드로이드를 사용하려고합니다. 서비스 유형 "_ipp._tcp"를 사용하여 NSDManager를 사용하여 장치를 발표합니다. . 나는 IPP 이해를 찾고있다. 공식 문서를 보았지만별로 도움이되지 못했습니다. 프린터와 내 컴퓨터 간의 통신이 훌륭하다는 것을 이해할 수 있다면 도움이 될 것입니다. – Zartha
"문서를 휴대 전화에 보관"하기위한 제안 : 휴대 전화에 문서 (예 : PDF 또는 모바일 앱이 지원하는 형식)를 복사하면됩니다. Dropbox와 같은 클라우드 드라이브 나 USB를 통해 복사하는 것을 원하지 않는 경우 FTP, SMB 또는 WEBDAV를 통한 파일 공유를 지원하는 앱을 사용할 수 있습니다. –