Thank you. The bug has been known since 2022!

https://bugs.openjdk.org/browse/JDK-8297191

Tilman

Am 07.08.2025 um 05:20 schrieb Seethalakshmi Sathya:
Tilman,
I already reported the bug to java and they have accepted it. I have also
given them the additional information requested by them.

https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8364428

Thank you,
Seethalakshmi S

On Wed, Aug 6, 2025 at 8:08 PM Tres Finocchiaro <tres.finocchi...@gmail.com>
wrote:

Tilman,

I ran the code on the OPs behalf and can confirm that this issue still
exists without PDFBOX.  I changed the Font size to 144 and the numPages to
4.

These are my test results:

    - PASS: All pages
    - PASS: First page only (1-1)
    - PASS: First three pages (1-3)

    - *FAIL: Second page only (2-2)*
    Nothing printed
    - *FAIL: Last page only (4-4)*
    Nothing printed
    - *Fail: Last two pages (3-4)*
    Nothing printed
    - *FAIL: Last three pages (2-4)*
    This one's interesting because it DOES print but only pages 3-4.

This smells like an off-by-one error.  I opened a ticket with my company's
OpenJDK support team.  The assigned dev is on vacation so there's no
upstream bug report to link yet.

Thanks for the code snippet, I'll provide this with the private bug report
as it'll greatly help narrow down the cause.


On Wed, Aug 6, 2025 at 6:28 AM Tilman Hausherr <thaush...@t-online.de>
wrote:

Did you run this code? Did it reproduce the problem?

Tilman

Am 31.07.2025 um 12:42 schrieb Seethalakshmi Sathya:
Thank you!

On Thu, Jul 31, 2025 at 12:20 PM Tilman Hausherr <
thaush...@t-online.de>
wrote:

Am 31.07.2025 um 06:22 schrieb Tilman Hausherr:
I think the bug is in the jdk, and I'll write something small later
to
prove this.
And here it is, I asked ChatGPT ("Create a program in java that uses
the
Pageable interface to print a 10 pages document with the numbers from
1
to 10. The print option dialog should be used for additional manual
configuration.") and modified it slightly:


public class PageableTest extends Book
{
       private final int numPages = 2;

       public static void main(String[] args)
       {
           PrinterJob job = PrinterJob.getPrinterJob();
           job.setPageable(new PageableTest());

           // Show print dialog for manual configuration
           if (job.printDialog())
           {
               try
               {
                   job.print();
               }
               catch (PrinterException e)
               {
                   e.printStackTrace();
               }
           }
       }

       // Return the number of pages
       @Override
       public int getNumberOfPages()
       {
           return numPages;
       }

       // Not needed for this example
       @Override
       public PageFormat getPageFormat(int pageIndex) throws
IndexOutOfBoundsException
       {
           if (pageIndex >= numPages)
           {
               throw new IndexOutOfBoundsException("Invalid page
index");
           }
           return PrinterJob.getPrinterJob().defaultPage();
       }

       // Return the Printable that will render the content
       @Override
       public Printable getPrintable(int pageIndex) throws
IndexOutOfBoundsException
       {
           if (pageIndex >= numPages)
           {
               throw new IndexOutOfBoundsException("Invalid page
index");
           }

           return new Printable()
           {
               @Override
               public int print(Graphics g, PageFormat pf, int index)
throws PrinterException
               {
                   Graphics2D g2d = (Graphics2D) g;
                   g2d.translate(pf.getImageableX(),
pf.getImageableY());
                   g2d.setFont(new Font("Serif", Font.BOLD, 72));
                   g2d.drawString(String.valueOf(index + 1), 100, 100);
                   return Printable.PAGE_EXISTS;
               }
           };
       }
}


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



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




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

Reply via email to