private void Begin(PdfDocument document, IInstruments instruments, bool isLive) { SetTitle(document, instruments.BandName); SetPageProperties(instruments.Width, instruments.Height); AddPlan(document, instruments.Height, instruments.Width, instruments, isLive); AddDetails(document, instruments); }
private void AddDetails(PdfDocument document, IInstruments instruments) { var gfx = GetGraphics(document); var font = new XFont("Verdana", 12, XFontStyle.Bold); var fontDetail = new XFont("Verdana", 10, XFontStyle.Regular); gfx.DrawString("Band Name: " + instruments.BandName, font, new XSolidBrush(XColor.FromArgb(0, 0, 0)), 15, 25); var top = this._top; var secondColumn = 250; var currentMember = ""; foreach (var instrument in instruments.AllInstruments) { if (currentMember != instrument.BandMemberName) { top = top + 25; gfx.DrawLine(new XPen(XColor.FromArgb(0, 0, 0)), 15, secondColumn, 16, secondColumn); gfx.DrawString("Band member", font, new XSolidBrush(XColor.FromArgb(0, 0, 0)), 15, top); gfx.DrawString(instrument.BandMemberName, font, new XSolidBrush(XColor.FromArgb(0, 0, 0)), secondColumn, top); top = top + 20; } currentMember = instrument.BandMemberName; gfx.DrawString("Equipment", fontDetail, new XSolidBrush(XColor.FromArgb(0, 0, 0)), 15, top); gfx.DrawString(instrument.Text, fontDetail, new XSolidBrush(XColor.FromArgb(0, 0, 0)), secondColumn, top); if (!String.IsNullOrWhiteSpace(instrument.Detail)) { gfx.DrawString("Extra Detail", fontDetail, new XSolidBrush(XColor.FromArgb(0, 0, 0)), 15, top + 15); gfx.DrawString(instrument.Detail, fontDetail, new XSolidBrush(XColor.FromArgb(0, 0, 0)), secondColumn, top + 15); } else { top -= 20; } top += 35; if (top > gfx.PageSize.Height - 50) { top = this._top + 40; AddStageplanFooter(gfx, font, instruments.Width, instruments.Height); gfx = GetGraphics(document); } } AddStageplanFooter(gfx, font, instruments.Width, instruments.Height); }
public bool Create(IInstruments instruments, bool isLive) { var document = new PdfDocument(); Begin(document, instruments, isLive); string filename = instruments.BandName + "_" + DateTime.Now.ToFileTimeUtc() + ".pdf"; document.Save(filename); // ...and start a viewer. Process.Start(filename); document.Close(); return(false); }
private void AddPlan(PdfDocument document, decimal stageHeight, decimal stageWidth, IInstruments instruments, bool isLive) { var gfx = GetGraphics(document); // Get an XGraphics object for drawing // Create a font var font = new XFont("Verdana", 12, XFontStyle.Bold | XFontStyle.Underline); foreach (var instrument in instruments.AllInstruments) { var path = ""; if (!isLive) { if (Environment.UserDomainName == "MR-TEE") { path = @"D:\Projects\Stageplan\stageplan\Stage-Plan.Ui\Content\Stageplan\Images\"; } else { path = @"D:\GitHub\Stageplan\stageplan\Stage-Plan.Ui\Content\Stageplan\Images\"; } path += Path.GetFileName(instrument.Src); } else { path = instrument.GetMappedPath(new Uri(instrument.Src).AbsolutePath); } var img = XImage.FromFile(path); gfx.DrawImage(img, (int)instrument.Left, (int)instrument.Top, 60.00, 60.00); var fontInstrument = new XFont("Verdana", 10, XFontStyle.Regular); gfx.DrawString(instrument.Text, fontInstrument, new XSolidBrush(XColor.FromArgb(0, 0, 0)), (int)instrument.Left + 30, (int)instrument.Top + 75, XStringFormats.BottomCenter); } gfx.DrawString("Front of Stage. . . https://stage-plan.com ", font, new XSolidBrush(XColor.FromArgb(0, 0, 0)), (int)instruments.Width / 2, (int)instruments.Height - 50, XStringFormats.BottomCenter); }