본문 바로가기

[unity Asset 리뷰] 유니티에서 pdf 파일 열기(feat. pdf renderer)

앤디가이 2022. 9. 16.

AssetStore에서 Unity에서 PDF 파일을 열고 볼 수 있는 PDF Renderer Asset을 다운로드하여 기능을 검토해보자.

 

사용 프로젝트에서 PDF 파일을 사용해야 하는 상황이 생겼다.

AssetStore에 꽤 비싼 가격으로 판매 중인 PDF Renderer Asset 이라는 에셋을 발견!

결제 후 다운로드하여 기능을 검토해보자!

 

 

Asset 정보

에셋 명 : PDF Renderer

구매 가격 : 95달러

 

주요 기능

1. 런타임에서 PDF 파일을 열고 볼 수 있다.

2. C# 기반의 API를 제공한다.

3. PDF 페이지를 유니티의 Texture 2D로 렌더링한다.

4. 손가락을 이용한 핀치 줌인 아웃으로 페이지를 확대 축소 할 수 있다.

5. 북마크 및 썸네일 뷰어를 제공한다.

6. 검색을 지원한다.

 

지원 플랫폼

1. Windows

2. Linux

3. Mac OS X

4. Android

5. IOS

6. WebGL

등 유니티에서 퍼블리싱 할 수 있는 대부분의 플랫폼을 지원한다.

 

지원되는 유니티 버전 최소사양

Unity 2019.4.29 이상

 

파일크기

65.8MB

 

 

 

 

Asset 리뷰

구매 후 패키지매니저를 통해 다운로드 및 임포트 해준 후 기본 씬을 살펴보자.

기본 샘플 Scene 구성이 상당히 잘 되어 있다.

 

 

PDF를 불러오는 방법에 따라 다양한 샘플 Scene형태로 구성되어 있다.

PDF Renderer 샘플 Scene
PDF Renderer 샘플 Scene

모바일에서 사용할 것이기에 PDFViewer_CanvasScaler_Mobile Scene을 열고 실행해 보았다.

PDFViewer Sample Scene
PDFViewer Sample Scene

기본 구조는 lib파일을 통해 읽어온 PDF 파일을 유니티의 Texture2D로 변환하여 가져온다.
PDF의 페이지 숫자에 따라 Page를 생성하고, Unity UGUI의 Raw Image를 통해 해당 이미지를 랜더링해준다.

 

프로젝트 내 코드로 넣으려면 아래와 같은 코드로 작성 가능하다.

PDFDocument pdfDocument = new PDFDocument("pdf_sample.pdf","");
Texture2D tex = pdfDocument.Renderer.RenderPageToTexture(3,1024,1024);
GetComponent<MeshRenderer>().material.mainTexture = tex;

 

PDF Viewer 클래스를 통해 대부분의 옵션 조정이 가능하다.

PDF 파일을 불러오는 건 Web, Streaming Assets, Resources, File Path, Asset 등의 다양한 형태로 받아 올 수 있게 구성되어 있다.

매우 편하다.

PDF Viewer 컴포넌트
PDF Viewer 컴포넌트

 

유니티에서 실행해보자.

 

 

상단 메뉴바에는 페이지를 이동할 수 있는 기능과, 줌인아웃, 검색 등을 할 수 있는 기능을 제공한다.

왼쪽 메뉴바에는 북마크 및 썸네일 이미지 형태로 볼 수 있는 기능을 제공한다.

오른쪽 화면은 랜더링 된 PDF 이미지 화면을 볼 수 있다.

PDF Viewer 실행화면
PDF Viewer 실행화면

모바일 기기에서 테스트 결과도 동일하게 잘 나온다.

손가락을 이용한 줌인 아웃도 상당히 잘된다.

줌인아웃 민감도 같은 부분도 PDF Viewer 컴포넌트에서 잘 조절할 수 있게 되어 있다.

 

 

 

정리

유니티에서 PDF를 랜더링 해야 되는 상황에 있어서 상당히 괜찮은 에셋이다.

에셋을 주기적으로 업데이트를 하는 것으로 보이며, 코드도 상당히 깔끔하게 구성되어 있다.

또한 캔버스 기반의 UGUI 안에 들어가는 형태라 프로젝트에 추가하기도 심플하다.

예제 구성도 잘되어 있어서 적용도 5분 안에 가능하다.

단 한 가지 단점이라면. 약간의 높은 금액...

하지만 시간을 획기적으로 줄일 수 있기에 95달러의 금액은 크지 않은 금액일 수도...

 

 

 

 

댓글