PDA

Visualizza la versione completa : [DELPHI] Problema stampante e sequenza Escape


rotteninside
18-11-2005, 18:15
Ciao a tutti, ho un problema con la stampa di sequenze di escape su una stampante EPSON-LX300+
Ho scritto questo codice:


printer.BeginDoc;
printer.Canvas.TextOut(1,10, #27+'E');//// Emphasized print ON
printer.EndDoc;


il risultato che ottengo un quadratino e la E stampata di fianco...Eppure ho letto che si possono utilizzare le sequenze di escape...

alka
18-11-2005, 18:18
Non puoi usare la sequenza di escape con il Canvas: si tratta di un oggetto che funge da "tela" per il disegno di elementi grafici e testo sul "foglio virtuale" della stampante, nei punti desiderati, con diversi stili.

Devi mandare in output del semplice testo e non disegnare testo sul foglio: sono due cose differenti.

Ciao! :ciauz:

rotteninside
18-11-2005, 18:23
Ok! Ho provato anche in questo modo (che comunque con .NET non funge), ma non stampa comunque quello che mi aspetto:


AssignPrn(MyFile);
Rewrite(MyFile);
Write(MyFile, 'Print this text');
writeln(MyFile, #27+'w');
writeln(MyFile, 'Stampa Stampa');
writeln(MyFile, chr(27)+'W');
writeln(MyFile, 'Testo Tasto');
CloseFile(MyFile);

rotteninside
21-11-2005, 16:04
:dh: allora nessuno sa aiutarmi?

alka
21-11-2005, 16:10
Forse il problema dovuto a questo (http://community.borland.com/article/0,1410,16497,00.html).

Ciao! :ciauz:

rotteninside
22-11-2005, 11:51
Con questo aiuto mi funzionano (non con .NET).
C' un modo per evitare che la stampante avanzi sempre di un foglio tutte le volte che chiamo il Printer.EndDoc ?

alka
22-11-2005, 11:56
Originariamente inviato da rotteninside
C' un modo per evitare che la stampante avanzi sempre di un foglio tutte le volte che chiamo il Printer.EndDoc ?
Non credo, in quanto EndDoc rappresenta la conclusione di un lavoro di stampa e pertanto, a lavoro ultimato, l'ultima pagina viene considerata completata e quindi espulsa.

Per evitare questo, si dovrebbero raggruppare lavori di stampa all'interno di uno stesso "documento", racchiuso tra BeginDoc e EndDoc.

Continuo comunque a biasimare la necessit di implementare una stampa in questo modo, usando un'interfaccia primitiva al posto di un reporting tool completo. :stordita:

rotteninside
22-11-2005, 12:16
e lo so che mi biasimi, ma le specifiche mi impongono di usare le sequenze di escape e di stampare come una volta...
addirittura se fosse possibile dovrei usare questo metodo:


assignFile(File, 'LPT1');
reset(File);
writeln(File, 'Stampa Stampa')
CloseFile(File);

alka
22-11-2005, 12:17
Originariamente inviato da rotteninside
e lo so che mi biasimi, ma le specifiche mi impongono di usare le sequenze di escape e di stampare come una volta...
addirittura se fosse possibile dovrei usare questo metodo
Licenziate il Project Manager o il Software Architect! :zizi:

rotteninside
22-11-2005, 15:16
qualcuno conosce se c' una funzione simile a StrPCopy per .NET ? Grazie.

Loading