I have a small utility that downloads available PDF files from an S3 bucket
and then prints the file to an Afinia L801 label printer.
I use PDDocument.load to load the file.  Get a PrinterJob, set a
PrintService on the job, create a PDFPageable on the document, set the
pageable on the job, then call job.print().  Most of the time it works with
no problem, but every now and then we will see a print problem such as the
bottom of an image will be printed, but then the top part of the previous
image will be printed, then a gap, and then the bottom of the current image
again.  The next image prints fine.  Opening the file in Adobe Reader looks
fine.

I am using pdfbox 2.0.24.  The PDF file is about 24m, but I am using 1G
memory for the JVM.
I'm not sure where the problem may be, so any suggestions on how to go
about debugging would be appreciated.

I've included a code snippet and some output logging in case I am doing
something incorrectly.

        try (
                PDDocument document = PDDocument.load( file )
        )
        {
            StopWatch timer = StopWatch.begin();
            logger_.info( "PDDocument loaded" );
            for (int i = 0; i < document.getNumberOfPages(); i++)
            {
                PDPage page = document.getPage( i );
                PDRectangle mediaBox = page.getMediaBox();
                //
https://stackoverflow.com/questions/20904191/pdfbox-find-page-dimensions/20905166
                logger_.info( String.format( "Page %s mediaBox: %s, %s x
%s",
                        i + 1,
                        mediaBox,
                        mediaBox.getHeight() / 72,
                        mediaBox.getWidth() / 72 ) );
            }

            // Get the PrintService if not already available.
            if ( printService == null )
            {
                printService = choosePrinter();
                if ( printService == null )
                {
                    logger_.log( Level.SEVERE, "A printer is required to be
selected!" );
                    throw new RuntimeException( "A printer is required to
be selected!" );
                }
            }
            PrinterJob job = PrinterJob.getPrinterJob();
            job.setPrintService( printService );
            PDFPageable pageable = new PDFPageable( document );

            System.setProperty( "sun.java2d.cmm",
"sun.java2d.cmm.kcms.KcmsServiceProvider" );
            // https://pdfbox.apache.org/2.0/migration.html#pdf-printing
            job.setPageable( pageable );

            logger_.info( String.format( "Print started  : %s", file ) );

            logger_.info( String.format( "Printer: %s, file: %s",
printService.getName(), file ) );
            job.print();

            logger_.info( String.format( "Print complete : %s, duration
%s", file, timer ) );
            return true;
        }
        catch ( Throwable e )
        {
            logger_.log( Level.SEVERE, String.format( "Print failed: %s",
file ), e );
            return false;
        }

[2022-01-19 09:28:49] (PrintManager) INFO: Task-6260 Started
[2022-01-19 09:28:51] (PrintManager) INFO: GET
https://app.domain/resource/printqueue/next?queue=Printcenter/PrintQueue_4
[200]
[2022-01-19 09:28:55] (PrintManager) INFO: Downloaded file:
C:\Users\Print\Printcenter\PrintQueue_4\220119152822-FILE_NAME.pdf
[2022-01-19 09:28:55] (PrintManager) INFO: POST
https://app.domain/resource/printqueue/staged/3a7065a7-4658-41af-a555-2f738302fd64
[200]
[2022-01-19 09:28:55] (PrintManager) INFO:
[3a7065a7-4658-41af-a555-2f738302fd64] 220119152822-FILE_NAME.pdf updated
to staged
[2022-01-19 09:28:55] (PrintManager) INFO: PDDocument loaded
[2022-01-19 09:28:55] (PrintManager) INFO: Page 1 mediaBox:
[0.0,0.0,3412.8,540.0], 7.5 x 47.4
[2022-01-19 09:28:55] (PrintManager) INFO: Page 2 mediaBox:
[0.0,0.0,3412.8,540.0], 7.5 x 47.4
[2022-01-19 09:28:55] (PrintManager) INFO: Page 3 mediaBox:
[0.0,0.0,2556.0,540.0], 7.5 x 35.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 4 mediaBox:
[0.0,0.0,2556.0,540.0], 7.5 x 35.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 5 mediaBox:
[0.0,0.0,2556.0,540.0], 7.5 x 35.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 6 mediaBox:
[0.0,0.0,2556.0,540.0], 7.5 x 35.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 7 mediaBox:
[0.0,0.0,2556.0,540.0], 7.5 x 35.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 8 mediaBox:
[0.0,0.0,1692.0,540.0], 7.5 x 23.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 9 mediaBox:
[0.0,0.0,1116.0,540.0], 7.5 x 15.5
[2022-01-19 09:28:55] (PrintManager) INFO: Page 10 mediaBox:
[0.0,0.0,1116.0,540.0], 7.5 x 15.5
[2022-01-19 09:28:55] (PrintManager) INFO: Print started  :
C:\Users\Print\Printcenter\PrintQueue_4\220119152822-FILE_NAME.pdf
[2022-01-19 09:28:55] (PrintManager) INFO: Printer: Afinia L801 4, file:
C:\Users\Print\Printcenter\PrintQueue_4\220119152822-FILE_NAME.pdf
[2022-01-19 09:29:16] (PrintManager) INFO: Print complete :
C:\Users\Print\Printcenter\PrintQueue_4\220119152822-FILE_NAME.pdf,
duration 00:00:20,579
[2022-01-19 09:29:16] (PrintManager) INFO: Deleted:
C:\Users\Print\Printcenter\PrintQueue_4\220119152822-FILE_NAME.pdf
[2022-01-19 09:29:16] (PrintManager) INFO: POST
https://app.domain/resource/printqueue/printed/3a7065a7-4658-41af-a555-2f738302fd64
[200]
[2022-01-19 09:29:16] (PrintManager) INFO:
[3a7065a7-4658-41af-a555-2f738302fd64] 220119152822-FILE_NAME.pdf updated
to printed
[2022-01-19 09:29:16] (PrintManager) INFO: Processed file
220119152822-FILE_NAME.pdf, duration 00:00:26,923
[2022-01-19 09:29:16] (PrintManager) INFO: Task-6260 Finished
-- 
Chris Stillwell

Reply via email to