diff --git a/include/printer.cpp b/include/printer.cpp index 9c6b92b8e..d18b6e7b8 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -283,7 +283,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) TToken_string tt; TFilename bmp; - if (!_isgraphics && _finker == NULL) + if (!_fink_mode && _finker == NULL) _finker = new TPrint_intersector(_fink, _formlen); else if (_finker) _finker->clear(); @@ -334,7 +334,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) read_int (bg_desc, x2, cnt); read_int (bg_desc, y2, cnt); cnt++; // skip separator - if (_isgraphics) + if (_isgraphics && _fink_mode) { tt << op; tt.add (x1 - 1); @@ -1109,8 +1109,8 @@ TPrinter::TPrinter() #else _isgraphics = FALSE; #endif - - _finker = _isgraphics ? NULL : new TPrint_intersector(_fink, _formlen); + set_fink_mode(TRUE); + _finker = _isgraphics && _fink_mode ? NULL : new TPrint_intersector(_fink, _formlen); } bool TPrinter::isfax() const @@ -1591,6 +1591,24 @@ bool TPrinter::printfooter() // @doc EXTERNAL +// @mfunc Permette di settare il tipo di fincatura +void TPrinter::set_fink_mode( + bool f) // @parm Indica il tipo di fincatura: + // + // @flag TRUE | Fincatura di tipo grafico + // @flag FALSE | Fincatura di tipo testo + + // @comm Viene prima controllato che la stampante supporti la modalita' grafica, + // in tal caso, se viene impostato il flag a TRUE e la stampante e' generica + // oppure non ha il flag di stampa elementi grafici attivato, la fincatura sara' + // in modo testo. +{ + _fink_mode = f; + if (_fink_mode && (is_generic() || !_isgraphics)) _fink_mode = FALSE; +} + +// @doc EXTERNAL + // @mfunc Permette di saltare alcune righe dalla posizione corrente // // @rdesc Ritorna il risulato dell'operazione: @@ -1598,7 +1616,7 @@ bool TPrinter::printfooter() // @flag TRUE | Se e' riuscito a saltare le righe // @flag FALSE | Se non e' riuscito a saltare le righe bool TPrinter::skip( - int linestoskip) // @parm Vengono accettai solo valori positivi + int linestoskip) // @parm Vengono accettati solo valori positivi // @xref { diff --git a/include/printer.h b/include/printer.h index 9d17278ba..3e9ceccc5 100755 --- a/include/printer.h +++ b/include/printer.h @@ -351,6 +351,9 @@ class TPrinter : public TObject // @cmember:(INTERNAL) Caratteri per fincatura char _fink[11]; + // @cmember:(INTERNAL) Tipo di fincatura (TRUE grafica, FALSE testo) + bool _fink_mode; + // @cmember:(INTERNAL) Fincatore per modo testo TPrint_intersector* _finker; @@ -531,6 +534,11 @@ public: void set_fincatura(const char* s) { strncpy(_fink, s, sizeof(_fink)); } + // @cmember Setta/forza il tipo di fincatura + void set_fink_mode(bool f) ; + // @cmember Ritorna il tipo di fincatura + bool get_fink_mode() { return _fink_mode; } + // @cmember Ritorna il carattere di fincatura alto-sinistra char f_topleft() const { return _fink[0]; }