DWiebe created PDFBOX-1318:
------------------------------
Summary: Stops when writing images to a large file
Key: PDFBOX-1318
URL: https://issues.apache.org/jira/browse/PDFBOX-1318
Project: PDFBox
Issue Type: Bug
Components: Writing
Affects Versions: 1.6.0
Environment: Tested on Ubuntu 11.10 1.7 GB memory AMD Dual Core
QL-60x2, OS 10.7.4 iMac 4GB Quad 2.66 GHz i5, XP64 SP2 iMac 4GB Quad 2.66 GHz i5
Reporter: DWiebe
When writing images to a large pdf, it stops after some amount of images (the
size depends on the machine) when creating a PDJpeg object.
public void processFiles(File parent){
int fileIndex = 1;
for(ImageGroup g:allImages){
int i = 0;
int fileCount = 0;
int imgCount = 0;
PDDocument acrobat = null;
String groupPath =
parent.getAbsolutePath()+"/"+g.getName();
File groupFolder = new File(groupPath);
try{
acrobat = new PDDocument();
groupFolder.mkdir();
}catch(Exception e){
continue;
}
for(File f:g.getImages()){
//set progress bar and text
bar.setValue(fileIndex);
currentStatus.setText("Currently processing
"+fileIndex+" of "+totalFiles);
System.out.println("Currently processing
"+f.getName()+" "+fileIndex+" of "+totalFiles);
this.pack();
this.setVisible(true);
this.repaint();
PDPageContentStream contentStream = null;
try{
//pull image
BufferedImage bigImage =
ImageIO.read(f);
int w = bigImage.getWidth();
int h = bigImage.getHeight();
//create page of image size
PDRectangle rect = new PDRectangle(w,
h);
PDPage page = new PDPage(rect);
acrobat.addPage(page);
//draw image
//THE PROGRAM STOPS HERE
PDJpeg img = new PDJpeg(acrobat,
bigImage);
//the rest of drawing the image
contentStream = new
PDPageContentStream(acrobat,page);
contentStream.drawImage(img, 0, 0);
contentStream.close();
//acrobat.save(groupPath+".pdf");
//acrobat.close();
//File result = new
File(groupPath+".pdf");
//acrobat = PDDocument.load(result);
//copy image in case the user needs it.
imgCount++;
if(imgCount > Constants.MAX_FILE){
acrobat.save(groupPath+".pdf");
groupPath += "_"+fileCount;
File excessFolder = new
File(groupPath);
fileCount++;
imgCount = 0;
try{
acrobat = new PDDocument();
excessFolder.mkdir();
}catch(Exception e){
}
}
}catch(Exception e){
e.printStackTrace();
}
this.copyFile(f,
groupPath+"/"+g.getName()+"_"+i+".jpg");
i++;
fileIndex++;
}
try {
acrobat.save(groupPath+".pdf");
acrobat.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
currentStatus.setText("Your images have been copied
successfully");
this.pack();
this.repaint();
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
