프린터는 킷켓 (4.4)부터 할 수가 있다.
1. 데이터를 출력해 주기 위한 PrintDocumentAdapter를 생성하여, PrintManager의 print()를 호출하면 PrintJob이 생성된다.
2. PrintJob이 생성되며 PrinterSpooler에 추가 되고 PrintDocumentAdapter의 onStart, onLayout, onWrite, onFinish를 호출한다.
3. 호출 한 메소드들이 Printer로 출력할 정보를 받아 File로 저장한다.
4. 저장된 File을 Printer로 출력하기 위해 PrinterSpooler는 PrintService의 onPrintJopQueued()를 호출해준다.
5. PrintService는 PrintJob으로 부터 PrintDocument를 얻어와 getData()를 호출한다.
6. getData()를 호출하면 PrinterSpooler가 보내는 데이터를 받을 수 있는 FileDescriptor를 획들할 수 있다.
7. 받은 데이터를 이용하여 Printer로 출력한다.
8. Client에서 출력할 데이터의 생성
PrintDocumentAdapter의
onLayout()에서는 PrintDocumentInfo를 생성하여 Callback으로 전달
onWrite()에서는 PdfDocument를 이용하여 Print할 데이터를 만든 다음, 넘어온 FileDescriptor로 write를 하고, 완료되면 Callback으로 종료되었음을 알려준다.
9. PrintService에서는 PrintDocument의 getData()로 얻은 FileDescriptor로 PdfRenderer를 생성한다.
10. 마지막으로 PdfRenderer로 Bitmap을 생성하여 Printer로 출력한다.
'Android Studio' 카테고리의 다른 글
[안드로이드] android Print WebView 출력 (0) | 2017.04.27 |
---|---|
[안드로이드] android PrintHelper란? (0) | 2017.04.26 |
[안드로이드] android eclipse could not open selected vm debug port (8700) 에러 (0) | 2017.04.24 |
[안드로이드] android jsonArray를 string으로 뽑아내는 방법 (0) | 2017.04.21 |
[안드로이드] android eclipse sdk 23 httpget 오류 (0) | 2017.04.19 |