pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tilman Hausherr <THaush...@t-online.de>
Subject Re: The importPage leads to error in PDFBox 2.0.0
Date Tue, 17 Feb 2015 21:13:56 GMT
Maruan also meant to tell you not to close coverDoc before saving :-)

Tilman

Am 17.02.2015 um 22:08 schrieb Ilya Kantor:
> Hi,
>
> Still getting the error
>
> That's the updated code:
> =================
> PDDocument doc = PDDocument.load(inputFile);
> PDDocument coverDoc = null;
>
> if (coverFile != null) {
>      coverDoc = PDDocument.load(coverFile);
>      PDPage coverPage = coverDoc.getPage(0);
>      doc.addPage(coverPage);
>      coverDoc.close();          <===================================================
> }
>
> PDDocumentOutline outline = new PDDocumentOutline();
> // ...
> doc.getDocumentCatalog().setDocumentOutline(outline);
>
> doc.save(outputFile);
> if (coverDoc != null) coverDoc.close();
> =================
>
> I'm getting the error in doc.save():
> =================
> 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:129)
>    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)
> ================
>
> ---
> Best Regards,
> Ilya Kantor
>
> 2015-02-18 0:05 GMT+03:00 Maruan Sahyoun <sahyoun@fileaffairs.de>:
>
>> try closing the coverDoc after you've saved doc.
>>
>> BR
>> Maruan
>>
>> Am 17.02.2015 um 22:00 schrieb Ilya Kantor <iliakan@gmail.com>:
>>
>>> 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
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message