All printers enhanced and cleaned up: Template, Footer font, Doc.Name, etc., ver. 2.17.760

This commit is contained in:
Milan Hanajik
2017-12-04 18:53:56 +03:00
parent 6181e6a0f2
commit be7c433343
23 changed files with 1664 additions and 1242 deletions
@@ -38,9 +38,10 @@ namespace Results.Output.Printers.OnePerMeter
/// <summary>
/// Property variable for the Font the user wishes to use
/// </summary>
Font font;
Font headerFont;
Font titleFont;
Font titleFont;
Font headerFont;
Font font;
Font footerFont;
///
/// Data to print
@@ -65,11 +66,12 @@ namespace Results.Output.Printers.OnePerMeter
/// Constructor
/// </summary>
/// <param name="textToPrint">Text to be printed</param>
public OnePerMeterPrintDocument(Results.Entities.Batch batch, OnePerMeterPrinterCfg cfg, Results.Entities.WaterMeter wm)
public OnePerMeterPrintDocument(Results.Entities.Batch batch, OnePerMeterPrinterCfg cfg, Results.Entities.WaterMeter wm, string documentName)
{
this.batch = batch;
this.cfg = cfg;
this.wm = wm;
DocumentName = documentName;
topMargin = cfg.TopMargin;
bottomMargin = cfg.BottomMargin;
@@ -85,6 +87,7 @@ namespace Results.Output.Printers.OnePerMeter
titleFont = new Font((cfg.TitFntFml != null ? cfg.TitFntFml : "Arial"), (cfg.TitFntSz > 0 ? cfg.TitFntSz : 10), (FontStyle)cfg.TitFntSty);
headerFont = new Font((cfg.HdrFntFml != null ? cfg.HdrFntFml : "Arial"), (cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10), (FontStyle)cfg.HdrFntSty);
font = new Font((cfg.BodyFntFml != null ? cfg.BodyFntFml : "Arial"), (cfg.BodyFntSz > 0 ? cfg.BodyFntSz : 10), (FontStyle)cfg.BodyFntSty);
footerFont = new Font((cfg.FooterFntFml != null ? cfg.FooterFntFml : "Arial"), (cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10), (FontStyle)cfg.FooterFntSty);
/// Set print area size and margins (in dots using 100 dpi)
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
@@ -131,6 +134,18 @@ namespace Results.Output.Printers.OnePerMeter
/// Run base code
base.OnPrintPage(e);
if (!string.IsNullOrEmpty(cfg.Template))
{
string templatePath = Path.Combine("C:\\TBF\\Templates\\", cfg.Template);
if (File.Exists(templatePath))
{
if (cfg.PageOrientation == PageOrientation.Portrait)
e.Graphics.DrawImage(new Bitmap(Image.FromFile(templatePath), 827, 1169), new Rectangle(0, 0, 827, 1169));
else
e.Graphics.DrawImage(new Bitmap(Image.FromFile(templatePath), 1169, 827), new Rectangle(0, 0, 1169, 827));
}
}
if (pageNr == 1)
{
titleHeight = System.Windows.Forms.TextRenderer.MeasureText(header, titleFont).Height;
@@ -140,12 +155,6 @@ namespace Results.Output.Printers.OnePerMeter
bodyTop = commonTop + commonHeight + spacingOne4Header;
}
if (File.Exists("C:\\TBF\\header.png"))
{
Image img = Image.FromFile("C:\\TBF\\header.png");
e.Graphics.DrawImage(new Bitmap(img), new Rectangle(0, 0, 827, 1169));
}
/// Use the StringFormat class for the text layout of our document
StringFormat format = new StringFormat(StringFormatFlags.LineLimit);
@@ -236,8 +245,8 @@ namespace Results.Output.Printers.OnePerMeter
///
/// Footer on the last page
///
float footerWidth = e.Graphics.MeasureString(footer, font).Width;
PrintAt(e, leftMargin, topMargin + printHeight - 2 * spacingOne, 0, footer, font, Alignment.Left);
float footerWidth = e.Graphics.MeasureString(footer, footerFont).Width;
PrintAt(e, leftMargin, topMargin + printHeight - 2 * spacingOne, 0, footer, footerFont, Alignment.Left);
}
///
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2017 Sensus Metering Systems
/// Copyright (c) 2017 Sensus Slovensko a.s.
///
namespace Results.Output.Printers.OnePerMeter
@@ -7,6 +7,7 @@ namespace Results.Output.Printers.OnePerMeter
public class OnePerMeterPrinterCfg
{
public Config.Entities.PageOrientation PageOrientation;
public string Template;
public int TopMargin;
public int BottomMargin;
public int LeftMargin;
@@ -19,6 +20,9 @@ namespace Results.Output.Printers.OnePerMeter
public string BodyFntFml;
public int BodyFntSz;
public int BodyFntSty;
public string FooterFntFml;
public int FooterFntSz;
public int FooterFntSty;
public bool GoodOnly;
public bool SupressPrinting; /// Bypass printing when true
public System.Globalization.CultureInfo CultureInfo;