Toon posts:

[Java] Printer-vraagjes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kan ik een printer zijn papier-selectie en papier-lade te weten krijgen?

ik heb dit juist geprobeerd:
Java:
1
2
        PrinterJob pjob = PrinterJob.getPrinterJob();
        PrintService pser = pjob.getPrintService();


De eerste regel is ok, maar de 2e niet?

Kan iemand deze beginner in Java eventjes een handje helpen?


Thx :)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15-05 06:45
Je geeft aan wat je hebt geprobeerd en wat de bedoeling is, maar in de quickstart staan nog wat punten die onbeantwoord blijven:
• wat gebeurt er precies; waar gaat het mis?
• welke foutmeldingen krijg je precies?
• waar denk je zelf dat het probleem gezocht moet worden?

Verwijderd

Topicstarter
Mijn excuses.

Wat gebeurd er percies... Wel, hij showed een print-dialog. Ik selecteer een printer, ga naar options & daar naar advanced voor mijn papierformaat te veranderen & mijn lade te veranderen...

Maar ik zie in het watch window totaal niet waar deze variabelen worden gezet.

Geen foutmeldingen dus, maar eerder een vraagje welke functie ik moet gebruiken om dit te vinden?


ergens in de PrinterJob, PrintService of dergelijke class... Maar ik heb de javadocs al doorzocht, maar vind niet dadelijk iets dat eraan voldoet :S

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15-05 06:45
Aha; je wil dus weten waar die instellingen staan. Een PrintService is in principe een beschrijving van de mogelijkheden van de printer en specifieke instellingen staan daar niet in (want die zijn veranderlijk). Het ligt dus voor de hand dat je er bij moet komen via de PrinterJob, wat namelijk een printertaak is die dus wel specifieke instellingen heeft.

PrinterJob's kunnen volgens de API documentatie attributen hebben die dit soort dingen specificeren. In dit geval lijkt het Media attribuut wat je zoekt; dat specificeert op welk papier en uit welke lade geprint wordt.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20-05 20:29

Robtimus

me Robtimus no like you

Toolkit.getPrintJob(Frame, String, Properties)
Toolkit.getPrintJob(Frame, String, JobAttributes, PageAttributes)

?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
Soultaker: inderdaad ;-)

Vanmorgend even nagekeken & dat is inderdaad wat ik zocht ;)
De Enum MediaTray & MediaSize(Name).

Vanavond eens experimenteren hoe ik dat moet zetten ;-)

Thx!

Verwijderd

Topicstarter
Ik heb voorlopig dit geprobeerd:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        JobAttributes theJobAttribs = new JobAttributes();
        theJobAttribs.setDialog( JobAttributes.DialogType.NONE );
        theJobAttribs.setPrinter("PDFCreator");
        
        PageAttributes thePageAttribs = new PageAttributes();
        thePageAttribs.setMedia( PageAttributes.MediaType.LETTER );
        
        PrintJob myJob = getToolkit().getPrintJob(this, "PrintJob", theJobAttribs, thePageAttribs);
        
        if (myJob != null) {
            Graphics g = myJob.getGraphics();
            
            if (g != null) {
                printText(myJob, g, "yeqsd");
                g.dispose();
            }
            
            myJob.end();
        }


Nu geeft hij wel een probleem bij getToolkit() & printText(). Waarschijnlijk mis ik ergens een import maar ik kan niet vinden welke import.

Dus momenteel zit ik zowat te denken dat het niet mogelijk is om de tray te kiezen (ik kan standaard dus de printer & de papersize (A4, letter, ...) zetten, maar het belangrijkste (nl. de papier-lade) kan ik niet vinden. Dit zit in javax.print.attribute.standard.MediaTray.
Pagina: 1