Archief - [PROG][Java] Printable Area maximaliseren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

keybern

Legacy Member
Ik zou graag de inhoud van een JTable (met wat extraatjes zoals een pagina-nummering, header, footer) afdrukken.
Nu, JTable heeft een methode print() en die werkt aardig.
Wat jammer is zijn die brede marges (langs alle kanten) die blijkbaar automatisch worden gezet.
Nu wil ik zeer graag die marges minimaliseren, of maw de Printable Area (zoals in vele artikels wordt vermeld) maximaliseren.
Ik heb geen idee hoe ik dat voor elkaar moet krijgen.
Ik weet dat één van de print( ) methodes een PrintRequestAttributeSet als argument kan aannemen, en dat je daar attributen zoals het aantal pagina's aan kan toekennen. Zoals bv:
Code:
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
  pras.add(new Copies(5));
En er bestaat ook een attribuut MediaPrintableArea maar geen idee hoe ik die moet gebruiken...

Alle hulp is welkom.

edit: manueel in de printdialog de marges minimaal instellen lukt wel, maar ik zou dit het liefst automatisch laten gebeuren.
Bovendien kan ik zo top en bottom op 0 mm zetten, maar left en right minimaal op 4 mm. (vanwaar het verschil, beats me)

keybern

Legacy Member
ai, pijnlijk, niemand die me kan helpen :(

Op het net vind ik wel info maar dat gaat al snel over naar 'advanced printing' terwijl ik simpelweg die vervelende marges wil wegwerken...
Op irc (quakenet #java) konden ze me ook al niet helpen, maar van die mensen ginter verw8 ik zowiezo niet al teveel medewerking :p

ik weet dat double post niet mag, maar ik ben echt ten einde raad, kijk maar >> :help:

Help me gauw weer :woohoo: worden...

JBoss

Legacy Member
Het is in elk geval die attribuut. Een stuk code die het gebruikt:

Code:
Object[] o = (Object[]) printServices[i].getSupportedAttributeValues(MediaPrintableArea.class, flavor, pras);
MediaPrintableArea pa = (MediaPrintableArea) o[0];
pa =     new MediaPrintableArea(0,0,208,290,MediaPrintableArea.MM);
pras.add(pa);

De eerste twee lijken me onnodig aangezien het object toch overgeschreven wordt. Speel gewoon eens met de integers in de constructor.

keybern

Legacy Member
thx JBoss, maar ik vrees er dan een beetje voor dat die instellingen afhankelijk zullen zijn van het type printer. Niet?

+ als werkelijk elke optie in het printermenu (orientation, page range, color appearance, enz) kan ingesteld worden via zo'n PrintRequestAttributeSet, waarom dan die marges niet? Lijkt me zo onlogisch...

edit: in ieder geval, het werkt. Dus ge zijt dik bedankt. Nu eens testen op een aantal verschillende printers.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan