Newsgroup: it.comp.lang.c
Titolo: Stampante

Sapete dirmi come inviare una stringa di testo alla stampante? Mi servirebbe
una soluzione che vada bene sia in Dos/Windows che in Linux
Grazie a tutti
Giuseppe Di Natale
gdin...@tin.it


 Se non ricordo male, la semplice stampa di una stringa può essere
effettuata inviando valori di testo a LTP1 tramite una delle funzioni messe
a disposizione dalla libreria runtime.

Potresti farmi un esempio?
Grazie
Giuseppe Di Natale
gdin...@tin.it

 una soluzione che vada bene sia in Dos/Windows che in Linux
non so dirti se va bene in qualsiasi SO, ma in DOS sicuramente si (almeno
con il BC):
fprintf( stdprn,"...
ciao
donCiccio

Qesta la sapevo, però va solo su piattaforme a 16 bit, quindi Windows o
Linux nisba :)
Grazie lo stesso.
Giuseppe Di Natale
gdin...@tin.it

 Linux nisba :)
per windows ok, ma sei sicuro che non va su linux?
io linux non lo conosco, ma non dovrebbe essere molto lontano da DOS, credo
che anche in linux esista un device PRN o simile, per cui:
FILE * prn=fopen( "PRN","wt" );
fprintf( prn,"...
che in DOS viene "abbreviato" da stdprn.
dimmi se sbaglio
ciao
donCiccio

 io linux non lo conosco, ma non dovrebbe essere molto lontano da DOS,
kuasi tutti i linuxiani, e molti bene informati, sono ora ricoverati in 
un'unita' coronarica...

 ha scritto nel messaggio
news:1019348.z...@tin.it...

wow!  non esiste il device prn su linux? e vi sentite male per cosi'
poco?  :-)))
ciao
donCiccio

poco?  :-)))
Esistono diversi file in /dev che sono delle astrazioni a mo' di file
dei vari dispositivi. Per stampare basta fare un
bash$ echo "stringa da stampare" > /dev/lp0
(lp0 e' LPT1)
</ot>
<it>
Non paragonatemi Linux al DoS (:
</it>
-- 
 (o-  | Un OS per domarli, Un OS per trovarli,
 //\  | Un OS per ghermirli e nel buio incatenarli
 V_/_ | Nella terra di Redmond, ove l'ombra cupa scende...
Tessera 99ers 204           raffaele punto salmaso presso libero punto it

una soluzione che vada bene sia in Dos/Windows che in Linux
Dipende dalla stampante . 
Se supporta i comandi ESC P  probabilmente eseguira' le stampe con le
funzioni tipo fpritnf ,altrimenti se stampa solo con i driver di
windows puoi star tranquillo che sotto Dos non si "muovera'" mai .

 windows puoi star tranquillo che sotto Dos non si "muovera'" mai .
e chi l'ha detto? basta che tu sappia il protocollo con cui dialoga la
stampante e poi mandi i dati codificati in quel modo; non e' piu' una
fprintf( x,"stringa", ma un po piu' complessa, ma ovviamente fattibile.
il problema e' sempre quale metodo e' portabile su piu' sistemi per stampare
in ascii? (quindi escludiamo le stampanti che non hanno protocolli ascii)
ciao
donCiccio

Voglio innanzitutto ringraziare tutti coloro che hanno risposto, vorrei ora
chidervi un'altra cosa:
premetto che il problema di stampa in Windows l'ho risolto con VB, resta
solo quello relativo a Linux/BSD. Ho notato che attraverso il comando "cat
nomefile > /dev/lpt0" dove nomefile è un file di testo, è possibile inviare
stringhe di testo direttamente alla stampante. La mia domanda quindi è come
poter sfruttare questo comando in un programma C?


il problema e' come? che tipo di fprintf hai in mente?
Per esperienza ti dico che se una stampante supporta il formato dei
comandi ESCp (credo sia il piu diffuso) una istruzione del tipo :
    fprintf(stdprn,"Ciao\n") ;
la stampa senza alcun problema .
Naturale che se si conosce il protocollo della stampante, riesci a
farla stampare ma devi seguire ben altre vie .
saluti

 ha scritto nel messaggio
news:3b0a92ab...@news.inwind.it...

sono daccordo con te sui formati/protocolli di stampa.
il post originario chiedeva un sistema portabile sia su DOS sia su
Linux per mandare caratteri in stampa: fprintf(stdprn,"Ciao\n"); si
puo' fare anche sotto Linux?
ciao
donCiccio

 io linux non lo conosco, ma non dovrebbe essere molto lontano da DOS
ARGH!!!!!!! <sbonk!>
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

Che io sappia (stando al mio manuale) no


non sono sicurissimo ma prova a fare fopen("/dev/lpt0", .... ) ed usare
il FILE * tornato come un qualsiasi altro file handle.

 Non paragonatemi Linux al DoS (:
bhe' in DOS
C:> echo "stringa da stampare" > LPT1
non mi sembra tanto diverso!  :o)))
va bene, va bene, la smetto, non lo faccio piu'...
sono pentito, lo giuro!
ciao
donCiccio

 puo' fare anche sotto Linux?
Questo è solo un suggerimento ...
#ifdef __linux__
FILE    *stdprn;
#endif
[....]
int main( int ac, char **av ){
[...]
#ifdef __linux__
        stdprn=popen("lpr","w")
#endif
[...]
}