Pagina 1 di 8 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 78
  1. #1

    [PILLOLA] Le funzioni "printer"

    …ovvero, PHP per stampare lato server.

    Ecco la mia prima pillola sul forum PHP: un buon punto di partenza per capire come sfruttare le potenzialità di php per stampare documenti sulle stampanti del server.

    Strumenti necessari:
    - PHP v.4.2.2
    - Apache 1.4.3
    - una stampante

    Per abilitare questa estensione, aprite il file “php.ini” e decommentate la riga
    codice:
    ; extension=php_printer.dll
    Bene, ora siamo pronti ad usare questa estensione!
    Cominciamo un elenco (dal Manuale di Php) delle funzioni più importanti, che illustrerò in questa pillola:

    printer_open — Apre la connessione ad una stampante
    printer_close — Chiude una connessione aperta verso una stampante
    printer_abort — Cancella il file di spool dalla stampante
    printer_start_doc — Inizia un nuovo documento
    printer_end_doc — Chiude il documento
    printer_start_page — Inizia una nuova pagina
    printer_end_page — Chiude la pagina attiva

    printer_create_font — Crea un nuovo font
    printer_select_font — Seleziona un font
    printer_delete_font — Cancella un font

    printer_draw_text — Scrive un testo
    printer_draw_bmp — Disegna una bitmap

    Detto questo, passiamo alla teoria (ma poca poca) poi alla pratica:

    $stampante=printer_open(‘Epson Stylus Color 660’);
    accetta come valore una normalissima stringa contenente il nome della stampante su cui vorrete usare, sì, proprio quello che potete reperire facendo (in win): “Start > Impostazioni > Stampanti”
    Ovviamente è bene accendere la stampante prima di utilizzare queste funzioni, per non generare errori.

    printer_close($stampante);
    Questa funzione è analoga a “fclose()” per i files: chiude una sessione di stampa.

    printer_abort($stampante);
    Diversa dalla precedente serve se si vuole interrompere la stampa in casi di errore o imprevisti, anche se il processo di stampa non è finito. In parole povere, se cominciare ad inviare dati di stampa poi php trova questa funzione, stamperà i dati fino a li trasmessi, lasciando un testo o un immagine a metà e restituendo il foglio.

    printer_start_doc($stampante,’Titolo del Documento’);
    printer_end_doc($stampante);
    Definiscono quando inizia e quando finisce un documento da stampare.
    Attenzione! “documento” != “pagina”. Un documento infatti può avere più pagine.

    printer_start_page($stampante);
    printer_end_page($stampante);
    Definiscono l’inizio e la fine di ogni pagina da stampare. La stampante, con questi comandi comincia un nuovo foglio (“pagina” == ”foglio”) ogni volta che vengono chiamati.

    Facciamo ora il primo esempio pratico. Ne avevate voglia vero?
    Mettiamo assieme tutto ciò che sappiamo finora:
    Codice PHP:
    $stampante=printer_open(‘Epson Stylus Color 660’); // Apro la connessione
    printer_start_doc($stampante,’Titolo del Documento’); // Inizio documento
    printer_start_page($stampante); //Inizio pagina 1

    /* Qui dentro scrivo la pagina 1 */

    printer_end_page($stampante); // Fine pagina 1
    printer_start_page($stampante); //Inizio pagina 2

    /* Qui dentro scrivo la pagina 2 */

    printer_end_page($stampante); // Fine pagina 2
    printer_end_doc($stampante); // Fine documento
    printer_close($stampante); // Chiudo la connessione 
    Questo non stampa ancora niente. Vediamo ora cosa si può stampare e come:
    Dunque, abbiamo tre strumenti di stampa:

    “Font” = Serve per scrivere del testo
    “Pen” = Serve per disegnare forme geometriche
    “Brush” = Serve per riempire di colore le forme geometriche

    $font=printer_create_font(‘Arial’, 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
    Questa funzione prepara un font per essere utilizzato e accetta:

    NOME DEL FONT
    ALTEZZA
    LARGHEZZA
    SPESSORE (sono costanti predefinite, vedere il Manuale)
    CORSIVO
    SOTTOLINEATO
    BARRATO
    ORIENATMENTO (ovvero l’inclinazione in gradi)

    printer_select_font($font);
    Seleziona uno dei tanti font definiti all’inizio del documento per utilizzarlo immediatamente nella stampa.

    printer_delete_font($font);
    Cancella un font tra quelli definiti con “printer_create_font()”. Per stampare qualcosa con un font cancellato, bisogna ridefinirlo con “printer_create_font()”.

    Funzioni analoghe esistono per gli strumenti “Pen” e “Brush”, qui omesse ma di facile comprensione dopo aver letto questa pillola.

    printer_draw_text($stampante," MDSJACK è mitico!", 10, 10);
    Utilizzata dopo printer_select_font(), questa funzione scrive il testo prescelto con il font prescelto. Gli ultimi due parametri sono le coordinate X Y in cui scrivere il testo.

    printer_draw_bmp($stampante, "c:\\immagine.bmp", 10, 10);
    Con questa funzione possiamo invece stampare una immagine a nostro piacimento, magari un logo, ricercandolo in un path. Gli ultimi 2 parametri sono le coordinate X Y.
    ES: con le funzioni GD, si può convertire una immagine jpg in bmp poi stamparla.

    Bene, ora sappiamo come usare queste sconosciute funzioni di php! :metallica Ecco il test finale

    Codice PHP:
    $stampante=printer_open(‘Epson Stylus Color 660’); // Apro la connessione
    printer_start_doc($stampante,’Titolo del Documento’); // Inizio documento
    printer_start_page($stampante); //Inizio pagina 1

    $font=printer_create_font(‘Arial’14876PRINTER_FW_MEDIUMfalsefalsefalse, -50);
    printer_select_font($font);
    printer_draw_text($stampante,"MDSJACK è mitico!"1010); // Ecco che scriviamo!!!
    printer_delete_font($font);

    printer_end_page($stampante); // Fine pagina 1
    printer_start_page($stampante); //Inizio pagina 2

    printer_draw_bmp($stampante"c:\\immagine.bmp"1010); //Ecco la nostra immagine!!!

    printer_end_page($stampante); // Fine pagina 2
    printer_end_doc($stampante); // Fine documento
    printer_close($stampante); // Chiudo la connessione 
    Chi ha qualcosa da dire lo dica adesso o taccia per sempre

    ciao,
    jack.

  2. #2
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696
    Aggiunta!
    :metallica

  3. #3
    ...e la famacia si rifornisce!:metallica

  4. #4
    Bravo, bravo

    attenzione, però, se usate stampanti in rete utilizzate:

    printer_open("\\\NomePc\NomeStampante");

    altrimenti può venirvi qualche mal di testa...

    Potete anche usare: printer_open();
    per la vostra stampante predefinita.

  5. #5
    aggiunta anche ai miei bookmarks.. grande! :metallica :metallica
    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

  6. #6
    bella cosa :metallica


    adesso devo solo trovare un modo per inviarmi in automatico via fax un foglio stampato dal server di milano
    w la topa

  7. #7
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696
    Originariamente inviato da saibal
    bella cosa :metallica


    adesso devo solo trovare un modo per inviarmi in automatico via fax un foglio stampato dal server di milano

    Io proverei la strada del teletrasporto:gren:

  8. #8
    Una pillola dietro l'altra... che sballo!! :gren:
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  9. #9
    Utente di HTML.it L'avatar di smt
    Registrato dal
    Jul 2002
    Messaggi
    167
    gente io proprio non riesco ad abilitarle ste librerie, ma cosa sbaglio?
    non ci vuole un ingegnere per togliere una virgola davanti al nome del modulo, perchè czz non melo prende!

    qualcuno mi invia il suo php.ini funzionante, sempre che non debba proteggere segreti industriali
    Reality is that which, when you stop believing in it, doesn't go away

  10. #10
    Originariamente inviato da saibal
    bella cosa :metallica


    adesso devo solo trovare un modo per inviarmi in automatico via fax un foglio stampato dal server di milano
    V.A.:gren:
    Immagini allegate Immagini allegate

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.