내가 pdf를 이미지로 변환하려고하면 일부 pdfs에서 "메모리 부족"오류가 발생합니다. 그래서 힙 크기를 늘린 다음 다른 PDF 파일에 대한 오류가 다시 발생했습니다. 다른 개체에서 메모리 누수가 없다고 가정합니다. 그렇다면이 메모리에 오류가있는 이유는 무엇입니까? 이미지가 큽니다 (생각하지는 않습니다). 힙을 사용합니다. 그렇지 않으면 pdfbox가 각 페이지의 버퍼링 된 이미지를 메모리에 저장하고 이것이 힙 크기를 늘리는 데 도움이됩니까? 어떤 통찰력도 훌륭합니다.PDF 렌더링을 사용한 PDF 렌더링
다음은 렌더링하려는 PDF에 대한 링크입니다. https://drive.google.com/file/d/0B_Ke2amBgdpeNFFDem5KVVVzanc/view?usp=sharing 다음은 코드 세그먼트입니다.
PDFRenderer pdfRenderer = new PDFRenderer(pdDoc);
BufferedImage image = pdfRenderer.renderImageWithDPI(page-1, 300,ImageType.GRAY);
//image=ImageHelper.convertImageToGrayscale(image);
ImageIOUtil.writeImage(image,"G:/Trial/tempImg.png", 300);
이 특정 PDF 문제에 대한 그 힙 크기를 증가시켜 해결하지만 내가 알고 싶은 것은 메모리에 이미지를 버퍼 pdfbox 저장을 수행하고 힙 크기에 기여 즉했다 유의하시기 바랍니다.
힙 크기를 늘린 후에도 같은 문제에 직면 한 또 다른 pdf가 있습니다. https://drive.google.com/file/d/0B_Ke2amBgdpedDBtaG1QcW1oYlU/view?usp=sharing 이 pdf에서 내 코드는 44 페이지를 렌더링하는 동안 영원히 필요합니다. 왜 이런 일이 발생하는지 알 수 없습니다.
어쩌면 변환하려는 내용과 코드 스 니펫을 추가하십시오. – Zeromus
내 게시물을 편집하고 코드 및 파일을 업로드했습니다. – ANKIT
메모리 사용에 관해서 : 만약 내가 잘못 본 게 아니라면 pdfbox는 (특히 컬러 이미지와 함께) 많은 메모리를 사용합니다. 예, 필요하지 않더라도 메모리에 모든 페이지를 보관합니다 (1 년 전쯤에 또는 그래서 그들은 readOnDemand/사용법 후에 제거하십시오 그러나 나는 최신이라고 유지하지 않았다). 메모리를 절약하기 위해 스크래치 파일을 사용해도되지만 속도는 느려질 수 있습니다. – Zeromus