I am facing a problem when I build an application that uses pdfbox. The 
application is able to read books with jbig2 images when I run it from IDE (I 
use netbeans 8.1) (I have maven dependencies for jbig2 in pom.xml). The problem 
is when I build the application creating a fat jar. When I run the fat jar with 
the same input pdf, it gives the following error:

        “Cannot read JBIG2 image: jbig2-imageio is not installed”
The threads that comment that error, do not seem to solve my problem (they say 
that a maven dependency has to be added to pom, but that dependency is already 
on my pom).

I have also checked that jbig2 library classes are inside the fat jar, so I 
have no idea of what is happening.

I have isolated the problem in a tinny application that looks like this:

        public static void main( String[] args )
        {
                String fileName = null;
                if( args.length == 0 )
                {
                        fileName = "test.pdf";
                }
                else
                {
                        fileName = args[0];
                }

                PdfDocumentWrapper doc = null;
                try
                {
                        PdfboxFactory factory = new PdfboxFactory();
                        doc = factory.createPdfDocumentWrapper();
                        doc.loadPdf( fileName );
                        for( int ii = 0; ii < doc.getNumberOfPages(); ii++ )
                        {
                                int pageNum = ii+1;
                                System.out.println("\n\nProcessing page: " + 
pageNum +"\n---------------------------------");
                                List<ImageWrapper> imageList = 
doc.getImagesOfPage(ii);

                                int jj=0;
                                for( ImageWrapper image: imageList )
                                {
                                        jj++;
                                        System.out.println(String.format("  
Page[%d]. Image[%d] -> bounds: %s",
                                                        pageNum, jj, 
image.getBounds().toString() ) );
                                }
                        }
                }
                catch( Exception ex )
                {
                        ex.printStackTrace();
                }
                finally
                {
                        if( doc != null )
                        {
                                try
                                {
                                        doc.close();
                                }
                                catch( Exception ex )
                                {
                                        ex.printStackTrace();
                                }
                        }
                }
        }

I have placed the whole isolated example project here (with the purpose to help 
to solve the issue): http://www.frojasg1.com/20200504.PdfImageExtractor.zip

When I run that application from IDE, it produces the following output:

        Processing page: 1
        ---------------------------------
          Page[1]. Image[1] -> bounds: 
java.awt.Rectangle[x=17,y=33,width=442,height=116]
          Page[1]. Image[2] -> bounds: 
java.awt.Rectangle[x=53,y=513,width=376,height=124]
          Page[1]. Image[3] -> bounds: 
java.awt.Rectangle[x=101,y=250,width=285,height=5]
        ------------------------------------------------------------------------

When I run the application from command line, it gives the following output:

        $ java -jar ./PdfImageExtractor-v1.0-SNAPSHOT-all.jar


        Processing page: 1
        ---------------------------------
        may 04, 2020 3:40:18 PM org.apache.pdfbox.contentstream.PDFStreamEngine 
operatorException
        GRAVE: Cannot read JBIG2 image: jbig2-imageio is not installed
        may 04, 2020 3:40:18 PM org.apache.pdfbox.contentstream.PDFStreamEngine 
operatorException
        GRAVE: Cannot read JBIG2 image: jbig2-imageio is not installed
        may 04, 2020 3:40:18 PM org.apache.pdfbox.contentstream.PDFStreamEngine 
operatorException
        GRAVE: Cannot read JBIG2 image: jbig2-imageio is not installed


Does anybody know why the fat jar is not able to read jbig2 images?


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

Reply via email to