> Alex Sviridov <ooo_satu...@mail.ru> hat am 1. Juli 2015 um 13:09 geschrieben: > > > I decided to show all the code. I also send the pdf file - some file from > internet I use for testing. The attachment didn't make it due to some restrictions to the mailing list. Please post a link to the origin source or another place where we can download the pdf in question.
> > Task task = new Task() { > @Override protected Integer call() throws Exception { > for (int i=0;i<model.getTotalPages();i++){ > System.out.println("Point a:"+i); > WritableImage writableImage=model.getPageThumbImage(i); > System.out.println("Point b:"+i); > ImageView imageView=new ImageView(writableImage); > System.out.println("Point c:"+i); > Label label=new Label(Integer.toString(i+1)); > System.out.println("Point d:"+i); > VBox vBox=new VBox(imageView,label); > System.out.println("Point e:"+i); > vBox.setAlignment(Pos.CENTER); > vBox.setStyle("-fx-padding:5px 5px 5px > 5px;-fx-background-color:red"); > System.out.println("Point f:"+i); > Platform.runLater(new Runnable() { > @Override > public void run() { > thumbFlowPane.getChildren().add(vBox); > } > }); > } > return null; > } > }; > new Thread(task).start(); > > And here is the tail of the output > .... > Point a:30 > Point b:30 > Point c:30 > Point d:30 > Point e:30 > Point f:30 > Point a:31 > > What is scratch file? Sorry, I don't understand you. PDFBox holds a lot of temporary data in the memory. To reduce the memory footprint one can choose to use a scratch file instead, so that some/most of that data will be hold in a file. To do so, simply use another load method, e.g. load(File file, boolean useScratchFiles) > > > > > > > Среда, 1 июля 2015, 13:04 +02:00 от Andreas Lehmkühler <andr...@lehmi.de>: > > > > > >> Alex Sviridov < ooo_satu...@mail.ru > hat am 1. Juli 2015 um 12:58 > >> geschrieben: > >> > >> > >> Thank you for answer. I tried pdfbox-app-2.0.0-20150630.220424-1464.jar > >> the > >> result is the same. > >> > >> When I create images I add them to javafx FlowPane. However, the problem is > >> not in images because I repeat - I get 400mb when I do > >> pdfDocument=null,pdfRenderer=null. > >> > >> Bedised, when I do pdfDocument = PDDocument.load(new File(fileName)) I > >> don't > >> have any problems with memory. > >> > >> I'm getting problem with memory when I run in for loop getPageThumbImage. > >> > >> I am sure that the problem is in PdfBox. Please, help me. > >Maybe, but I'm not sure at all. > > > >Try to use the scratch file. > > > >> Среда, 1 июля 2015, 12:48 +02:00 от Andreas Lehmkühler < andr...@lehmi.de > >> >: > >> > > >> > > >> >> Alex Sviridov < ooo_satu...@mail.ru > hat am 1. Juli 2015 um 10:16 > >> >> geschrieben: > >> >> > >> >> > >> >> I want to display all page thumbnails. However I came across memory > >> >> size > >> >> problem with PDFRenderer or PDDocument - I don't know which one. > >> >> > >> >> I have the following code: > >> >> .... > >> >> private PDDocument pdfDocument; > >> >> > >> >> private PDFRenderer pdfRenderer; > >> >> > >> >> public WritableImage getPageThumbImage(int page){ > >> >> WritableImage result=null; > >> >> try { > >> >> BufferedImage bi=pdfRenderer.renderImageWithDPI(page, 12, > >> >> ImageType.RGB); > >> >> result=SwingFXUtils.toFXImage(bi, null); > >> >> } catch (IOException ex) { > >> >> .... > >> >> } > >> >> return result; > >> >> } > >> >> ..... > >> >> The method getPageThumbImage I run in for loop for every page.I set java > >> >> memory heap to 500mb. > >> >> And I can get about 30 images using getPageThumbImage (if I set more > >> >> memory > >> >> I > >> >> get more). > >> >> In my application I have real time memory graphs and they show that > >> >> memory > >> >> is > >> >> very fast filled. > >> >> When there is no more free memory getPageThumbImage hangs - no > >> >> exception, > >> >> nothing. But the code stops. > >> >> When I do pdfDocument=null,pdfRenderer=null I get about 400mb free > >> >> memory. > >> >> How > >> >> to solve this problem? > >> >There are 2 possible issues and maybe both are relevant. > >> > > >> >1. PDFBox consumes more or less memory to load a pdf depending on the size > >> >and > >> >the content of the pdf. > >> > > >> >- Are you using the latest 2.0.0-SNAPSHOT? There were some improvements > >> >concerning the memory footprint lately > >> >- Try to use of a scratch file (there are load methods including a boolean > >> >switcht ot activate that) > >> > > >> >2. Your own implementation consumes more or less memory to process those > >> >thumbnails > >> > > >> >- check if you are releasing all resources (ecspecially those images > >> >you're > >> >creating) you are using during your process > >> > > >> >HTH, > >> >Andreas > >> > > >> >--------------------------------------------------------------------- > >> >To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org > >> >For additional commands, e-mail: users-h...@pdfbox.apache.org > >> > > >> > >> > >> -- > >> Alex Sviridov > > > >BR > >Andreas > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org > >For additional commands, e-mail: users-h...@pdfbox.apache.org > > > > > -- > Alex Sviridov > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org > For additional commands, e-mail: users-h...@pdfbox.apache.org BR Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org For additional commands, e-mail: users-h...@pdfbox.apache.org