Modificata apertura del device di posizionamento: ogni volta che
esegue una scrittura esegue anche una fclose(). git-svn-id: svn://10.65.10.50/trunk@2108 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7257ae9ee5
commit
f419e77bad
@ -2322,12 +2322,12 @@ void TForm::arrange_form()
|
||||
// font di default della stampante (tipicamente 10 cpi). Accade pero' (con la generica
|
||||
// solo testo) che rimanga settato l'ultimo font, di conseguenza quando si effettua una
|
||||
// seconda stampa con posizionamento, stampera' tali caratteri in 17"!!!! Per questo
|
||||
// motivo e' necessario settare a 17 cpi, almeno la prima volta, la stampante!.
|
||||
// Quindi, per ovviare a tutto cio, visto che TForm::arange_form() ha senso solo su
|
||||
// stampanti ad aghi, che le stampanti ad aghi possono andare in emulazione EPSON o IBM,
|
||||
// che il codice per settare il font draft 17cpi e' lo stesso sia per EPSON che IBM
|
||||
// CHR(15), allora prima del posizionamento scrivo il chr(15) sulla stampante!
|
||||
int i, x;
|
||||
// motivo e' necessario settare a 17 cpi, almeno la prima volta, la stampante!.
|
||||
// Quindi, per ovviare a tutto cio, visto che TForm::arange_form() ha senso solo su
|
||||
// stampanti ad aghi, che le stampanti ad aghi possono andare in emulazione EPSON o IBM,
|
||||
// che il codice per settare il font draft 17cpi e' lo stesso sia per EPSON che IBM
|
||||
// CHR(15), allora prima del posizionamento scrivo il chr(15) sulla stampante!
|
||||
int i, x;
|
||||
TString str_pos;
|
||||
if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device);
|
||||
TMask m("ba2100c");
|
||||
@ -2337,6 +2337,7 @@ void TForm::arrange_form()
|
||||
for (i=1; i < _ipy; i++) str_pos << "\n";
|
||||
fprintf(lpt,"%s",(const char*) str_pos);
|
||||
fflush(lpt); // Salta le righe...
|
||||
fclose(lpt);
|
||||
str_pos.cut(0); //Azzera la stringa di posizionamento
|
||||
for (i=1; i < _ipx; i++) str_pos << " "; //Aggiunge gli spazi necessari...
|
||||
if (_ipx > 0 && _ipy > 0)
|
||||
@ -2345,16 +2346,21 @@ void TForm::arrange_form()
|
||||
for (i=1; i < x; i++) str_pos << " ";
|
||||
if (_fpx > 0)
|
||||
str_pos << _char_to_pos; // aggiunge il secondo carattere di posizionamento
|
||||
TString bspc; bspc.fill('\b',str_pos.len()); // Questi sevono per tornare indietro...
|
||||
TString bspc; bspc.fill('\b',str_pos.len()); // Questi servono per tornare indietro...
|
||||
do
|
||||
{
|
||||
lpt = fopen(device,"w");
|
||||
if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device);
|
||||
fprintf(lpt,"%s",(const char*) bspc);
|
||||
fprintf(lpt,"%s",(const char*) str_pos);
|
||||
fprintf(lpt,"%s\r",(const char*) str_pos);
|
||||
fflush(lpt);
|
||||
fclose(lpt);
|
||||
} while (m.run() == K_ESC); // cicla sulla stampa posizionamento...
|
||||
const int h = height(odd_page);
|
||||
str_pos.cut(0);
|
||||
for (i=0; i <= h; i++) str_pos << "\n";
|
||||
lpt = fopen(device,"w");
|
||||
if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device);
|
||||
fprintf(lpt, "%s", (const char*) str_pos); // Salta tante righe quanto e' lungo il form standard
|
||||
fclose (lpt);
|
||||
#if XVT_OS != XVT_OS_WIN
|
||||
|
Loading…
x
Reference in New Issue
Block a user