Android

[Android] Printer 연동

김한토 2024. 8. 5. 10:25
반응형

1. 인쇄 관리자(PrintManager) 에 연결

  1. 1. 사용자로부터 인쇄 요청을 받는다.
  2. 안드로이드 인쇄 프레임 워크에 연결하여 PrintManager 클래스의 인스턴스를 가져온다.\
  3. 인쇄 작업을 초기화하고 인쇄 수명주기를 시작한다.
  4. 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)
    }
}

 

인쇄 어댑터 

  1. 인쇄 프레임워크와 상호작용하고 안쇄 프로세스 단계를 처리한다.
  2. 인쇄물을 만들기 전에 프린터와 인쇄 옵션을 선택해야 한다.(출력 기능, 페이지 크기, 등등...)
  3. 선택 뒤에 인쇄 프레임워크는 출력 준비를 위해 어댑터에 인쇄 문서를 배치하고 생성하도록 요청한다.
  4. 인쇄버튼을 누르면 프레임워크는 최종 인쇄 문서를 가져와 출력 제공자에게 전달한다. 
  5. 프로세스 중에 사용자가 인쇄 작업을 취소할 수 있으므로 인쇄 어댑터는 취소 요청을 수신 대기하고 취소 요청에 응답해야한다. ..

https://developer.android.com/reference/android/print/PrintDocumentAdapter

 

PrintDocumentAdapter  |  Android Developers

 

developer.android.com

인쇄 문서 정보 계산 -> onLayout()

  1. 어댑터 클래스의 구현 내에서 인쇄 문서 유형을 지정하고 페이지 크기에 관한 정보를 고려해, 인쇄 작업을 위한 총 페이지 수를 계산할 수 있어야한다. 
  2. 인쇄 방향에 따라 출력 페이지 수를 계산하는 방법이 달라진다.

인쇄 문서 파일 작성 -> onWrite()

  1. 인쇄 출력 파일을 작성할 때, onWrite 메서드를 호출하고, 써야하는 페이지와 사용할 출력 파일을 지정한다.
  2. 요청된 콘텐츠 페이지를 여러 페이지 PDF 문서 파일로 렌더링 한다.
  3. onLayout을 호출할때마다 onWrite를 한번 이상 호출할 수 있음.. 그래서 레이아웃이 변경되지 않았을 때 onLayoutFinished 메서드( 레이아웃 콘텐츠가 마지막 요청 이후 실제로 변경되었는지 여부를 나타낸다.)의 불리언 매개변수를 false로 설정해서 인쇄 문서를 불필요하게 재작성되지 않게 해야한다. 

 

https://developer.android.com/training/printing/custom-docs?hl=ko

 

맞춤 문서 인쇄  |  Android Developers

일부 애플리케이션(예: 그리기 앱, 페이지 레이아웃 앱, 그래픽 출력에 중점을 둔 앱)의 경우 아름다운 인쇄된 페이지를 만드는 것이 핵심 기능입니다. 이 경우 이미지나 HTML 문서를 인쇄하는 것

developer.android.com

 

https://developer.android.com/training/printing/html-docs?hl=ko

 

HTML 문서 인쇄  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. HTML 문서 인쇄 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android에서 간단한 사진 외의 콘텐츠를

developer.android.com

프린터랑 와이파이 연결 + IP주소 입력 

반응형