2013-06-12 4 views
-2

서버 측 기술에 의존하지 않고 javascript/HTML을 통해 PDF 파일의 총 페이지 수를 얻으려고합니다.자바 스크립트/HTML에서 PDF 페이지 수 얻기

PDF 파일의 페이지를 계산하는 방법을 파악하기 위해 PDF.js 라이브러리의 소스 코드를 탐색 해 보았습니다. 하지만 그것은 방대한 라이브러리이고 논리/방법을 쉽게 이해할 수 없습니다. 페이지 수를 얻기 위해 전체 PDF.js 라이브러리를 사용하고 싶지 않습니다.

PDF 페이지 수를 얻기위한 클라이언트 측 기술 옵션이 있습니까?

도움을 주시면 감사하겠습니다. 고맙습니다.

답변

1

간단한 일이 아니므로 pdf.js 또는 유사한 것을 사용하는 것이 가장 좋습니다.

다음은 PDF에서 페이지 수를 추출하는 것이 얼마나 어려운지 이해하는 데 도움이됩니다.

먼저 pdf는 많은 개체로 구성됩니다. 파일 끝에는 각 오브젝트의 위치 (파일의 오프셋)가 포함 된이라는 상호 참조 테이블 이 있습니다. 오브젝트를 얻으려면 테이블에 가서 오프셋을 먼저 가져와야합니다. 오프셋을 얻은 후에는 파서 바이트에서 객체를 가져와야합니다. 객체의 유형은 많지 않으므로 페이지 수가 적어도 사전, 배열 및 이어야합니다.

두 번째로, 페이지는 트리 구조 pdf로 저장됩니다. 페이지 번호를 얻으려면 전체 페이지 트리 객체를로드하고 몇 개의 리프가 있는지 계산해야합니다.

셋째, pdf에는 많은 고급 기능이 있지만 요즘에는 찾기가 어렵지 않습니다. 예를 들어, 교차 참조는 으로 분할되어으로 분할 될 수 있습니다. 그것은 또한 참조 번호으로 인코딩/압축 될 수 있습니다. 약간 다른 압축 방법가 그것에 적용될 수있다있다. 개체 자체는 개체 스트림을 사용하여 인코딩 할 수도 있습니다. 나는 심지어 암호화을 언급하지 않고 있는데,이 경우 먼저 해독 할 비밀번호가 있어야합니다.

+0

우선, 제 질문에 답변 해 주셔서 감사합니다. 확실히 제공되는 세부 정보가 도움이됩니다. 나는 그것이 매우 복잡한 직업이라는 것을 이해하지만 최선의 결과를주고 싶다. PDF.js와 유사한 HTML5/JS로 개발 된 대안 기술에 대해 알고 있습니까? – Dummy

+0

아니요, 다른 옵션은 없습니다. – xeranic

+0

원본 PDF.js의 하위 JS 라이브러리를 만들어 PDF 페이지 수를 얻었습니다. 압축시이 새로운 JS 라이브러리의 크기는 118kb이며 PDF.js 전체 라이브러리는 현재 1.5MB에 이릅니다. pagecount와 관련된 코드를 분리하고 API 유형 인터페이스를 작성하는 것은 지옥이었습니다! 그러나 그것을 할 수 있었다! 감사합니다 – Dummy