static private bool Print(PackageComponent printComponents, string guid) { if (!IsPrintOK()) { return(false); } //nugget: sending raw ESCape codes to dot matrix printer (Epson's "ESC/P" standard) //nugget: ESC/P reference manual: http://files.support.epson.com/pdf/general/escp2ref.pdf //ESC @ = reset //ESC 3 n = n/216" line spacing //ESC M = 12 cpi //ESC x n = quality: 0 = Draft, 1 = NLQ //ESC k n = font: 0 = Roman, 1 = Sans serif font //ESC p 0 = turn off proportional //ESC 2 = 1/6" line spacing = 0.166666666666666 // ReSharper disable InconsistentNaming using (var TaxForm_print = new Proc("TaxForm_print")) // ReSharper restore InconsistentNaming { TaxForm_print["@TaxFormGUID"] = guid; //for testprint, pass Guid.Empty i.e. '00000000-0000-0000-0000-000000000000' TaxForm_print["@PrintComponent"] = (int)printComponents; TaxForm_print.ExecuteDataSet(); var poPrinter = new RawPrinterJob( SettingsModel.Global["FormPrinterInitCodes"], Convert.ToInt16(SettingsModel.Global["FormPrinterWidth"]), Convert.ToInt16(SettingsModel.Global["FormPrinterHeight"])); var abwPrinter = poPrinter.Clone(); //saves the wasted effort of repopulating another blank page if (PrintFields(poPrinter, TaxForm_print.DataSet.Tables[0].Rows)) { if (guid == Guid.Empty.ToString()) { poPrinter.PrintTestRulers(); } poPrinter.SendToPrinter(SettingsModel.Local["POPrinter"]); } if (PrintFields(abwPrinter, TaxForm_print.DataSet.Tables[1].Rows)) { if (guid == Guid.Empty.ToString()) { abwPrinter.PrintTestRulers(); } abwPrinter.SendToPrinter(SettingsModel.Local["AbwPrinter"]); } CacheTables(TaxForm_print, "TaxForm"); //sync the updated PrintDate columns in the TableCache } return(true); }
static private bool PrintFields(RawPrinterJob printer, DataRowCollection rows) { if (rows.Count == 0) { return(false); } foreach (DataRow r in rows) { printer.PrintStringAtPos(r["Data"].ToString(), (int)r["page"], (int)r["col"], (int)r["row"], (int)r["MaxLength"], (int)r["MaxRows"]); } return(true); }
static private bool PrintFields(RawPrinterJob printer, DataRowCollection rows) { if (rows.Count == 0) return (false); foreach (DataRow r in rows) { printer.PrintStringAtPos(r["Data"].ToString(), (int)r["page"], (int)r["col"], (int)r["row"], (int)r["MaxLength"], (int)r["MaxRows"]); } return (true); }
static private bool Print(PackageComponent printComponents, string guid) { if (!IsPrintOK()) return(false); //nugget: sending raw ESCape codes to dot matrix printer (Epson's "ESC/P" standard) //nugget: ESC/P reference manual: http://files.support.epson.com/pdf/general/escp2ref.pdf //ESC @ = reset //ESC 3 n = n/216" line spacing //ESC M = 12 cpi //ESC x n = quality: 0 = Draft, 1 = NLQ //ESC k n = font: 0 = Roman, 1 = Sans serif font //ESC p 0 = turn off proportional //ESC 2 = 1/6" line spacing = 0.166666666666666 // ReSharper disable InconsistentNaming using (var TaxForm_print = new Proc("TaxForm_print")) // ReSharper restore InconsistentNaming { TaxForm_print["@TaxFormGUID"] = guid; //for testprint, pass Guid.Empty i.e. '00000000-0000-0000-0000-000000000000' TaxForm_print["@PrintComponent"] = (int)printComponents; TaxForm_print.ExecuteDataSet(); var poPrinter = new RawPrinterJob( SettingsModel.Global["FormPrinterInitCodes"], Convert.ToInt16(SettingsModel.Global["FormPrinterWidth"]), Convert.ToInt16(SettingsModel.Global["FormPrinterHeight"])); var abwPrinter = poPrinter.Clone(); //saves the wasted effort of repopulating another blank page if (PrintFields(poPrinter, TaxForm_print.DataSet.Tables[0].Rows)) { if (guid == Guid.Empty.ToString()) poPrinter.PrintTestRulers(); poPrinter.SendToPrinter(SettingsModel.Local["POPrinter"]); } if (PrintFields(abwPrinter, TaxForm_print.DataSet.Tables[1].Rows)) { if (guid == Guid.Empty.ToString()) abwPrinter.PrintTestRulers(); abwPrinter.SendToPrinter(SettingsModel.Local["AbwPrinter"]); } CacheTables(TaxForm_print, "TaxForm"); //sync the updated PrintDate columns in the TableCache } return (true); }