Android WebView의 Chrome 엔진은 기본적으로 PDF를 직접 렌더링 못함!

 Android WebView의 Chrome 엔진은 기본적으로 PDF를 직접 렌더링하지 못한다고 한다.

 

그래서  Mozilla에서 개발한 오픈소스 라이브러리인 PDF.js를 프로젝트 의 Assets 에 포함하여 사용하는 방법이 하나있다.

  • 메커니즘: WebView 내의 JavaScript 엔진이 PDF 바이너리 데이터를 해석하여 HTML5 Canvas에 직접 그림을 그림. 별도의 플러그인 없이 순수 웹 기술로만 동작하므로 호환성이 매우 높음. 마치 도면(PDF)을 직접 읽어 백지에 직접 스케치(Canvas)를 하는 수작업 방식임.

  • 실무적 포인트: 대용량 PDF 로드 시 메모리 점유율이 급격히 상승할 수 있으므로, 워커(Worker) 스레드 활용
    렌더링 해상도 최적화를 통해 메인 UI 스레드의 블로킹을 방지해야 함.