반응형
1. 인쇄 관리자(PrintManager) 에 연결
- 1. 사용자로부터 인쇄 요청을 받는다.
- 안드로이드 인쇄 프레임 워크에 연결하여 PrintManager 클래스의 인스턴스를 가져온다.\
- 인쇄 작업을 초기화하고 인쇄 수명주기를 시작한다.
- PrintManager을 가져와서 인쇄 프로세스를 시작한다.
private fun doPrint() {
activity?.also { context ->
// Get a PrintManager instance
val printManager = context.getSystemService(Context.PRINT_SERVICE) as PrintManager
// Set job name, which will be displayed in the print queue
val jobName = "${context.getString(R.string.app_name)} Document"
// Start a print job, passing in a PrintDocumentAdapter implementation
// to handle the generation of a print document
printManager.print(jobName, MyPrintDocumentAdapter(context), null)
}
}
인쇄 어댑터
- 인쇄 프레임워크와 상호작용하고 안쇄 프로세스 단계를 처리한다.
- 인쇄물을 만들기 전에 프린터와 인쇄 옵션을 선택해야 한다.(출력 기능, 페이지 크기, 등등...)
- 선택 뒤에 인쇄 프레임워크는 출력 준비를 위해 어댑터에 인쇄 문서를 배치하고 생성하도록 요청한다.
- 인쇄버튼을 누르면 프레임워크는 최종 인쇄 문서를 가져와 출력 제공자에게 전달한다.
- 프로세스 중에 사용자가 인쇄 작업을 취소할 수 있으므로 인쇄 어댑터는 취소 요청을 수신 대기하고 취소 요청에 응답해야한다. ..
https://developer.android.com/reference/android/print/PrintDocumentAdapter
인쇄 문서 정보 계산 -> onLayout()
- 어댑터 클래스의 구현 내에서 인쇄 문서 유형을 지정하고 페이지 크기에 관한 정보를 고려해, 인쇄 작업을 위한 총 페이지 수를 계산할 수 있어야한다.
- 인쇄 방향에 따라 출력 페이지 수를 계산하는 방법이 달라진다.
인쇄 문서 파일 작성 -> onWrite()
- 인쇄 출력 파일을 작성할 때, onWrite 메서드를 호출하고, 써야하는 페이지와 사용할 출력 파일을 지정한다.
- 요청된 콘텐츠 페이지를 여러 페이지 PDF 문서 파일로 렌더링 한다.
- onLayout을 호출할때마다 onWrite를 한번 이상 호출할 수 있음.. 그래서 레이아웃이 변경되지 않았을 때 onLayoutFinished 메서드( 레이아웃 콘텐츠가 마지막 요청 이후 실제로 변경되었는지 여부를 나타낸다.)의 불리언 매개변수를 false로 설정해서 인쇄 문서를 불필요하게 재작성되지 않게 해야한다.
https://developer.android.com/training/printing/custom-docs?hl=ko
https://developer.android.com/training/printing/html-docs?hl=ko
프린터랑 와이파이 연결 + IP주소 입력
반응형
'Android' 카테고리의 다른 글
Android Webview에서 Json가져오고 사용하기(feat.Gson) (3) | 2024.09.03 |
---|---|
Android Progressbar 사용하기 (0) | 2024.08.26 |
[Android] AES-256로 개인정보 암호화 및 복호화 하기 feat.Kotlin (0) | 2024.07.31 |
Android 권한 받고 유저 핸드폰 번호 가져오기(feat. Kotlin) (0) | 2024.07.29 |
Android studio 버전 다른거 여러개 깔기 (1) | 2024.07.26 |