Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W
webviewer-product
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • story
  • webviewer-product
  • Wiki
  • clientsideDataProvider

clientsideDataProvider

Last edited by story Feb 03, 2021
Page history

개요

  • 웹뷰어는 기본적으로 웹뷰어 WAS 를 통해 PDF 데이터를 전달받으며, 웹뷰어 WAS 는 이를 위해 ContentsProvider 인터페이스를 구현한다.
  • 웹뷰어 클라이언트가 웹뷰어 WAS 가 아닌 3자 서버 또는 임의의 절차를 통해 PDF 데이터를 제공받아 동작하도록 설정하기 위해서는 customLayout 에서 아래와 같은 콜백 인터페이스를 구현해서 등록해야 한다.
  • 필요 상황에 따라 아래 방법1과 방법2 중 택1 할 수 있다.

방법1

  • viewer 호출시에 cdp=true 파라미터를 전달하고, customLayout 에서 다음 콜백 인터페이스를 구현한다.
    • viewer.yex.api.callback.documentDataProvider.promiseTotalLength
      • contentId 에 대응하는 PDF 파일의 사이즈를 리턴하는 Promise 를 리턴한다.
    • viewer.yex.api.callback.documentDataProvider.promiseRangeData
      • 요청된 구간에 대한 데이터를 Uint8Array 로 리턴하는 Promise 를 리턴한다.

샘플

  • http://webviewer.unidocs.co.kr:8888/api_samples/clientsideCustomDataProvider.html?contentId=sample2.pdf
  • 소스보기를 통해 구현 예시를 확인할 수 있다.
    • viewerUrl 에 cdp=true 옵션을 추가하고 있음을 확인할 것.
    • promiseTotalLength 와 promiseRangeData 구현을 확인할 것.

방법2

  • viewer 호출시에 cdp=true 파라미터를 전달하고, customLayout 에서 다음 콜백 인터페이스를 구현한다.
    • viewer.yex.api.callback.onDocumentDataUrl
      • contentId 에 대응하는 PDF 파일의 URL 을 리턴한다.

샘플

  • http://webviewer.unidocs.co.kr:8888/api_samples/clientsideDataProvider.html?contentId=sample2.pdf
  • 소스보기를 통해 구현 예시를 확인할 수 있다.
    • viewerUrl 에 cdp=true 옵션을 추가하고 있음을 확인할 것.
    • onDocumentUrl 구현을 확인할 것.

PDF URL 을 제공하는 CDN 서버 요구사양

  • CDN은 아래의 기능을 자체적으로 지원해야 한다.

스트리밍을 위한 range request 처리 지원

  • range request 응답을 지원해야 한다.
  • https://developer.mozilla.org/ko/docs/Web/HTTP/Range_requests

CORS 지원

  • 웹뷰어 서버와 CDN 서버의 도메인이 다를 경우에 CDN 서버는 리소스 획득을 위한 CORS 처리 기능을 지원해야 한다.
    • 서버는 응답헤더에 "Access-Control-Allow-Origin: 웹뷰어 서버 도메인" 을 포함해야 한다.
    • 서버는 응답헤더에 "Access-Control-Expose-Headers: Content-Range, Accept-Ranges, Content-Disposition, X-WV-ES, Content-Encoding" 을 포함해야 한다.
    • 서버는 요청헤더에 "Range" 가 포함되는 것을 허용하고, 해당 경우에도 Access-Control-Allow-Origin 항목을 응답헤더에 포함해야 한다.

LIMITATION (제한사항)

  • 하나의 PDF 파일로 이루어진 콘텐츠만을 처리하며, 그 이외의 케이스에 대응하지 않는다.
  • 멀티미디어 동영상은 별개 파일로 서버 업로드후 콘텐츠 에디터에서 url 지정 방식으로 삽입한 케이스만 지원한다.
Clone repository
  • clientsideDataProvider
  • Home
  • ucim 문서에 대한 워터마크 지정
  • 서식처리기능
  • 웹뷰어에서 지원되는 파일 형식
  • 전송구간 암호화 지원
  • 전자인장