All printers enhanced and cleaned up: Template, Footer font, Doc.Name, etc., ver. 2.17.760
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user