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 void CreateIntroPage(PDFFlowDocument document, PDFAnsiTrueTypeFont verdana, PDFAnsiTrueTypeFont verdanaBold)
        {
            PDFFormattedParagraph titleParagraph = new PDFFormattedParagraph("DOCUMENT INTRO PAGE");

            titleParagraph.SpacingBefore = 300;
            (titleParagraph.Blocks[0] as PDFFormattedTextBlock).Font      = new PDFAnsiTrueTypeFont(verdanaBold);
            (titleParagraph.Blocks[0] as PDFFormattedTextBlock).Font.Size = 36;
            titleParagraph.HorizontalAlign = PDFStringHorizontalAlign.Center;
            PDFFormattedParagraph subtitleParagraph = new PDFFormattedParagraph("no headers and footers");

            (subtitleParagraph.Blocks[0] as PDFFormattedTextBlock).Font      = new PDFAnsiTrueTypeFont(verdana);
            (subtitleParagraph.Blocks[0] as PDFFormattedTextBlock).Font.Size = 10;
            subtitleParagraph.HorizontalAlign = PDFStringHorizontalAlign.Center;

            PDFFormattedContent fc = new PDFFormattedContent();

            fc.Paragraphs.Add(titleParagraph);
            fc.Paragraphs.Add(subtitleParagraph);

            document.AddContent(new PDFFlowTextContent(fc));
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        /// <summary>
        /// Main method for running the sample.
        /// </summary>
        public static SampleOutputInfo[] Run()
        {
            PDFStandardFont heading1Font = new PDFStandardFont(PDFStandardFontFace.HelveticaBold, 16);
            PDFStandardFont heading2Font = new PDFStandardFont(heading1Font);

            heading2Font.Size = 14;
            PDFStandardFont heading3Font = new PDFStandardFont(heading1Font);

            heading3Font.Size = 12;

            PDFFlowDocument doc = new PDFFlowDocument();

            // Add an intro page to the document.
            PDFFormattedContent fc = new PDFFormattedContent("DEMO DOCUMENT\r\nwith automatically generated\r\nTable of Contents");

            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font      = new PDFStandardFont(heading1Font);
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font.Size = 24;
            fc.Paragraphs[0].HorizontalAlign = PDFStringHorizontalAlign.Center;
            PDFFlowTextContent ftc = new PDFFlowTextContent(fc);

            doc.AddContent(ftc);
            doc.StartNewPage();

            // Enable/disable the autonumbering of document headings
            bool autoNumber = true;

            // Setup the flow document content.
            // Heading content objects are used for the generation of table of contents.
            fc = new PDFFormattedContent("Chapter One");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading1Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            PDFFlowHeadingContent fhc = new PDFFlowHeadingContent(fc);

            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            PDFFormattedParagraph fp = new PDFFormattedParagraph(text1);

            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Section One");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading2Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 2;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text2);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module One");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text3);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Two");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text4);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Section Two");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading2Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 2;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text5);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Three");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text6);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Four");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text7);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Chapter Two");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading1Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text8);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Section Three");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading2Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 2;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text9);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Five");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text10);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Six");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text1);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Section Four");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading2Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 2;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text2);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Seven");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text3);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            fc = new PDFFormattedContent("Module Eight");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font = heading3Font;
            fc.Paragraphs[0].SpacingBefore = fc.Paragraphs[0].SpacingAfter = 12;
            fhc            = new PDFFlowHeadingContent(fc);
            fhc.Level      = 3;
            fhc.AutoNumber = autoNumber;
            doc.AddContent(fhc);

            fc = new PDFFormattedContent();
            fp = new PDFFormattedParagraph(text4);
            fp.HorizontalAlign = PDFStringHorizontalAlign.Justified;
            fp.FirstLineIndent = 18;
            fc.Paragraphs.Add(fp);
            ftc = new PDFFlowTextContent(fc);
            doc.AddContent(ftc);

            // Setup the document's table of contents.
            PDFFlowDocumentTOCSettings tocSettings = new PDFFlowDocumentTOCSettings();

            // Generate the table of contents as document outline.
            tocSettings.GenerateDocumentOutline = true;
            // Generate the table of contents as a separate page in the document.
            tocSettings.GenerateContentsPage = true;
            tocSettings.ContentsTextFont     = new PDFStandardFont(PDFStandardFontFace.Helvetica, 10);
            tocSettings.ContentsTextColor    = new PDFBrush(PDFRgbColor.Black);
            // Insert the TOC page at position 1 (after the first page of the document).
            tocSettings.ContentsPagePosition = 1;
            // Visually connect the TOC entries with the page numbers using dots
            tocSettings.ContentsEntryFiller = '.';
            // Create a title for the TOC
            fc = new PDFFormattedContent("TABLE OF CONTENTS");
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font      = new PDFStandardFont(heading1Font);
            (fc.Paragraphs[0].Blocks[0] as PDFFormattedTextBlock).Font.Size = 24;
            fc.Paragraphs[0].HorizontalAlign = PDFStringHorizontalAlign.Center;
            fc.Paragraphs[0].SpacingAfter    = 24;
            tocSettings.ContentsTitle        = new PDFFlowTextContent(fc);
            // Indent the entries in the TOC
            if (autoNumber)
            {
                tocSettings.ContentsHeadingIndent = 10;
            }
            doc.GenerateTableOfContents(tocSettings);

            SampleOutputInfo[] output = new SampleOutputInfo[] { new SampleOutputInfo(doc, "tableofcontents.pdf") };
            return(output);
        }
Beispiel #6
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);
        }