하나의 파일에 여러 개의 단일 pdf 페이지를 병합합니다. 병합 자체가 잘 작동합니다. 모든 페이지가 올바른 위치에 있으며 올바르게 보입니다.PDF 병합이 파일 크기를 증가시키고 있습니다.
병합 코드는 다음과 같습니다
이CGContextRef writeContext = CGPDFContextCreateWithURL((CFURLRef)originalURL, NULL, NULL);
for(NSURL * pdfCacheURL in pdfURLs) {
singlePDFDocumentRef = CGPDFDocumentCreateWithURL((CFURLRef)pdfCacheURL);
pdfPage = CGPDFDocumentGetPage(singlePDFDocumentRef, 1);
mediaBox = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);
CGContextBeginPage(writeContext, &mediaBox);
CGContextDrawPDFPage(writeContext, pdfPage);
CGContextEndPage(writeContext);
CGPDFPageRelease(pdfPage);
}
CGPDFContextClose(writeContext);
CFRelease(writeContext);
병합 이후에 일어나는 이상한 일이 최종 문서가 결합 된 모든 단일 페이지의 파일 크기보다 파일 크기가 매우 큰 것입니다. 여기
4 페이지 파일 크기가 10메가바이트 이상하지만 결합 된 파일 크기가 1.58 메가 후 내 디버그 출력
Processing Page: 1
File Size before merge:: 0.000000 mb
Single page length: 0.758951 mb
File Size after merge: 6.172294 mb
Processing Page: 2
File Size before merge: 6.172294 mb
Single page length: 0.262792 mb
File Size after merge: 6.722573 mb
Processing Page: 3
File Size before merge:: 6.722573 mb
Single page length: 0.215380 mb
File Size after merge: 8.150043 mb
Processing Page: 4
File Size before merge:: 8.150043 mb
Single page length: 0.346910 mb
File Size after merge: 10.788255 mb
당신이 볼 수 있듯이,의 일부. 100 페이지가 병합 될 때 어떤 일이 일어나는 지 상상할 수 있습니다.
PDF 파일 이미지를 많이 포함하고 있지만 파일 크기 등의 증가에 대한 책임을 질 수 있는지
감사하지만 불행히도 그것은 문제가되지 않습니다. 테두리 상자는 두 문서에서 동일합니다. 이 질문을 게시 한 후, 나는 이것을 발견했다. http://stackoverflow.com/questions/3099312/why-does-combining-pdf-pages-with-cgcontextdrawpdfpage-create-very-large-output @qwzybug는 그 CGPDFContext를 지적한다. jpgs를 원시 비트 맵으로 변환합니다. 나는 아직 이것에 대한 확인을 찾지 못했지만 설명이 될 것입니다. 그런데 어떻게 해결할 수 있을지 모르겠습니다. – MatzeLoCal
오, 그래도 해상도 문제 일 수 있다고 생각합니다. 해상도를 줄이는 방법을 찾으십시오. – Anton