diff --git a/include/printer.cpp b/include/printer.cpp index 4cb492ad5..ecb97c777 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -705,7 +705,8 @@ HIDDEN bool set_windows_print_device (TMask_field& f, KEY key) TPrinter::TPrinter() : _date (TODAY), _multiple_link (FALSE), _frozen (FALSE), _isgraphics (TRUE), - _lines_per_inch (6), _ch_size (12), _ncopies(1) + _lines_per_inch (6), _ch_size (12), _ncopies(1), _export_header(FALSE), + _export_header_len(0) #if XVT_OS == XVT_OS_WIN , _print_rcd(NULL) #endif @@ -1107,7 +1108,7 @@ bool TPrinter::jump(int jumpline) bool TPrinter::formfeed() { const int lastrow = _formlen - _footersize; - for (; _currentrow <= lastrow; _currentrow++) + for (; _currentrow + _export_header_len <= lastrow; _currentrow++) printrow(); return printfooter(); } diff --git a/include/printer.h b/include/printer.h index 10b479332..12f3f018b 100755 --- a/include/printer.h +++ b/include/printer.h @@ -179,6 +179,7 @@ class TPrinter : public TObject void _get_windows_printer_names(TToken_string& t); bool _multiple_copies; bool _export_header; + int _export_header_len; PRINTSECTIONHANDLER _headerhandler, _footerhandler; LINKHANDLER _linkhandler; @@ -283,8 +284,9 @@ public: void setcurrentpage(word n) { _currentpage = n; } // dirige la stampa sul file specificato, preservando gli attributi di formato // se header == TRUE si stampano su file anche gli header - void set_export_file(const char* n, bool header = TRUE) - { _printertype = export; _exportfile = n; _export_header = header; } + void set_export_file(const char* n, bool header = TRUE, int len = 0) + { _printertype = export; _exportfile = n; _export_header = header; + _export_header_len = len;} // infila un file di export fatto da un'altra printer (con formati e tutto, ignora // gli header supponendo che siano gia' presenti nel file) // se header == TRUE gli header stanno nel file e non vengono stampati