2017-02-10 4 views
1

pdf 문서의 첫 번째 페이지를 png 포맷 이미지로 변환하는 코드가 있습니다. 이 코드를 제외한 대부분의 pdf 파일에서 코드가 제대로 작동합니다. https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiqp4KovobSAhXJ54MKHdtbD54QFggeMAA&url=http%3A%2F%2Fitrevolution.com%2Fwp-content%2Fuploads%2Ffiles%2FPhoenixProjectExcerpt.pdf&usg=AFQjCNGYt1ALVc2ramVw_oM4Qb4rQCTDmw&cad=rja 이 문서는 첫 페이지에 흰색 페이지를 제공합니다. 여기에 무엇이 잘못되었는지 확실하지 않습니다. 내가 PDFBox 2.0.3를 사용하여 유사한 프로그램을 실행하면Pdfbox1.8.12 pdf를 화이트 페이지로 변환

PDDocument pdf = PDDocument.loadNonSeq(file, new RandomAccessFile(tmp_file, "rw")); 
List<PDPage> pdPages = pdf.getDocumentCatalog().getAllPages(); 
PDPage page = pdPages.get(0); 
BufferedImage bim = page.convertToImage(BufferedImage.TYPE_INT_RGB, 300); 
ImageIOUtil.writeImage(bim, thumbnailPath + "/" + objectId + ".png", 300); 
+2

참조하십시오 여기 허용 대답 : http://stackoverflow.com/questions/20424796/pdf-box-generating-blank -images-due-to-jbig2-images-in-it –

+0

내가 정말로 관심있는 내용 : 왜 로그 메시지를 보지 못했습니까? –

답변

1

(당신의 코드에 1.8.x 코드 모양) :

try (PDDocument pdf = PDDocument.load(file)) { 
    PDFRenderer pdfRenderer = new PDFRenderer(pdf); 
    BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 300, ImageType.RGB); 
    ImageIOUtil.writeImage(bim, outputFileName, 300); 
} 

내가 얻을 다음과 같은 출력 :

Feb 10, 2017 10:43:33 PM org.apache.pdfbox.contentstream.PDFStreamEngine operatorException 
SEVERE: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed 

I JAI의 JPEG2000 형식 지원은 약간 혼란 스럽습니다 (SPI가 포함 된 추가 항아리가 필요하지만 보유하기가 어렵습니다).

이 문제에 대한 자세한 내용은 PDFBox issue 1752이며 JPedal에서 사용하는 디코더를 사용하는 잠재적 인 해결 방법이 있습니다. JRE에서 사용 가능한 적절한 JPEG2000 JAI 코덱을 사용하면 이미지가 인식된다고 상상해보십시오. 내 POM이 의존성을 추가

0

나에게 (사용 pdfbox 2.0.8)을 도왔다 :

<dependency> 
    <groupId>com.github.jai-imageio</groupId> 
    <artifactId>jai-imageio-jpeg2000</artifactId> 
    <version>1.3.0</version> 
</dependency>