Thanks for the tip!

On Tue, Jan 28, 2020 at 5:14 AM Tilman Hausherr <thaush...@t-online.de>
wrote:

> If it comes back, consider this source code comment:
>
>              // Tip for debugging: look at the destination file with an
> editor, you'll see an
>              // incomplete stream at the bottom.
>
> usually the dictionary part is already written, as are the parts
> pointing to this stream. If the stream starts with 50 0 obj, look for 50
> 0 R.
>
> Tilman
>
> Am 28.01.2020 um 00:19 schrieb Gilad Denneboom:
> > I did some further testing and when I ran this code on its own it works
> > fine, so the issue might be something else I'm doing in my code, so
> please
> > ignore for now...
> >
> > On Mon, Jan 27, 2020 at 11:44 PM Gilad Denneboom <
> gilad.denneb...@gmail.com>
> > wrote:
> >
> >> Hi all,
> >>
> >> Does anyone see something obvious I'm missing in this code that could
> >> cause a COSStream error when trying to save a document? I basically
> have an
> >> (ascending) list of page numbers that I want to delete from a document,
> so
> >> I'm doing it in a reverse loop, but it errors out on the save command.
> >> Here's the relevant code:
> >>
> >> if (pagesToDelete.isEmpty()==false) {
> >> for (int i=pagesToDelete.size()-1; i>=0; i--) {
> >> System.out.println("Removing page: "+pagesToDelete.get(i));
> >> mergedDoc.removePage(pagesToDelete.get(i));
> >> }
> >> mergedDoc.save(new File(mergedFilePath.replace(".pdf", "_edited.pdf")));
> >> }
> >> mergedDoc.close();
> >>
> >> And the error stack:
> >> 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.checkClosed(COSStream.java:83)
> >> at
> org.apache.pdfbox.cos.COSStream.createRawInputStream(COSStream.java:133)
> >> at
> >>
> org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1219)
> >> at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:404)
> >> at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:158)
> >> at
> org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:526)
> >> at
> org.apache.pdfbox.pdfwriter.COSWriter.doWriteObjects(COSWriter.java:464)
> >> at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:448)
> >> at
> >>
> org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1113)
> >> at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:449)
> >> at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1386)
> >> at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1273)
> >> at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1357)
> >> at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1328)
> >> at ***.main(***.java:79)
> >>
> >> I can see the page numbers in the console and the output file is
> >> generated, but is not legible.
> >> Console output:
> >> Removing page: 543
> >> Removing page: 542
> >> Removing page: 541
> >> Removing page: 540
> >>
> >> PDFBox version is 2.0.18. Java version is 1.8.0_25. OS is Windows 7.
> >>
> >> PS. I'm getting the same result if I specify the parameter of removePage
> >> as a PDPage object instead of an integer.
> >>
> >> Thanks in advance!
> >> Gilad
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
> For additional commands, e-mail: users-h...@pdfbox.apache.org
>
>

Reply via email to