I get that same error using ikvm.exe

For diagnosis, see http://sourceforge.net/p/ikvm/mailman/message/31512876/

To reproduce, the following:

import java.awt.image.BufferedImage;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public class IKVMTest {

public static void main(String[] args) throws Exception {
PDDocument pdDoc = PDDocument.load(args[0]);
PDPage page = (PDPage)pdDoc.getDocumentCatalog().getAllPages().get(0);
BufferedImage image = page.convertToImage();
System.out.println("done");
}
}

where I used PDF:

   http://www.docx4java.org/docx4j/tmp/sample.pdf

works with Java:

>java -classpath 
>pdfbox-1.8.2.jar;fontbox-1.8.2.jar;jempbox-1.8.2.jar;commons-logging-1.1.1.jar;.
>  IKVMTest ..\..\sample.pdf

but with ikvm.exe, throws up another issue:

>ikvm.exe  -classpath 
>pdfbox-1.8.2.jar;fontbox-1.8.2.jar;jempbox-1.8.2.jar;commons-logging-1.1.1.jar;.
>  IKVMTest ..\..\sample.pdf

Oct 12, 2013 8:37:58 PM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index:
0, Size: 0
        at java.util.ArrayList.rangeCheck(ArrayList.java:604)
        at java.util.ArrayList.get(ArrayList.java:384)
        at 
org.apache.pdfbox.io.RandomAccessBuffer.seek(RandomAccessBuffer.java:84)
        at 
org.apache.pdfbox.io.RandomAccessFileInputStream.read(RandomAccessFileInputStream.java:97)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:276)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
        at java.io.FilterInputStream.read(FilterInputStream.java:107)
        at org.apache.pdfbox.filter.FlateFilter.decompress(FlateFilter.java:161)
        at org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:98)
        at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:296)
        at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:237)
        at 
org.apache.pdfbox.cos.COSStream.getUnfilteredStream(COSStream.java:177)
        at 
org.apache.pdfbox.pdfparser.PDFStreamParser.<init>(PDFStreamParser.java:108)
        at 
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:251)
        at 
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
        at 
org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
        at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:127)
        at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:783)
        at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:712)
        at IKVMTest.main(IKVMTest.java:15)

So instead, use:

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;

import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public class IKVMTest {

public static void main(String[] args) throws Exception {
byte[] bytes = IOUtils.toByteArray(new FileInputStream(new File(args[0])));
PDDocument pdDoc = PDDocument.load(new ByteArrayInputStream(bytes));
PDPage page = (PDPage)pdDoc.getDocumentCatalog().getAllPages().get(0);
BufferedImage image = page.convertToImage();
System.out.println("done");
}
}

and the same IKVM.exe command line produces the same error as above,
but then continues, producing more errors, including the "Unexpected
end of TTF stream reached"

On Tue, Oct 15, 2013 at 5:30 AM, Kurt M (JIRA) <[email protected]> wrote:
>
>      [ 
> https://issues.apache.org/jira/browse/PDFBOX-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
>
> Kurt M updated PDFBOX-1748:
> ---------------------------
>
>     Attachment: PDFTest.java
>
> I ran this program on my own server and it works fine.  When I run it in the 
> problematic environment I get the following:
>
> org.apache.pdfbox.cos.COSDocument finalize
> WARNING: Warning: You did not close a PDF Document
> java.io.IOException: RandomAccessBuffer already closed
>
> and no jpg output.
>
>> PDPage.convertToImage fails with IndexOutOfBoundsException: Index: 0, Size: 0
>> -----------------------------------------------------------------------------
>>
>>                 Key: PDFBOX-1748
>>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1748
>>             Project: PDFBox
>>          Issue Type: Bug
>>    Affects Versions: 1.7.1, 1.8.2
>>            Reporter: Kurt M
>>         Attachments: PDFTest.java
>>
>>
>> I am trying to create jpg images from pages in a pdf document.  The 
>> following code works in most environments, but we recently installed on a 
>> new system and are experiencing a high rate of failure there.  The same 
>> files that fail there work in other environments.
>> Here is my code:
>>         PDDocument doc;
>>         try {
>>             RandomAccess scratchFile = new RandomAccessBuffer();
>>             doc = PDDocument.loadNonSeq( pdfFile, scratchFile );
>>             int pageNum = 0;
>>             int fullRes = 96;
>>             List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
>>             BufferedImage fullImg;
>>             for( PDPage page : pages ) {
>>                 pageNum++;
>>                 fullImg = page.convertToImage( BufferedImage.TYPE_INT_RGB, 
>> fullRes );
>> and here is the stack trace (this is from the 1.7.1 version I think):
>> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>>       at java.util.ArrayList.get(ArrayList.java:352)
>>       at 
>> org.apache.pdfbox.io.RandomAccessBuffer.seek(RandomAccessBuffer.java:84)
>>       at 
>> org.apache.pdfbox.io.RandomAccessFileInputStream.read(RandomAccessFileInputStream.java:96)
>>       at java.io.BufferedInputStream.read1(BufferedInputStream.java:267)
>>       at java.io.BufferedInputStream.read(BufferedInputStream.java:328)
>>       at java.io.BufferedInputStream.fill(BufferedInputStream.java:229)
>>       at java.io.BufferedInputStream.read(BufferedInputStream.java:248)
>>       at java.io.FilterInputStream.read(FilterInputStream.java:77)
>>       at java.io.PushbackInputStream.read(PushbackInputStream.java:133)
>>       at 
>> org.apache.pdfbox.io.PushBackInputStream.read(PushBackInputStream.java:91)
>>       at 
>> org.apache.pdfbox.pdfparser.BaseParser.skipSpaces(BaseParser.java:1547)
>>       at 
>> org.apache.pdfbox.pdfparser.PDFStreamParser.parseNextToken(PDFStreamParser.java:230)
>>       at 
>> org.apache.pdfbox.pdfparser.PDFStreamParser.access$000(PDFStreamParser.java:46)
>>       at 
>> org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:182)
>>       at 
>> org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:194)
>>       at 
>> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:257)
>>       at 
>> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:237)
>>       at 
>> org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:217)
>>       at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:119)
>>       at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:730)
>>       at generateSlideImages(PDFUtils.java:213) <-- my code
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.1#6144)

Reply via email to