[하이브리드앱] pdf.js로 pdf 출력하기

misonaru·2026년 2월 25일

자바, jsp로 작업한 웹을 하이브리드앱으로 출시하는 프로젝트에 투입됨.

어플로 포팅하는 업체 솔루션에 pdf 뷰어 기능이 없다고 함;;;

찾아보니 ios는 웹뷰어 내에 pdf 뷰어가 있어 문제가 없는데,
안드로이드는 pdf를 자체적으로 렌더링 못 한다고 하더라.

웹에서는 정상 동작하지만 단말기에서는 되지 않아 포팅 업체에서 진행해야 할 것 같다고 생각하고, 이야기했으나 그쪽에서는 우리가 해야한다고 하였다. 참으로 난처한 상황...네이티브단을 내가 확인할 수도 없고, 네이티브단 코드를 내가 작업하지도 못 하지 않는가.


iOS는 왜 되고 Android는 안 되나?

iOS (WKWebView)

  • WebKit 엔진이 PDF를 네이티브로 지원
  • iframe/object 모두 자동 렌더링

Android WebView

  • 기본적으로 PDF 렌더러 없음
  • iframe이든 object든 → 그냥 바이너리 스트림

결과: 빈 화면 또는 다운로드 시도

문제는 WebView PDF 지원 여부...


Google Docs Viewer와 pdf.js 중에서 pdf.js를 선택하였다.
Google Docs Viewer의 경우 폐쇄망 환경인 이곳에서 사용하기 어렵기 때문.

반면에 pdf.js는 통신도 필요 없고, 브라우저 PDF 지원 여부와 무관하게 동작하여 선택하였다.


이하 설명을 위한 멘트.

현재 Android WebView는 PDF를 직접 렌더링하는 기능이 없어 object 태그 방식으로는 표시되지 않습니다.

pdf.js는 브라우저 기능을 사용하는 것이 아니라 JavaScript로 PDF를 직접 렌더링하는 방식이기 때문에 플랫폼과 관계없이 동일하게 표시됩니다.

따라서 iOS와 Android 모두 pdf.js 방식으로 통일 적용 가능합니다.


사용법

pdf.js를 위치시키고 src에 해당 경로 + 기존 db 조회 후 파일 존재할 경우 다운로드 및 pdf 출력하는 로직 호출

profile
미소와 나루 집사

0개의 댓글