private float GenerateSignature(GenerateInvoiceContext request, PdfGenerator pdf, float y) { y = pdf.IncrementY(y, 55, FOOTER_HEIGHT); //gap to place signature pdf.DrawHorizontalLine(15, 85, y, 0.7f, pdf.AccentColor); pdf.DrawHorizontalLine(85, 15, y, 0.7f, pdf.AccentColor, null, true); y = pdf.IncrementY(y, 2, FOOTER_HEIGHT); var result = pdf.AddText("customer", 15, y); result = pdf.AddText("business", 15, y, null, null, true); y = result.Bounds.Bottom; y = pdf.IncrementY(y, 0, FOOTER_HEIGHT); return(y); }
private void GenerateFooter(GenerateInvoiceContext request, PdfGenerator pdf) { //https://help.syncfusion.com/file-formats/pdf/working-with-headers-and-footers RectangleF bounds = new RectangleF(0, 0, pdf.PageWidth, FOOTER_HEIGHT); PdfPageTemplateElement footer = new PdfPageTemplateElement(bounds); //BUG: NullReferenceException when trying to put a web link into the footer - drawing web links using footer graphics not supported yet by syncfusion //pdf.DrawWebLink(0, 35, "http://www.syncfusion.com", "Awesome control library for your mobile cross platform needs", pdf.NormalFont, footer.Graphics); //pdf.DrawWebLinkPageBottom(0, 35, "http://www.syncfusion.com", "Awesome control library for your mobile cross platform needs", pdf.NormalFont); PdfCompositeField compositeField = new PdfCompositeField(pdf.NormalFont, pdf.AccentBrush, "http://www.syncfusion.com Awesome control library for your mobile cross platform needs"); compositeField.Bounds = footer.Bounds; //Draw the composite field in footer. compositeField.Draw(footer.Graphics, new PointF(0, 0)); pdf.DrawHorizontalLine(0, pdf.PageWidth, 0, 0.7f, pdf.AccentColor, footer.Graphics); pdf.Document.Template.Bottom = footer; }
private float GenerateBodyHeader(GenerateInvoiceContext request, PdfGenerator pdf) { PdfLayoutResult result = null; float y = 10; //Add IMAGE pdf.AddImage(request.Invoice.Logo, 0, y, request.LogoWidth, request.LogoHeight); var font = pdf.NormalFontBold; float x = request.LogoWidth > 0 ? request.LogoWidth + 10 : 0; result = pdf.AddText(request.Invoice.BusinessName, x, y, font); result = pdf.AddText(request.Invoice.BusinessInfo, x, result.Bounds.Bottom + 2); float businessY = result.Bounds.Bottom + 10; string twitterLink = "http://twitter.com/syncfusion"; string webLink = "https://www.syncfusion.com/"; string facebook = "https://www.facebook.com/Syncfusion"; string youtube = "https://www.youtube.com/syncfusioninc"; string linkedIn = "https://www.linkedin.com/company/syncfusion?trk=top_nav_home"; string instagram = "http://www.instagram.com"; string[] socialLinks = new string[] { "twitter", "website", "facebook", "youtube", "linkedIn", "instagram" }; //left align all the social links float xOffsetTextSize = pdf.LongestText(socialLinks); result = pdf.AddWebLink(webLink, 0, y, "website", null, true, xOffsetTextSize); result = pdf.AddWebLink(facebook, 0, result.Bounds.Bottom, "facebook", null, true, xOffsetTextSize); result = pdf.AddWebLink(twitterLink, 0, result.Bounds.Bottom, "twitter", null, true, xOffsetTextSize); result = pdf.AddWebLink(youtube, 0, result.Bounds.Bottom, "youtube", null, true, xOffsetTextSize); result = pdf.AddWebLink(linkedIn, 0, result.Bounds.Bottom, "linkedin", null, true, xOffsetTextSize); result = pdf.AddWebLink(instagram, 0, result.Bounds.Bottom, "instagram", null, true, xOffsetTextSize); float socialLinksY = result.Bounds.Bottom + 10; float imageY = request.LogoHeight + 15; float actualY = Enumerable.Max(new float[] { businessY, socialLinksY, imageY }); y = actualY; string customer = request.Invoice.Customer + Environment.NewLine + request.Invoice.Address; result = pdf.AddText(customer, 0, y, font); y = result.Bounds.Bottom; y = pdf.IncrementY(y, 10, FOOTER_HEIGHT, 30); string leftText = "INVOICE #" + request.Invoice.Number.ToString(); string rightText = DateTime.Now.ToString("dd MMM yyyy"); result = pdf.AddRectangleText(leftText, rightText, y, 30); y = result.Bounds.Bottom; y = pdf.IncrementY(y, 15, FOOTER_HEIGHT); //Creates text elements to add the address and draw it to the page. result = pdf.AddText(request.Invoice.Heading, 10, y, pdf.SubHeadingFont); y = result.Bounds.Bottom; y = pdf.IncrementY(y, 3, FOOTER_HEIGHT); pdf.DrawHorizontalLine(0, pdf.PageWidth, y, 0.7f, pdf.AccentColor); y = pdf.IncrementY(y, 1, FOOTER_HEIGHT); return(y); }