Newsgroup: it.comp.lang.perl
Titolo: Stampare attraverso un CGI.

Salve.
Ho una form in uno dei due frames costituenti la mia pagina
html che richiama un CGI il quale fa una ricerca su un
database e restituisce una pagina html con i risultati.
Vorrei eseguire una stampa di questi risultati e creare un 
report personalizzato.
Si puo' fare attraverso il CGI? Come?
Preferisco crearmi la pagina di stampa anziche' fare 
file->stampa da browser sia perche' dovrebbe stampare solo
un frame sia perche', ripeto, devo personalizzare il prospetto
di stampa.
Qualche syggerimento?
Grazie.
-- 
per rispondere togli <toglimi> dall'indirizzo di posta. 





Mauro Sanna <mauro> wrote:
: Ho una form in uno dei due frames costituenti la mia pagina
: html che richiama un CGI il quale fa una ricerca su un
: database e restituisce una pagina html con i risultati.
: Vorrei eseguire una stampa di questi risultati e creare un 
: report personalizzato.
: Si puo' fare attraverso il CGI? Come?
: Preferisco crearmi la pagina di stampa anziche' fare 
: file->stampa da browser sia perche' dovrebbe stampare solo
: un frame sia perche', ripeto, devo personalizzare il prospetto
: di stampa.
: Qualche syggerimento?
Si`, cerca di essere piu` chiaro :-) altrimenti capita che le
risposte possano essere casuali, come quella che segue...
Il protocollo CGI lega il server HTTP ai programmi esterni, che
girano quindi sul *server* non sul client (browser).
Se ti serve consultare un server per ottenere una pagina e produrre
stampe personalizzate probabilmente puoi trovare tutto cio` che ti
serve nella libwww (moduli LWP::* per prelevare le pagine e HTML::*
per analizzarle).
Sul mio sito trovi un paio di esempi di programmini che leggono
pagine ed elaborano il file HTML ottenuto per ottenere un report
personalizzato.
Spero di aver capito cosa ti serve...
P.S. Anche 'X-Newsreader: slrn (0.9.4.3 UNIX)' posta in triplice copia
come OutLuck?-)
-- 
Nando Santagata: Telemastica & infornatica
Key fingerprint = C2 D9 C0 8E D5 B7 04 97  AF E8 3F 3E AF 4E 7F 9E
finger nando (at) ns (dot) ipers (dot) net   for my PGP public key
Home: 
http://www.ipers.net/~nandos

 Spero di aver capito cosa ti serve...
Beh, non sono un esperto di CGI.
Io ho creato una specia di applicazione con html, javascript e perl
e volevo fare un qualcosa tipo "premi il pulsante per ottenere una 
stampa".
Come se fosse un'applicazione scritta, che so, in Visual Basic.
La mia applicazione visualizza su una pagina web le timbrature
di ingresso e uscita dei dipendenti di un'azienda.
La stampa deve essere diversa da cio' che viene visualizzato 
dalla pagina html poiche' devono essere inclusi ulteriori dati.
Praticamente la stampa non e' legata a cio' che viene 
visualizzato dalla pagina html.
Naturalmente questa stampa deve essere mandata alla stampante
collegata al computer client.
Grazie.
--
Posted from 
mta02-acc.tin.it
 [212.216.176.33]
via Mailgate.ORG Server - 
http://www.mailgate.org

 collegata al computer client.
Qualisasi cosa abbia a che fare con il lato client (piuttosto che server) del
collegamento non puo' essere ragionevolmente fatta da un CGI.
Se tu volessi stampare l'HTML che vedi nel frame, a parte usare il print del
browser, ci sarebbe sepre window.print() di JavaScript (che pero' dovrebbe
essere identico al print del browser e funzionare solo con NS4).
Per sparare razzate, direi che per fare quello che vuoi tu dovresti generare
il tuo documento direttamente nel formato di stampa desiderato (ad esempio
PostScript) e poi mandare i dati al browser indicando nell'header un formato
MIME a cui hai associato direttamente un applicativo di stampa.
Portabilita' della soluzione: zero.
Possibilita' di realizzazione: scarse.
Non fai prima a fare una pagina HTML aggiuntiva con tutti i dati che
andrebbero stampati e poi far stamare quella dal browser?
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@usa.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

Maurizio
Eh gia'.
Avevo il presentimento che fosse questa l'unica soluzione possibile.
Il problema e' che ci sarebbero da fare stampe anche di 300 pagine
(le timbrature di ingresso e uscita di tutti i dipendenti).
Potrei anche creare 300 pagine html ma l'utente non puo'
mica lanciare la stampa 300 volte.
Dovrei forse rinunciare a completare l'applicazione e svilupparla
in qualche altro ambiente tipo, per esempio, Visual Basic?
Ciao.
-- 
per rispondere togli <toglimi> dall'indirizzo di posta. 
--
Posted from 
mta01-acc.tin.it
 [212.216.176.32]


 wrote:
: Il problema e' che ci sarebbero da fare stampe anche di 300 pagine
: (le timbrature di ingresso e uscita di tutti i dipendenti).
: Potrei anche creare 300 pagine html ma l'utente non puo'
: mica lanciare la stampa 300 volte.
: Dovrei forse rinunciare a completare l'applicazione e svilupparla
: in qualche altro ambiente tipo, per esempio, Visual Basic?
Puoi farla in Perl, se preferisci, ma non come CGI.
Il problema non e` del Perl. E` semplicemente che non puoi usare il
protocollo CGI per fare quello che ti serve, a meno che tu non
accetti qualche piccolo compromesso.
Il compromesso in questione sarebbe quello di passare il nome SMB
della tua stampante locale ad una form, cosi` che il CGI sul server
sappia su quale stampante fare uscire il report.
Devi rendere shareable la tua stampante locale, quindi non sara` il
massimo della sicurezza, ma funzionerebbe come vuoi tu.


massimo della sicurezza, ma funzionerebbe come vuoi tu.
Se ho capito bene cosi' facendo potrei mandare la stampa sulla mia
stampante. Vorrei, invece, che ciascun utente potesse mandarla
sulla propria stampante collegata al proprio pc.
Immagginavo che non potesse essere possibile attraverso il CGI,
ho cercato conferme in questo newsgroup a chi e' senz'altro
piu' esperto di me.
Forse potrei risolvere il mio problema utilizzando java?
Se non sbaglio un applet java gira sul client quindi se creo 
un'applet la cui funzione sia quella di preparare un prospetto
e mandarlo in stampa questa verrebbe effettuata sulla stampante 
connessa al client sul quale gira l'applet e di conseguenza
la mia applicazione web.
Grazie per la disponibilita'.
-- 
per rispondere togli <toglimi> dall'indirizzo di posta. 
--
Posted from 
mta04-acc.tin.it
 [212.216.176.35]


 wrote:
:>Il compromesso in questione sarebbe quello di passare il nome SMB
:>della tua stampante locale ad una form, cosi` che il CGI sul server
:>sappia su quale stampante fare uscire il report.
: Se ho capito bene cosi' facendo potrei mandare la stampa sulla mia
: stampante. Vorrei, invece, che ciascun utente potesse mandarla
: sulla propria stampante collegata al proprio pc.
"Tua" era un termine generico: puoi avere un campo della form in cui
l'utente inserisce il nome della propria stampante locale (o
addirittura il CGI puo` rilevare l'IP del chiamante e sempre con
smbclient chiedere la lista degli share e trovare il nome della
stampante dell'utente, se l'ha sharata).
: Immagginavo che non potesse essere possibile attraverso il CGI,
E` risolvibile, come ti ho detto, a parte un piccolo problema di
sicurezza: tutti quelli che vogliono usare questo CGI dovranno
dichiarare sharable la loro stampante.
: Forse potrei risolvere il mio problema utilizzando java?
Senz'altro, ma non e` obbligatorio. In genere sono contrario alle
soluzioni in Java per il carico che la JVM causa sul client: in caso
di macchine con poca RAM la cosa diventa insopportabile.
: Se non sbaglio un applet java gira sul client quindi se creo 
: un'applet la cui funzione sia quella di preparare un prospetto
: e mandarlo in stampa questa verrebbe effettuata sulla stampante 
: connessa al client sul quale gira l'applet e di conseguenza
: la mia applicazione web.
Si, se la pagina in cui si trova l'applet contiene gia` tutti i dati
necessari per la preparazione della stampa. Altrimenti devi creare
anche un processo che giri sul server e a cui l'applet richieda i
dati.
