Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378

    [JAVA] stampare su stampante

    Ciao a tutti, sto realizzando un applicazione java per gestire un magazzino e avrei bisogno di stampare sulla stampante l'inventario di tutto il magazzino.

    Mi servirebbe quindi sapere se c'è un modo per creare un "documento" a partire dai dati estratti dal database e in che modo passarlo alla stampante per stamparlo.

    Spero che qualcuno abbia un esempio pratico. Grazie a tutti per l'attenzione.

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    ti ringrazio, stasera provo a vedere se funziona... ho visto leggendolo di corsa che parlano di stampare una sola pagina, siccome dovrei stampare du un numero di pagine non noto a priori come devo fare !?!?!?


    grazie saluti

  4. #4
    ciao! hai provato a stampare? funziona? anch'io presto dovrò stampare risultati proveniente da db...
    mi illumini su come hai fatto?
    grazie
    stex1984

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    ciao mi dispiace ma non ci sono riuscito, ho avuto poco tempo per provare ma nessuno dei miei tentativi è andato a buon fine, sto ancora cercando un esempio funzionante su cui poterci mettere le mani....

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    qui trovi come stampare il contenuto di una text area su una o più pagine.
    in alternativa con i dati ottenuti potresti creare un file excel tutto formattato come vuoi e poi stampare quello

    http://www.mokabyte.it/1997/07/print.htm

    http://www.itportal.it/developer/tips/java/job-stampa/

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    Sono riuscito a stampare su + pagine, adesso sistemo un po il codice e poi ti incollo quello che sono riuscito a fare, poi in caso proviamo a sistemarlo e migliorarlo....


    Ora riesco a stampare su + pagine e gli faccio stampare a una certa distanza ogni riga con scritto una stringa ( Pagina X Riga Y) e nella prima pagina una breve intestazione. Per esempio non sono ancora riuscito a capire come scrivere le righe subito sitto all'intestazione, ma devo andare alla pagina dopo per riuscire a scrivere ancora....

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    Allora al momento devo dire in anticipo di quante pagine è composto il documento....

    Se qualcuno ha qualche idea su come migliorare il codice mi farebbe davvero un grosso favore !!! :-)


    import java.awt.print.*;

    public class mainStampa{

    public static void main(String[] args) {
    // Creo un PrinterJob
    PrinterJob job = PrinterJob.getPrinterJob();
    // creo una pagina landscape
    PageFormat pfl = job.defaultPage();
    pfl.setOrientation(PageFormat.PORTRAIT);
    // Creo un book
    Book bk = new Book();
    // Stampa PaintContent ( 2 = due pagine da stampare )
    bk.append(new PaintContent(), job.defaultPage(), 2);
    // Sasso il book al PrinterJob
    job.setPageable(bk);
    // Spro la dialog box
    if (job.printDialog()){
    // Stampo a meno che non venga premuto annulla dall'utente
    try {
    // Imposto il numero di copie
    job.setCopies(job.getCopies());
    job.print();
    }
    catch (Exception e) {
    System.out.println("ERRORE: " + e);
    }
    }
    System.exit(0);
    }
    }






    import java.awt.print.*;
    import java.awt.*;


    class PaintContent implements Printable{

    public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException {

    int useRed = 0;
    int xo = (int) pf.getImageableX();
    int yo = (int) pf.getImageableY();

    // numero della riga che sto stampando
    int num = 0;
    // posizione nella pagina rispetto all'asse Y
    int y = 0;
    // scorre tutte le pagine da Y+28 (lascio margine superiore) alla lunghezza massima stampabile della pagina
    while(y+28 < pf.getImageableHeight()){
    // SONO NELLA PRIMA PAGINA
    if(pageIndex == 0){
    g.drawLine(xo+10, yo+10, xo+500, yo+10);
    g.drawString("QUESTA E' LA PAGINA CHE FA DA COPERTINA", xo+10, yo+30);
    g.drawLine(xo+10, yo+40, xo+500, yo+40);


    y += (pf.getImageableHeight() - 500);
    }
    // TUTTE LE ALTRE PAGINE
    else{
    g.drawString(" Pagina " + pageIndex + " -- Riga" + num, xo+10, yo+y+12);
    num++;
    // Y = spazio fra una riga e quella successiva
    y += 30;
    }
    }

    return Printable.PAGE_EXISTS;
    }
    }

  9. #9
    salve raga

    scusate se riporto su una discussione vecchia.
    ho modificato un pò il codice postato in precedenza prelevando dei dati dal database e stamparli.
    Sono riuscito a dare un numero di pagine da stampare in base al numero di righe che prelevo dal database, però se incremento la variabile per spostarmi nelle righe mi salta dei numeri.
    Nel mio caso ogni 23 righe.
    credo che il print() venga chiamato 2 volte per ogni pagina quindi mi salta i numeri , come posso fare?

    sono stato poco chiaro lo so, ma spero che potete aiutarmi
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.