I replaced the following line of code:
OutputDoc.addPage(page); // ***** test only *****
with these lines:
PDPage BlankPage = new PDPage();
OutputDoc.addPage(BlankPage );
and that worked fine.
However, it does not line me adding pages from another document.
Do I have to do something to the catalog first or . . . ? (I did not see this
in the examples.)
Thanks, Alan
From: Alan Thomas
Sent: Friday, July 03, 2009 12:24 PM
To: [email protected]
Subject: java.io.IOException: The handle is invalid
What might cause the runtime error: "java.io.IOException: The handle is
invalid" in COSVisitorException?
All I did in my code with the problem object "OutputDoc" was:
PDDocument InputDoc = null;
PDDocument OutputDoc = new PDDocument();
try
{
InputDoc = PDDocument.load( pdfInFile );
. . . . .
List pages = InputDoc.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
while( iter.hasNext() )
{
PDPage page = (PDPage)iter.next();
OutputDoc.addPage(page); // ***** test only *****
. . . . .
}
finally
{
if( InputDoc != null )
{
InputDoc.close();
OutputDoc.save(pdfOutFile);
OutputDoc.close();
}
}
Here is the stack trace, below. Thanks, Alan
Exception in thread "main" org.apache.pdfbox.exceptions.COSVisitorException:
The handle is invalid
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:939)
at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:201)
at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:206)
at
org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:430)
at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:361)
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:768)
at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:361)
at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1070)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:787)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:768)
at Drawings.Drawings(Drawings.java:113)
at Drawings.main(Drawings.java:39)
java.io.IOException: The handle is invalid
at java.io.RandomAccessFile.seek(Native Method)
at org.apache.pdfbox.io.RandomAccessFile.seek(RandomAccessFile.java:59)
at
org.apache.pdfbox.io.RandomAccessFileInputStream.read(RandomAccessFileInputStream.java:96)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:926)
at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:201)
at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:206)
at
org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:430)
at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:361)
at
org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:768)
at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:361)
at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1070)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:787)
at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:768)
at Drawings.Drawings(Drawings.java:113)
at Drawings.main(Drawings.java:39)
Java Result: 1
BUILD SUCCESSFUL (total time: 9 seconds)