Thank you!
On Thu, Jul 31, 2025 at 12:20 PM Tilman Hausherr <[email protected]>
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: [email protected]
> For additional commands, e-mail: [email protected]
>
>