2013-10-16 1 views
0

내 응용 프로그램에서 몇 가지 값을 입력 한 후에 편집 가능한 PDF 파일을 열어야합니다. 값을 채우려면 PdfReader, PdfStamper & AcroFields 클래스 iTextPDF 라이브러리를 사용합니다. 값을 채운 후에는이 모든 객체를 null로 만듭니다.iTextPDF 및 Qoppa를 사용하여 PDF 파일을 연 후 힙 메모리를 해제하는 방법은 무엇입니까?

PDF 파일은 PDFDocument, QPDFNotesView와 같은 클래스 Qoppa Library을 사용하는 활동에 표시됩니다. 내 응용 프로그램에서 사용하는 힙 크기는 PDF를 열 때까지 일관됩니다. PDF를 처음 열면 힙 크기가 매우 커집니다. 두 x 째 이후부터는 힙 크기가 점차 증가하지만 약간 증가합니다. PDF를 3 ~ 4 회 연속해서 열면 java.lang.OutOfMemoryError으로 인해 응용 프로그램이 다운됩니다.

PDF를 한 번만 열면 다음 번에 앱을 실행할 때까지 힙 크기가 그대로 유지됩니다. 나는 그 활동을 마칠 때 위에서 언급 한 수업의 모든 목표를 무효로 만들었습니다. 내가 사용 후 를 무효화해도 나는 이러한 개체를 사용하면

힙 크기가 아래로 도착하지 :

문제는 이것이다.

나는 itextpdf-5.1.3.jarqoppapdf.jar을 개인 라이브러리로 사용합니다. 누구든지 해결할 수 있습니까? 미리 감사드립니다 ...

+1

'PdfReader' 객체를 닫으시겠습니까? –

+0

정확히 ... 나는 그냥 NULL로 만들었습니다. 자, 나는 그것을 닫은 후 확인했지만 아무런 영향이 없었습니다. –

+0

프로파일 러를 사용하여 iText 또는 Qoppa로 인해 문제가 발생했는지 확인 했습니까? 5.1.3보다 최신 버전의 글꼴과 관련된 iText에서 수정 된 메모리 문제가 있음을 기억하십시오. –

답변

0

QPDFNotesView 클래스의 releaseDocument() 메서드를 호출 한 후 메모리 해제가 상당히 진척되었습니다.

우리는이는 확장에 내 문제를 해결했다 마침내

viewer.releaseDocument(); 

에서 사용 후이 방법라는 개체

QPDFNotesView viewer = new QPDFNotesView(this); 

했다.

관련 문제