private static PDFFlowContent BuildSubscript(PDFAnsiTrueTypeFont font) { PDFAnsiTrueTypeFont fontSubscript = new PDFAnsiTrueTypeFont(font, 18); PDFAnsiTrueTypeFont fontRegular = new PDFAnsiTrueTypeFont(font, 12); PDFFormattedContent content = new PDFFormattedContent(); PDFFlowTextContent flowText = new PDFFlowTextContent(content); flowText.OuterMargins = new PDFFlowContentMargins(0, 0, 36, 0); PDFFormattedTextBlock titleBlock = new PDFFormattedTextBlock("Subscript text", fontRegular); content.Paragraphs.Add(new PDFFormattedParagraph(titleBlock)); content.Paragraphs.Add(new PDFFormattedParagraph(" ")); PDFFormattedTextBlock block1 = new PDFFormattedTextBlock("Y = X", font); block1.Subscript.Add(new PDFFormattedTextBlock("1", fontSubscript)); PDFFormattedTextBlock block2 = new PDFFormattedTextBlock(" + X", font); block2.Subscript.Add(new PDFFormattedTextBlock("2", fontSubscript)); PDFFormattedTextBlock block3 = new PDFFormattedTextBlock(" + X", font); block3.Subscript.Add(new PDFFormattedTextBlock("3", fontSubscript)); PDFFormattedTextBlock blockn = new PDFFormattedTextBlock(" + ... + X", font); blockn.Subscript.Add(new PDFFormattedTextBlock("n", fontSubscript)); PDFFormattedParagraph paragraph = new PDFFormattedParagraph(block1, block2, block3, blockn); paragraph.HorizontalAlign = PDFStringHorizontalAlign.Center; content.Paragraphs.Add(paragraph); return(flowText); }
private static PDFFlowContent BuildSuperscript(PDFAnsiTrueTypeFont font) { PDFAnsiTrueTypeFont fontSuperscript = new PDFAnsiTrueTypeFont(font, 18); PDFAnsiTrueTypeFont fontRegular = new PDFAnsiTrueTypeFont(font, 12); PDFFormattedContent content = new PDFFormattedContent(); PDFFlowTextContent flowText = new PDFFlowTextContent(content); PDFFormattedTextBlock titleBlock = new PDFFormattedTextBlock("Superscript text", fontRegular); content.Paragraphs.Add(new PDFFormattedParagraph(titleBlock)); content.Paragraphs.Add(new PDFFormattedParagraph(" ")); PDFFormattedTextBlock xBlock = new PDFFormattedTextBlock("X", font); xBlock.Superscript.Add(new PDFFormattedTextBlock("2", fontSuperscript)); PDFFormattedTextBlock yBlock = new PDFFormattedTextBlock(" + Y", font); yBlock.Superscript.Add(new PDFFormattedTextBlock("2", fontSuperscript)); PDFFormattedTextBlock zBlock = new PDFFormattedTextBlock(" = Z", font); zBlock.Superscript.Add(new PDFFormattedTextBlock("2", fontSuperscript)); PDFFormattedParagraph paragraph = new PDFFormattedParagraph(xBlock, yBlock, zBlock); paragraph.HorizontalAlign = PDFStringHorizontalAlign.Center; content.Paragraphs.Add(paragraph); return(flowText); }
private static PDFFlowContent BuildEndSection(PDFAnsiTrueTypeFont verdana) { PDFAnsiTrueTypeFont headerFont = new PDFAnsiTrueTypeFont(verdana); headerFont.Size = 20; PDFAnsiTrueTypeFont contentFont = new PDFAnsiTrueTypeFont(verdana); contentFont.Size = 12; PDFFormattedContent endInfo = new PDFFormattedContent(); endInfo.Paragraphs.Add(new PDFFormattedTextBlock(" ", headerFont)); endInfo.Paragraphs.Add(new PDFFormattedTextBlock("PAID IN FULL by credit card.", headerFont)); endInfo.Paragraphs.Add(new PDFFormattedTextBlock(" ", headerFont)); PDFFormattedTextBlock text1 = new PDFFormattedTextBlock("If you have any queries regarding this Invoice, please contact ", contentFont); PDFFormattedTextBlock email = new PDFFormattedTextBlock("*****@*****.**", contentFont); PDFFormattedTextBlock text2 = new PDFFormattedTextBlock(" quoting the Invoice Number above.", contentFont); email.TextColor = new PDFBrush(PDFRgbColor.Blue); email.Action = new PDFUriAction("mailto:[email protected]"); endInfo.Paragraphs.Add(text1, email, text2); PDFFlowTextContent endInfoText = new PDFFlowTextContent(endInfo); return(endInfoText); }
private static PDFFlowContent BuildBuyerSection(PDFAnsiTrueTypeFont verdana, PDFAnsiTrueTypeFont verdanaBold) { PDFAnsiTrueTypeFont headerFont = new PDFAnsiTrueTypeFont(verdana); headerFont.Size = 20; PDFAnsiTrueTypeFont labelFont = new PDFAnsiTrueTypeFont(verdanaBold); labelFont.Size = 12; PDFAnsiTrueTypeFont contentFont = new PDFAnsiTrueTypeFont(verdana); contentFont.Size = 12; PDFFormattedContent buyerInfo = new PDFFormattedContent(); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock(" ", headerFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock("Invoice to:", headerFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock(" ", headerFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock("Contoso LLC", contentFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock("1000 Summer Road", contentFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock("London", contentFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock("1A2 3B4", contentFont)); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock("United Kingdom", contentFont)); buyerInfo.Paragraphs.Add(" "); PDFFormattedTextBlock labelVAT = new PDFFormattedTextBlock("Your VAT/Tax number: ", labelFont); PDFFormattedTextBlock vat = new PDFFormattedTextBlock("GB1234567890", contentFont); buyerInfo.Paragraphs.Add(labelVAT, vat); buyerInfo.Paragraphs.Add(new PDFFormattedTextBlock(" ", headerFont)); PDFFlowTextContent buyerInfoText = new PDFFlowTextContent(buyerInfo); return(buyerInfoText); }
private static PDFFlowContent BuildSellerSection(PDFAnsiTrueTypeFont verdana, PDFAnsiTrueTypeFont verdanaBold) { PDFAnsiTrueTypeFont labelFont = new PDFAnsiTrueTypeFont(verdanaBold); labelFont.Size = 12; PDFAnsiTrueTypeFont contentFont = new PDFAnsiTrueTypeFont(verdana); contentFont.Size = 12; PDFFormattedContent sellerInfo = new PDFFormattedContent(); sellerInfo.Paragraphs.Add(new PDFFormattedTextBlock("DemoCompany LLC", contentFont)); sellerInfo.Paragraphs.Add(new PDFFormattedTextBlock("3000 Alandala Road", contentFont)); sellerInfo.Paragraphs.Add(new PDFFormattedTextBlock("Beverly Hills", contentFont)); sellerInfo.Paragraphs.Add(new PDFFormattedTextBlock("CA 90210", contentFont)); sellerInfo.Paragraphs.Add(new PDFFormattedTextBlock("United States", contentFont)); sellerInfo.Paragraphs.Add(" "); PDFFormattedTextBlock labelPhone = new PDFFormattedTextBlock("Phone: ", labelFont); PDFFormattedTextBlock phone = new PDFFormattedTextBlock("+1-555-123-4567", contentFont); sellerInfo.Paragraphs.Add(labelPhone, phone); PDFFormattedTextBlock labelFax = new PDFFormattedTextBlock("Fax: ", labelFont); PDFFormattedTextBlock fax = new PDFFormattedTextBlock("+1-555-456-7890", contentFont); sellerInfo.Paragraphs.Add(labelFax, fax); PDFFormattedTextBlock labelEmail = new PDFFormattedTextBlock("Email: ", labelFont); PDFFormattedTextBlock email = new PDFFormattedTextBlock("*****@*****.**", contentFont); email.TextColor = new PDFBrush(PDFRgbColor.Blue); email.Action = new PDFUriAction("mailto:[email protected]"); sellerInfo.Paragraphs.Add(labelEmail, email); PDFFormattedTextBlock labelWeb = new PDFFormattedTextBlock("Web: ", labelFont); PDFFormattedTextBlock web = new PDFFormattedTextBlock("www.o2sol.com", contentFont); web.TextColor = new PDFBrush(PDFRgbColor.Blue); web.Action = new PDFUriAction("http://www.o2sol.com"); sellerInfo.Paragraphs.Add(labelWeb, web); for (int i = 0; i < sellerInfo.Paragraphs.Count; i++) { sellerInfo.Paragraphs[i].HorizontalAlign = PDFStringHorizontalAlign.Right; } PDFFlowTextContent sellerInfoText = new PDFFlowTextContent(sellerInfo); return(sellerInfoText); }
private static void FormattedContent(PDFFixedDocument document, PDFStructureElement seParent, PDFAnsiTrueTypeFont font) { string text1 = "Morbi pulvinar eros sit amet diam lacinia, ut feugiat ligula bibendum. Suspendisse ultrices cursus condimentum. " + "Pellentesque semper iaculis luctus. Sed ac maximus urna. Aliquam erat volutpat. "; string text2 = "Vivamus vel sollicitudin dui. Aenean efficitur " + "fringilla dui, at varius lacus luctus ac. Quisque tellus dui, lacinia non lectus nec, semper faucibus erat."; PDFAnsiTrueTypeFont headingFont = new PDFAnsiTrueTypeFont(font, 16); PDFAnsiTrueTypeFont textFont = new PDFAnsiTrueTypeFont(font, 10); PDFBrush blackBrush = new PDFBrush(PDFRgbColor.Black); PDFPen blackPen = new PDFPen(PDFRgbColor.Black, 1); PDFPage page = document.Pages.Add(); page.TabOrder = PDFPageTabOrder.Structure; PDFStructureElement seSection = new PDFStructureElement(PDFStandardStructureTypes.Section); seSection.Title = "Formatted content"; seParent.AppendChild(seSection); PDFStructureElement seHeading = new PDFStructureElement(PDFStandardStructureTypes.Heading); seSection.AppendChild(seHeading); page.Graphics.BeginStructureElement(seHeading); page.Graphics.DrawString("Another heading", headingFont, blackBrush, 30, 50); page.Graphics.EndStructureElement(); PDFFormattedContent fc = new PDFFormattedContent(); PDFFormattedParagraph paragraph1 = new PDFFormattedParagraph(text1, textFont); paragraph1.LineSpacing = 1.2; paragraph1.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph1.StructureElement = new PDFStructureElement(PDFStandardStructureTypes.Paragraph); seSection.AppendChild(paragraph1.StructureElement); fc.Paragraphs.Add(paragraph1); PDFFormattedTextBlock block1 = new PDFFormattedTextBlock("Sample paragraph with a link.\r\n", textFont); block1.StructureElement = new PDFStructureElement(PDFStandardStructureTypes.Span); PDFFormattedTextBlock block2 = new PDFFormattedTextBlock("http://www.o2sol.com/\r\n", textFont); block2.TextColor = new PDFBrush(PDFRgbColor.Blue); block2.Action = new PDFUriAction("http://www.o2sol.com/"); block2.StructureElement = new PDFStructureElement(PDFStandardStructureTypes.Link); PDFFormattedTextBlock block3 = new PDFFormattedTextBlock("http://www.pdf4net.com/", textFont); block3.TextColor = new PDFBrush(PDFRgbColor.Blue); block3.Action = new PDFUriAction("http://www.pdf4net.com/"); block3.StructureElement = new PDFStructureElement(PDFStandardStructureTypes.Link); PDFFormattedParagraph paragraph2 = new PDFFormattedParagraph(block1, block2, block3); paragraph2.LineSpacing = 1.2; paragraph2.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph2.StructureElement = new PDFStructureElement(PDFStandardStructureTypes.Paragraph); // Do not mark the paragraph in the content stream, instead its blocks will be marked. paragraph2.StructureElement.GenerateMarkedContentSequence = false; paragraph2.StructureElement.AppendChild(block1.StructureElement); paragraph2.StructureElement.AppendChild(block2.StructureElement); paragraph2.StructureElement.AppendChild(block3.StructureElement); seSection.AppendChild(paragraph2.StructureElement); fc.Paragraphs.Add(paragraph2); PDFFormattedParagraph paragraph3 = new PDFFormattedParagraph(text2, textFont); paragraph3.LineSpacing = 1.2; paragraph3.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph3.StructureElement = new PDFStructureElement(PDFStandardStructureTypes.Paragraph); seSection.AppendChild(paragraph3.StructureElement); fc.Paragraphs.Add(paragraph3); page.Graphics.DrawFormattedContent(fc, 30, 70, 550, 0); }
/// <summary> /// Main method for running the sample. /// </summary> public static SampleOutputInfo[] Run() { string pdf4netText = "PDF4NET"; string paragraph1Block2Text = " library is a .NET/Xamarin library for cross-platform PDF development. Code written for "; string paragraph1Block4Text = " can be compiled on all supported platforms without changes. The library features a " + "wide range of capabilities, for both beginers and advanced PDF developers."; string paragraph2Block1Text = "The development style is based on fixed document model, where each page is created as needed " + "and content is placed at fixed position using a grid based layout.\r\n" + "This gives you access to all PDF features, whether you want to create a simple file " + "or you want to create a transparency knockout group at COS level, and lets you build more complex models on top of the library."; string paragraph3Block2Text = " has been developed entirely in C# and it is 100% managed code."; string paragraph4Block1Text = "With "; string paragraph4Block3Text = " you can port your PDF application logic to other platforms with zero effort which means faster time to market."; string paragraph5Block1Text = "Simple licensing per developer with royalty free distribution helps you keep your costs under control."; string paragraph6Block1Text = "SUPPORTED PLATFORMS"; string paragraph7Block1Text = "NET 2.0 to .NET 4.5"; string paragraph8Block1Text = "Windows Forms"; string paragraph9Block1Text = "ASP.NET Webforms and MVC"; string paragraph10Block1Text = "Console applications"; string paragraph11Block1Text = "Windows services"; string paragraph12Block1Text = "Mono"; string paragraph13Block1Text = "WPF 4.0 & 4.5"; string paragraph14Block1Text = "Silverlight 4 & 5"; string paragraph15Block1Text = "WinRT (Windows Store applications)"; string paragraph16Block1Text = "Windows Phone 7 & 8"; string paragraph17Block1Text = "Xamarin.iOS"; string paragraph18Block1Text = "Xamarin.Android"; PDFStandardFont textFont = new PDFStandardFont(PDFStandardFontFace.Helvetica, 10); PDFFormattedTextBlock pdf4netLinkBlock = new PDFFormattedTextBlock(pdf4netText); pdf4netLinkBlock.Font = new PDFStandardFont(PDFStandardFontFace.HelveticaBold, 10); pdf4netLinkBlock.Font.Underline = true; pdf4netLinkBlock.TextColor = new PDFBrush(PDFRgbColor.Blue); pdf4netLinkBlock.Action = new PDFUriAction("http://www.o2sol.com/"); PDFFormattedParagraph paragraph1 = new PDFFormattedParagraph(); paragraph1.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph1.LineSpacing = 1.2; paragraph1.SpacingAfter = 3; paragraph1.FirstLineIndent = 10; paragraph1.HorizontalAlign = PDFStringHorizontalAlign.Justified; paragraph1.Blocks.Add(pdf4netLinkBlock); paragraph1.Blocks.Add(new PDFFormattedTextBlock(paragraph1Block2Text, textFont)); paragraph1.Blocks.Add(pdf4netLinkBlock); paragraph1.Blocks.Add(new PDFFormattedTextBlock(paragraph1Block4Text, textFont)); PDFFormattedParagraph paragraph2 = new PDFFormattedParagraph(); paragraph2.SpacingAfter = 3; paragraph2.FirstLineIndent = 10; paragraph2.HorizontalAlign = PDFStringHorizontalAlign.Justified; paragraph2.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph2.LineSpacing = 1.2; paragraph2.Blocks.Add(new PDFFormattedTextBlock(paragraph2Block1Text, textFont)); PDFFormattedParagraph paragraph3 = new PDFFormattedParagraph(); paragraph3.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph3.LineSpacing = 1.2; paragraph3.SpacingAfter = 3; paragraph3.FirstLineIndent = 10; paragraph3.HorizontalAlign = PDFStringHorizontalAlign.Justified; paragraph3.Blocks.Add(pdf4netLinkBlock); paragraph3.Blocks.Add(new PDFFormattedTextBlock(paragraph3Block2Text, textFont)); PDFFormattedParagraph paragraph4 = new PDFFormattedParagraph(); paragraph4.LineSpacingMode = PDFFormattedParagraphLineSpacing.Multiple; paragraph4.LineSpacing = 1.2; paragraph4.SpacingAfter = 3; paragraph4.FirstLineIndent = 10; paragraph4.HorizontalAlign = PDFStringHorizontalAlign.Justified; paragraph4.Blocks.Add(new PDFFormattedTextBlock(paragraph4Block1Text, textFont)); paragraph4.Blocks.Add(pdf4netLinkBlock); paragraph4.Blocks.Add(new PDFFormattedTextBlock(paragraph4Block3Text, textFont)); PDFFormattedParagraph paragraph5 = new PDFFormattedParagraph(); paragraph5.FirstLineIndent = 10; paragraph5.HorizontalAlign = PDFStringHorizontalAlign.Justified; paragraph5.Blocks.Add(new PDFFormattedTextBlock(paragraph5Block1Text, textFont)); PDFFormattedParagraph paragraph6 = new PDFFormattedParagraph(); paragraph6.SpacingBefore = 10; paragraph6.Blocks.Add(new PDFFormattedTextBlock(paragraph6Block1Text, textFont)); PDFFormattedTextBlock bulletBlock = new PDFFormattedTextBlock("\x76 ", new PDFStandardFont(PDFStandardFontFace.ZapfDingbats, 10)); PDFFormattedParagraph paragraph7 = new PDFFormattedParagraph(); paragraph7.SpacingBefore = 3; paragraph7.Bullet = bulletBlock; paragraph7.LeftIndentation = 10; paragraph7.Blocks.Add(new PDFFormattedTextBlock(paragraph7Block1Text, textFont)); PDFFormattedParagraph paragraph8 = new PDFFormattedParagraph(); paragraph8.SpacingBefore = 3; paragraph8.Bullet = bulletBlock; paragraph8.LeftIndentation = 10; paragraph8.Blocks.Add(new PDFFormattedTextBlock(paragraph8Block1Text, textFont)); PDFFormattedParagraph paragraph9 = new PDFFormattedParagraph(); paragraph9.SpacingBefore = 3; paragraph9.Bullet = bulletBlock; paragraph9.LeftIndentation = 10; paragraph9.Blocks.Add(new PDFFormattedTextBlock(paragraph9Block1Text, textFont)); PDFFormattedParagraph paragraph10 = new PDFFormattedParagraph(); paragraph10.SpacingBefore = 3; paragraph10.Bullet = bulletBlock; paragraph10.LeftIndentation = 10; paragraph10.Blocks.Add(new PDFFormattedTextBlock(paragraph10Block1Text, textFont)); PDFFormattedParagraph paragraph11 = new PDFFormattedParagraph(); paragraph11.SpacingBefore = 3; paragraph11.Bullet = bulletBlock; paragraph11.LeftIndentation = 10; paragraph11.Blocks.Add(new PDFFormattedTextBlock(paragraph11Block1Text, textFont)); PDFFormattedParagraph paragraph12 = new PDFFormattedParagraph(); paragraph12.SpacingBefore = 3; paragraph12.Bullet = bulletBlock; paragraph12.LeftIndentation = 10; paragraph12.Blocks.Add(new PDFFormattedTextBlock(paragraph12Block1Text, textFont)); PDFFormattedParagraph paragraph13 = new PDFFormattedParagraph(); paragraph13.SpacingBefore = 3; paragraph13.Bullet = bulletBlock; paragraph13.LeftIndentation = 10; paragraph13.Blocks.Add(new PDFFormattedTextBlock(paragraph13Block1Text, textFont)); PDFFormattedParagraph paragraph14 = new PDFFormattedParagraph(); paragraph14.SpacingBefore = 3; paragraph14.Bullet = bulletBlock; paragraph14.LeftIndentation = 10; paragraph14.Blocks.Add(new PDFFormattedTextBlock(paragraph14Block1Text, textFont)); PDFFormattedParagraph paragraph15 = new PDFFormattedParagraph(); paragraph15.SpacingBefore = 3; paragraph15.Bullet = bulletBlock; paragraph15.LeftIndentation = 10; paragraph15.Blocks.Add(new PDFFormattedTextBlock(paragraph15Block1Text, textFont)); PDFFormattedParagraph paragraph16 = new PDFFormattedParagraph(); paragraph16.SpacingBefore = 3; paragraph16.Bullet = bulletBlock; paragraph16.LeftIndentation = 10; paragraph16.Blocks.Add(new PDFFormattedTextBlock(paragraph16Block1Text, textFont)); PDFFormattedParagraph paragraph17 = new PDFFormattedParagraph(); paragraph17.SpacingBefore = 3; paragraph17.Bullet = bulletBlock; paragraph17.LeftIndentation = 10; paragraph17.Blocks.Add(new PDFFormattedTextBlock(paragraph17Block1Text, textFont)); PDFFormattedParagraph paragraph18 = new PDFFormattedParagraph(); paragraph18.SpacingBefore = 3; paragraph18.Bullet = bulletBlock; paragraph18.LeftIndentation = 10; paragraph18.Blocks.Add(new PDFFormattedTextBlock(paragraph18Block1Text, textFont)); PDFFormattedContent formattedContent = new PDFFormattedContent(); formattedContent.Paragraphs.Add(paragraph1); formattedContent.Paragraphs.Add(paragraph2); formattedContent.Paragraphs.Add(paragraph3); formattedContent.Paragraphs.Add(paragraph4); formattedContent.Paragraphs.Add(paragraph5); formattedContent.Paragraphs.Add(paragraph6); formattedContent.Paragraphs.Add(paragraph7); formattedContent.Paragraphs.Add(paragraph8); formattedContent.Paragraphs.Add(paragraph9); formattedContent.Paragraphs.Add(paragraph10); formattedContent.Paragraphs.Add(paragraph11); formattedContent.Paragraphs.Add(paragraph12); formattedContent.Paragraphs.Add(paragraph13); formattedContent.Paragraphs.Add(paragraph14); formattedContent.Paragraphs.Add(paragraph15); formattedContent.Paragraphs.Add(paragraph16); formattedContent.Paragraphs.Add(paragraph17); formattedContent.Paragraphs.Add(paragraph18); PDFFixedDocument document = new PDFFixedDocument(); PDFPage page = document.Pages.Add(); page.Canvas.DrawFormattedContent(formattedContent, 50, 50, 500, 700); page.Canvas.CompressAndClose(); SampleOutputInfo[] output = new SampleOutputInfo[] { new SampleOutputInfo(document, "formattedcontent.pdf") }; return(output); }