2016-11-14 13 views
0

특정 그룹의 PDF에서는 이상한 상황이 발생하고 어디서부터 시작해야할지 모르겠습니다. 내가 25M, 600pg 파일을 버스트하면 버스트 된 파일 당 출력이 25M이됩니다. 내가 pdftk input.pdf cat 1-100 출력을 출력하면 .pdf 크기는 25M (25292kb와 원본은 25524kb)입니다. 페이지 범위 1-5를 수행하면 파일 크기가 25040kb가됩니다.Cat'd Page Count와 관계없이 PDFTK 출력이 입력과 동일합니다.

이 상황을 처리하기 위해 pdftk에 추가 할 수있는 플래그가 있습니까? 고스트 스크립트는이 pdf에서 페이지 범위를 취해 적절한 크기의 PDF를 만들 수 있지만 gs는 버스트를 처리하지 못하는 것뿐만 아니라 모든 글꼴을 설치해야합니다.

답변

2

아마도 PDF에 대해 다음과 같은 가정을하고있을 것입니다. 파일 크기가 3000KB 및 10 페이지 인 PDF가있는 경우이 PDF를 분할하면 파일 크기가 300KB 인 30 개의 파일이됩니다.

이 가정은 잘못되었습니다. 열 페이지와 다음 개체와 3,000킬로바이트 문서를 상상해 : 각 50 KB, 모든 페이지에 사용

  • 네 개의 글꼴 집합 한 페이지에 그림
  • 열 이미지, 각각 약 200 킬로바이트 (하나 개의 이미지 모든 페이지의 그림
  • 네 개의 이미지, 각각에 대한 50킬로바이트에 대한 25킬로바이트 같은 카탈로그의 정보를 사전, 페이지와 객체에 대한 각
  • 에 대한 3백50킬로바이트에게의 콘텐츠 스트림을
  • 열 페이지) 페이지 당 트리, 상호 참조 테이블 등 ...
  • ,210

하나의 페이지는 적어도 필요합니다 - 네 개의 폰트 서브 세트 4 번 50킬로바이트 - 단일 화상 : 1 번 200킬로바이트 - 네 이미지 : 4 번 50킬로바이트 - 하나의 콘텐츠 스트림을 : 1 회 50KB - 약간 축소 된 상호 참조 테이블, 약간 축소 된 페이지 트리, 거의 동일한 카탈로그, 동일한 크기의 정보 사전 ... 200KB

함께 850KB입니다. 즉, 10 페이지짜리 3000KB PDF 문서를 10 개의 개별 페이지로 나누면 8500KB (1050KB)가됩니다.

내 생각에 공유 리소스 (글꼴 등 모든 페이지에서 사용되는 리소스)는 PDF에서 엄청납니다. 예 : 만약 누군가가 각 페이지의 배경으로 고해상도 이미지를 사용한다면 약 600 만 페이지에 25M이 필요합니다.

PdfTk는 iText의 구식 버전에 대한 래퍼에 지나지 않습니다. 최신 버전의 iText를 사용하여 문제가 지속되는지 확인할 수 있습니다.

+0

고맙습니다. 매우 통찰력이있어서 그 유형의 정보를 찾는 데 어려움이 있습니다. 해당 정보를 분석하고 가능성을 떨어 뜨리는 방법에 대한 제안? 고스트 스크립트 (Ghostscript)는 정보를 삭제하고 원래의 단일 파일보다 너무 많이 작지 않은 작은 개별 파일을 만드는 데 도움이 될 것 같습니다. pdf2ps는 다시 돌아 오지만 자원은 배가 고프다. – RyanH

+0

필자는 PDF 파일을 "인쇄"하는 것으로 생각하고 해상도를 줄이고 구조 트리, 주석 등을 제거합니다. 또한 PdfTk는 오래되었으므로 PDF 1.5에 도입 된 고급 압축을 지원하지 않습니다. 파일을 보지 않고 실제 문제에 대해 논평하기는 어렵습니다. –