Hallo Leute,
ich hab gerade ein Problem mit Printable/Pageable/Book, dass mich gerade zum Wahnsinn treibt. Ich dreh mich gerade immer wieder im Kreis.
Zum Problem: ich hatte zunächst vor, eine lange Liste von Zeilen zu drucken. Wenn das Ende der Seite erreicht ist, soll auf der nächsten Seite weitergeschrieben werden. Das funktioniert auch ohne Probleme. Ich erbe von Printable und durchlaufe in print() immer wieder die Liste von neuem, drucke aber erst, wenn ich auf der Seite bin, die gerade dran ist, bis diese Seite wieder voll ist. Mit Informationen aus Graphics (wie hoch ist die Schrift) ist das auch kein Problem.
So nun wollte im selben PrinterJob weitere Seiten dranhängen, die allerdings im Querformat gedruckt werden sollen (im gegensatz zu den Seiten zuvor im Hochformat). So, da fangen nun die Probleme an. Ich habe bereits herausgefunden, dass man das PageFormat nicht in der print()-Methode ändern kann/darf. Für meine Zwecke soll nun Pageable bzw. Book das Richtige sein. Book fällt aber schon aus, da ich nicht vorher weiß, wie viele Seiten nun im Hochformat gedruckt werden sollen bzw. ab welcher Seite im Querformat.
Bei dem Versuch einer eigenen Implementierung von Pageable seh ich nun auch ein, warum. getPageFormat() soll nur anhand des Index bestimmen, welches Format die Seite hat (getPrintable() hat das gleiche Problem). Wie soll ich das bestimmen, wenn ich nicht weiß, wie viele Seiten ich vorher brauche? Mir fehlt da z.b. ein Graphics-Objekt, um wie oben, herauszufinden wie groß nun die Schrift ist, die ich drucke.
Ich hab schon wie wild gesucht, ob man nicht ein Default-Graphics oder ein Default-Font aus einem PrinterJob herausbekommt. Ich hab nichts gefunden. Hat jemand eine Idee? Wäre für jeden Hinweis dankbar.
lg Kevin
PS: an einen der Mods, sorry hab nicht nachgedacht. Ich glaube das passt besser in den AWT-Bereich.
ich hab gerade ein Problem mit Printable/Pageable/Book, dass mich gerade zum Wahnsinn treibt. Ich dreh mich gerade immer wieder im Kreis.
Zum Problem: ich hatte zunächst vor, eine lange Liste von Zeilen zu drucken. Wenn das Ende der Seite erreicht ist, soll auf der nächsten Seite weitergeschrieben werden. Das funktioniert auch ohne Probleme. Ich erbe von Printable und durchlaufe in print() immer wieder die Liste von neuem, drucke aber erst, wenn ich auf der Seite bin, die gerade dran ist, bis diese Seite wieder voll ist. Mit Informationen aus Graphics (wie hoch ist die Schrift) ist das auch kein Problem.
So nun wollte im selben PrinterJob weitere Seiten dranhängen, die allerdings im Querformat gedruckt werden sollen (im gegensatz zu den Seiten zuvor im Hochformat). So, da fangen nun die Probleme an. Ich habe bereits herausgefunden, dass man das PageFormat nicht in der print()-Methode ändern kann/darf. Für meine Zwecke soll nun Pageable bzw. Book das Richtige sein. Book fällt aber schon aus, da ich nicht vorher weiß, wie viele Seiten nun im Hochformat gedruckt werden sollen bzw. ab welcher Seite im Querformat.
Bei dem Versuch einer eigenen Implementierung von Pageable seh ich nun auch ein, warum. getPageFormat() soll nur anhand des Index bestimmen, welches Format die Seite hat (getPrintable() hat das gleiche Problem). Wie soll ich das bestimmen, wenn ich nicht weiß, wie viele Seiten ich vorher brauche? Mir fehlt da z.b. ein Graphics-Objekt, um wie oben, herauszufinden wie groß nun die Schrift ist, die ich drucke.
Ich hab schon wie wild gesucht, ob man nicht ein Default-Graphics oder ein Default-Font aus einem PrinterJob herausbekommt. Ich hab nichts gefunden. Hat jemand eine Idee? Wäre für jeden Hinweis dankbar.
lg Kevin
PS: an einen der Mods, sorry hab nicht nachgedacht. Ich glaube das passt besser in den AWT-Bereich.