try closing the coverDoc after you've saved doc. BR Maruan
Am 17.02.2015 um 22:00 schrieb Ilya Kantor <[email protected]>: > Hi, > > I'm trying to import a page from one document into another one and getting > an error with PDFBox 2.0.0 snapshot. > > That's the code: > ================== > PDDocument doc = PDDocument.load(inputFile); > > if (coverFile != null) { > PDDocument coverDoc = PDDocument.load(coverFile); > PDPage coverPage = coverDoc.getPage(0); > doc.importPage(coverPage); > coverDoc.close(); > } > > PDDocumentOutline outline = new PDDocumentOutline(); > // ... I'm also working with the outline > doc.getDocumentCatalog().setDocumentOutline(outline); > > doc.save(outputFile); > ================= > > And here's the error when saving (the last line): > > ================ > Exception in thread "main" java.io.IOException: COSStream has been closed > and cannot be read. Perhaps its enclosing PDDocument has been closed? > at org.apache.pdfbox.cos.COSStream.getFilteredStream(COSStream.java:163) > at > org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1151) > at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:298) > at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:156) > at org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:542) > at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:449) > at > org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1035) > at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:464) > at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1312) > at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1220) > at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:950) > at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:922) > at PdfBookPolisher.run(PdfBookPolisher.java:128) > at PdfBookPolisher.main(PdfBookPolisher.java:69) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) > ====== > > The problem does not happen when I do not import page. > > P.S. Can I insert the new page as the first one, not the last one? > Something like doc.getDocumentCatalog().getPages().getKids().add(0, > (PDPage) cover.getDocumentCatalog().getAllPages().get(0)); > But for 2.0.0. > > > --- > Best Regards, > Ilya Kantor

