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
> >
> >
>

Reply via email to