2016-06-12 2 views
2

매우 큰 PDF 문서의 PDF 결과 나는 많은 다른 PDF 파일로 하나의 PDF 분할 명령분할은 PDFBox 2.0.2

java -jar pdfbox-app-2.y.z.jar PDFSplit [OPTIONS] <PDF file> 

을 사용하고 싶습니다. 그러나 문제가 있음을 발견했습니다. PDF 분할은 "ActiveMQ In Action (Manning-2011) .pdf"이며 14.1MB입니다. 하지만 내가 달릴 때

java -jar pdfbox-app-2.0.2.jar PDFSplit -split 5 -startPage 21 -endPage 40 -outputPrefix abc "ActiveMQ In Action(Manning-2011).pdf" 

모든 PDF는 79MB보다 큽니다! 이 문제를 어떻게 방지 할 수 있습니까?

+0

사용 2.0.1 : 여기에 2.0.2을 사용하는 사람들을위한 몇 가지 해결 방법 코드입니다. 2.0.2에는 최선의 결정이 아닌 변경이 있습니다. https://issues.apache.org/jira/browse/PDFBOX-3380 –

+0

2.0.3이 출시되었습니다. –

답변

2

이것은 PDFBox 2.0.2의 알려진 버그입니다. 분할은 2.0.1에서 정상적으로 작동하고 2.0.3에서 다시 정상적으로 작동합니다. "불량"코드가 이미 되돌려졌습니다. 문제의 원인은 here입니다. 짧은 이야기 : 버전 2.0.2는 모든 소스 페이지에서 깊은 복제를 수행하므로 리소스가 중복됩니다.

업데이트 :

static public PDPage importPageFixed(PDDocument document, PDPage page) throws IOException 
{ 
    PDPage importedPage = new PDPage(new COSDictionary(page.getCOSObject()), document.getResourceCache()); 
    InputStream in = null; 
    try 
    { 
     in = page.getContents(); 
     if (in != null) 
     { 
      PDStream dest = new PDStream(document, in, COSName.FLATE_DECODE); 
      importedPage.setContents(dest); 
     } 
     document.addPage(importedPage); 
    } 
    catch (IOException e) 
    { 
     IOUtils.closeQuietly(in); 
    } 
    return importedPage; 
} 
+0

PDFBox 2.0.2를 사용하는 경우이 문제를 해결할 수 있습니까? PDFBOX-3336과 PDFBOX-3363 때문에 2.0.1로 옮기지 않을 것입니다. 2.0.3을 언제 안정적으로 추정 하시겠습니까? 감사합니다. – Darajan

+2

@Darajan 몇 가지 대안 코드를 추가했습니다. 2.0.3이 발표되기까지 적어도 한 달은 걸릴 것입니다. 코드는 안정적이지만 PMC 위원장 (릴리스 관리를 담당하는 사람)은 한 달 동안 사용할 수 없습니다. –