using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Printing; using System.Diagnostics; using ZedGraph; using PdfSharp; using PdfSharp.Drawing; using PdfSharp.Pdf.IO; using PdfSharp.Pdf; using PdfSharp.Drawing.Layout; namespace GenesisDisplayTool { public class ReportPages { public static Int32 TitlePage(Int32 pagecounter, String introduction, String title, String date, String operatorName, String serialNo, PdfDocument report, XImage logo, CultureInfo culture) { try { #region Page "TITLEPAGE" #region Prepare data pagecounter++; // Pagenumber not on titlepage report.Info.Title = title; PdfPage pdfPage = report.AddPage(); XGraphics Titlepage = XGraphics.FromPdfPage(pdfPage); var formatter = new XTextFormatter(Titlepage); var layoutRectangle = new XRect(1, 1, 1, 1); Titlepage.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); Titlepage.DrawString($"{title}\n\n\n", ReportParams.font20, XBrushes.Black, new XRect(0, -200, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center); Titlepage.DrawString(date, ReportParams.font14, XBrushes.Black, new XRect(0, -100, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center); Titlepage.DrawString("by", ReportParams.font12, XBrushes.Black, new XRect(0, -50, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center); Titlepage.DrawString(operatorName, ReportParams.font14, XBrushes.Black, new XRect(0, 0, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center); Titlepage.DrawString($"Serial number: {serialNo}", ReportParams.font14, XBrushes.Black, new XRect(0, 100, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center); formatter.DrawString(introduction, ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.IntroductionXPos, ReportParams.IntroductionYPos, 400, 200), XStringFormats.TopLeft); #endregion #endregion } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.TitlePage() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return value return pagecounter; #endregion } public static Int32 Settings(Int32 pagecounter, String textSoftwareVersion, String[] columns, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture) { try { #region Page "SETTINGS" #region Generate page pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics Gp30Settings = XGraphics.FromPdfPage(pdfPage); var formatterGp30Settings = new XTextFormatter(Gp30Settings); var layoutRectangleGp30Settings = new XRect(1, 1, 1, 1); #endregion #region Set Image/ Logo Gp30Settings.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); #endregion #region Headline1 Gp30Settings.DrawString("Settings", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Headline2 (first) Gp30Settings.DrawString("Software Version", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Data formatterGp30Settings.DrawString(textSoftwareVersion, ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); #endregion #region GP30 settings if (enable) { #region Headline2 Gp30Settings.DrawString("Values obtained from register readout", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos + 150, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Data/ text formatterGp30Settings.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos, ReportParams.StandardTextYPos + 150, 400, 200), XStringFormats.TopLeft); formatterGp30Settings.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 140, ReportParams.StandardTextYPos + 150, 400, 200), XStringFormats.TopLeft); formatterGp30Settings.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 190, ReportParams.StandardTextYPos + 150, 400, 200), XStringFormats.TopLeft); #endregion } #endregion #region Set page number Gp30Settings.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.Settings() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return values return pagecounter; #endregion } public static Int32 DecodedData(Int32 pagecounter, String[] columns, Boolean enable, Boolean enableColumn2, Boolean enableColumn3, Boolean enableColumn4, PdfDocument report, XImage logo, CultureInfo culture) { try { #region Page "MEAN VALUES" if ((enable) && ((enableColumn2) || (enableColumn3) || (enableColumn4))) { #region All PATHs #region Prepare Data pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics XMean = XGraphics.FromPdfPage(pdfPage); var formatterData = new XTextFormatter(XMean); var layoutRectangleData = new XRect(1, 1, 1, 1); Int32 Xoffset = -20; #endregion #region Headline1 XMean.DrawString("Decoded Data", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Set text (First column) if (!enableColumn2) Xoffset = Xoffset + 40; if (!enableColumn3) Xoffset = Xoffset + 40; if (!enableColumn4) Xoffset = Xoffset + 40; formatterData.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 120; #endregion #region Set Image/Logo XMean.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); #endregion #region Add pagenumber XMean.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion #region PATH0 if (enableColumn2) { Misc.WaitNMilliseconds(100); #region Headline2 XMean.DrawString("PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 110; #endregion } #endregion #region PATH1 if (enableColumn3) { Misc.WaitNMilliseconds(100); #region Headline2 XMean.DrawString("PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 110; #endregion } #endregion #region PATH2 if (enableColumn4) { Misc.WaitNMilliseconds(100); #region Headline2 XMean.DrawString("PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); #endregion } #endregion } #endregion } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.DecodedData() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return values return pagecounter; #endregion } public static Int32 DecodedData2(Int32 pagecounter, String[] columns, Boolean enable, Boolean enableColumn2, Boolean enableColumn3, Boolean enableColumn4, PdfDocument report, XImage logo, CultureInfo culture) { try { #region Page "F/H-Protocol" if ((enable) && ((enableColumn2) || (enableColumn3) || (enableColumn4))) { #region All PATHs #region Prepare Data pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics XMean = XGraphics.FromPdfPage(pdfPage); var formatterData = new XTextFormatter(XMean); var layoutRectangleData = new XRect(1, 1, 1, 1); Int32 Xoffset = -20; #endregion #region Headline1 XMean.DrawString("Decoded Data", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Set text (First column) if (!enableColumn2) Xoffset = Xoffset + 40; if (!enableColumn3) Xoffset = Xoffset + 40; if (!enableColumn4) Xoffset = Xoffset + 40; formatterData.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 120; #endregion #region Set Image/Logo XMean.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); #endregion #region Add pagenumber XMean.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion #region PATH0 if (enableColumn2) { Misc.WaitNMilliseconds(100); #region Headline2 XMean.DrawString("PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 110; #endregion } #endregion #region PATH1 if (enableColumn3) { Misc.WaitNMilliseconds(100); #region Headline2 XMean.DrawString("PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 110; #endregion } #endregion #region PATH2 if (enableColumn4) { Misc.WaitNMilliseconds(100); #region Headline2 XMean.DrawString("PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); #endregion } #endregion } #endregion } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.DecodedData() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return values return pagecounter; #endregion } public static Int32 Maingraph(Int32 pagecounter, String mainGraphTitle, ZedGraphControl graph, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture) { try { #region Page "MAIN GRAPH" if (enable) { #region Prepare data pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics XDecodedDataMainGraph = XGraphics.FromPdfPage(pdfPage); var formatterMainGraph = new XTextFormatter(XDecodedDataMainGraph); var layoutRectangleMainGraph = new XRect(1, 1, 1, 1); #endregion #region Headline1 XDecodedDataMainGraph.DrawString("Main Graph", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Headline2 XDecodedDataMainGraph.DrawString(mainGraphTitle, ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set Image/Logo XImage Image0 = graph.MasterPane.GetImage(); XDecodedDataMainGraph.DrawImage(Image0, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize)); XDecodedDataMainGraph.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); #endregion #region Add pagenumber XDecodedDataMainGraph.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion } #endregion } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.Maingraph() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return value return pagecounter; #endregion; } public static Int32 StdDeviationPath0(Int32 pagecounter, String[] columns, ZedGraphControl graphPath0, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture) { try { if (enable) { #region Standard deviation PATH0 #region Prepare Page pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics StdDev0 = XGraphics.FromPdfPage(pdfPage); var formatterStdDev0 = new XTextFormatter(StdDev0); var layoutStdDev0 = new XRect(1, 1, 1, 1); #endregion #region Headline1 StdDev0.DrawString("Standard Deviation", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Headline2 StdDev0.DrawString("Standard Deviation PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set image XImage ImageStdDev0 = graphPath0.MasterPane.GetImage(1080, 640, 600, true); StdDev0.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); StdDev0.DrawImage(ImageStdDev0, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize)); #endregion Misc.WaitNMilliseconds(100); #region Add data formatterStdDev0.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 20, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft); formatterStdDev0.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 100, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft); #endregion #region Set pagenumber StdDev0.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion } } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.StdDeviationPath0() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return value return pagecounter; #endregion } public static Int32 StdDeviationPath1(Int32 pagecounter, String[] columns, ZedGraphControl graphPath1, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture) { try { if (enable) { #region Standard deviation PATH0 #region Prepare Page pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics StdDev1 = XGraphics.FromPdfPage(pdfPage); var formatterStdDev1 = new XTextFormatter(StdDev1); var layoutStdDev1 = new XRect(1, 1, 1, 1); #endregion #region Headline1 StdDev1.DrawString("Standard Deviation", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Headline2 StdDev1.DrawString("Standard Deviation PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set image XImage ImageStdDev1 = graphPath1.MasterPane.GetImage(1080, 640, 600, true); StdDev1.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); StdDev1.DrawImage(ImageStdDev1, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize)); #endregion Misc.WaitNMilliseconds(100); #region Add data formatterStdDev1.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 20, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft); formatterStdDev1.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 100, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft); #endregion #region Set pagenumber StdDev1.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion } } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), $"ReportPages.StdDeviationPath1() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return value return pagecounter; #endregion } public static Int32 StdDeviationPath2(Int32 pagecounter, String[] columns, ZedGraphControl graphPath2, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture) { try { if (enable) { #region Standard deviation PATH2 #region Prepare Page pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics StdDev2 = XGraphics.FromPdfPage(pdfPage); var formatterStdDev2 = new XTextFormatter(StdDev2); var layoutStdDev2 = new XRect(1, 1, 1, 1); #endregion #region Headline1 StdDev2.DrawString("Standard Deviation", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Headline2 StdDev2.DrawString("Standard Deviation PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set image XImage ImageStdDev2 = graphPath2.MasterPane.GetImage(1080, 640, 600, true); StdDev2.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); StdDev2.DrawImage(ImageStdDev2, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize)); #endregion Misc.WaitNMilliseconds(100); #region Add data formatterStdDev2.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 20, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft); formatterStdDev2.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 100, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft); #endregion #region Set pagenumber StdDev2.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion } } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.StdDeviationPath2() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty); #endregion } #region Return value return pagecounter; #endregion } public static Int32 MeanValues(Int32 pagecounter, String[] columns, Boolean enable, Boolean enableColumn2, Boolean enableColumn3, Boolean enableColumn4, PdfDocument report, XImage logo, CultureInfo culture) { try { #region Page "MEAN VALUES" if ((enable) && ((enableColumn2) || (enableColumn3) || (enableColumn4))) { #region All PATHs #region Prepare Data pagecounter++; PdfPage pdfPage = report.AddPage(); XGraphics XMean = XGraphics.FromPdfPage(pdfPage); var formatterData = new XTextFormatter(XMean); var layoutRectangleData = new XRect(1, 1, 1, 1); Int32 Xoffset = 0; #endregion #region Headline1 XMean.DrawString("Mean Values", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter); #endregion #region Set text (First column) if (!enableColumn2) Xoffset = Xoffset + 40; if (!enableColumn3) Xoffset = Xoffset + 40; if (!enableColumn4) Xoffset = Xoffset + 40; formatterData.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 100; #endregion #region Set Image/Logo XMean.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize)); #endregion #region Add pagenumber XMean.DrawString($"Page {pagecounter.ToString()}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter); #endregion #endregion Misc.WaitNMilliseconds(100); #region PATH0 if (enableColumn2) { #region Headline2 XMean.DrawString("PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 100; #endregion } #endregion Misc.WaitNMilliseconds(100); #region PATH1 if (enableColumn3) { #region Headline2 XMean.DrawString("PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); Xoffset = Xoffset + 100; #endregion } #endregion Misc.WaitNMilliseconds(100); #region PATH2 if (enableColumn4) { #region Headline2 XMean.DrawString("PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); #endregion #region Set text formatterData.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft); #endregion } #endregion } #endregion } catch (Exception ex) { #region Error ErrorLog.Log(LogErrReason.Exception(), "ReportPages.MeanValues() failed", $"0x{ex.HResult.ToString("X")}", String.Empty); #endregion } #region Return values return pagecounter; #endregion } } }