|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
tra i motivi per scegliere java si può considerare tranquillamente il vantaggio di ricevere, eventualmente, aiuto da PGI-bis
|
|
|
|
|
|
#22 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
|
|
|
|
|
#23 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
allora questo è il main che sto provando:
Codice:
Paper paper = new Paper(); paper.setSize(5, 2);// setto la dimensione in punti del foglio un // punto nel Graphics del Printable corrisponde // a 0.35 millimetri sul foglio. PageFormat pageFormat = new PageFormat(); pageFormat.setPaper(paper); PaginaStampante ps = new PaginaStampante();// crea l'oggetto che si // occupera della stampa e // che quindi deve contenere // le liste dei clienti ps.setPageFormat(pageFormat);// setto il pageformat....EVENTUALMETNE // potremmo sceglierlo da software PrinterJob pj = PrinterJob.getPrinterJob();// oggetto che si occupa // della stampa vera e // propria pj.printDialog();// se commentato parte instant la stampa altrimenti // parte il dialog per aggiungere più documenti alla coda di stampa si // utilizza la classe book pj.setPrintable(ps); pj.print();// stampa Codice:
package view;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
public class PaginaStampante implements Printable {
private PageFormat pageFormat;
@Override
public int print(Graphics g, PageFormat pagina, int pageIndex)
throws PrinterException {
if (pageIndex > 0)
return NO_SUCH_PAGE;
g.drawRect(
(int) this.pageFormat.getImageableX(),
(int) this.pageFormat.getImageableY(),
(int) this.pageFormat.getImageableWidth(),
(int) this.pageFormat.getImageableHeight());
return PAGE_EXISTS;
}
public void setPageFormat(PageFormat pageFormat) {
this.pageFormat = pageFormat;
}
}
solo che qualsiasi valore metto al paper.setSize(5, 2); mi disegna un rettangolo sempre uguale. tralascio qualche cosa? P.S.: 5,2 sono valori indicativi, per avere una cartolina 10*7 dovrei mettere 29*20
__________________
My gaming placement |
|
|
|
|
|
#24 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
aggiungo che ho inserito questo
Codice:
System.out.println("get i x " + this.pageFormat.getImageableX ());
System.out.println("get i x " + this.pageFormat.getImageableY ());
System.out.println("getx: " + this.pageFormat.getImageableWidth() );
System.out.println("getx: " + this.pageFormat.getImageableHeight() );
Codice:
get i x 72.0 get i x 72.0 getx: 468.0 getx: 648.0 get i x 72.0 get i x 72.0 getx: 468.0 getx: 648.0
__________________
My gaming placement |
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Trascurando per un attimo il classico "non si fa così", imposti le dimensioni del foglio ma non l'area stampabile che resta quella precotta. Devi usare setImageableArea se vuoi alterare i valori dell'area stampabile.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#26 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
cosa non si fà così?
__________________
My gaming placement |
|
|
|
|
|
|
#27 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Prova a vedere se questa lettura aiuta a dipanare qualche dubbio circa il "come fare"
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#28 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
con questo codice:
Codice:
package core;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.Vector;
public class CreazioneStampa {
private Paper paper;
private PageFormat pageFormat;
private PaginaStampante paginaStampante;
private Vector<Cliente> clienti;
private String messaggio;
private int larghezza, altezza;
public CreazioneStampa(Vector<Cliente> clienti, String messaggio) {
this.messaggio = messaggio;
this.clienti = clienti;
this.paper = new Paper();
this.pageFormat = new PageFormat();
this.paginaStampante = new PaginaStampante();
}
public void stampa() throws PrinterException {
this.paper.setSize(this.larghezza, this.altezza);
this.paper.setImageableArea(20, 20, this.larghezza, this.altezza);
this.pageFormat.setPaper(this.paper);
this.paginaStampante.setPageFormat(this.pageFormat);
this.paginaStampante.setMessaggio(this.messaggio);
for (int i = 0; i < this.clienti.size(); ++i) {
this.paginaStampante.setClienti(this.clienti.get(i));
PrinterJob pj = PrinterJob.getPrinterJob();
pj.printDialog();// da commentare
pj.defaultPage(this.pageFormat);
pj.setPrintable(this.paginaStampante);
pj.print();
}
}
public int getLarghezza() {
return this.larghezza;
}
public void setLarghezza(int larghezza) {
this.larghezza = larghezza;
}
public int getAltezza() {
return this.altezza;
}
public void setAltezza(int altezza) {
this.altezza = altezza;
}
}
ora come potete vedere io potrei avere più clienti, e avevo pensato ad 2 soluzioni: 1) (quella implementata) un for sui clienti 2) utilizzo della classe book. al 1 abbiamo il problema che mi appare il dialog ogni volta, e se "bypasso" il dialog mi sfasa la dimensione (suppongo che serva appunto a quello il dialog) il 2 non sò come funziona. chi mi può aiutatre in uno dei due casi?
__________________
My gaming placement |
|
|
|
|
|
#29 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
risolto...ho invertito un pò l'ordine delle cose cosi:
Codice:
public void stampa() throws PrinterException {
this.paper.setSize(this.larghezza, this.altezza);
this.paper.setImageableArea(20, 20, this.larghezza, this.altezza);
this.pageFormat.setPaper(this.paper);
this.paginaStampante.setPageFormat(this.pageFormat);
this.paginaStampante.setMessaggio(this.messaggio);
PrinterJob pj = PrinterJob.getPrinterJob();
pj.printDialog();// da commentare
pj.defaultPage(this.pageFormat);
pj.setPrintable(this.paginaStampante);
for (int i = 0; i < this.clienti.size(); ++i) {
this.paginaStampante.setClienti(this.clienti.get(i));
pj.print();
}
}
__________________
My gaming placement |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:25.




















