SelectPdf for .NET 10 - Pdf Elements Rendering Position - C# / .NET 10 Sample

This sample shows how to create a new PDF document using SelectPdf and add several text elements to it, for each additional element using the finish position of the previous element, to introduce some space between the lines of text.

Sample code · C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using SelectPdf.Universal;

namespace SelectPdf.Samples.Pages
{
    public class PdfElementsPositionsModel : PageModel
    {
        public void OnGet()
        {

        }

        public IActionResult OnPost()
        {
            // create a new pdf document
            PdfDocument doc = new PdfDocument();

            // add a new page to the document
            PdfPage page = doc.AddPage();

            // create a new pdf font
            PdfFont font = doc.Fonts.Add(PdfStandardFont.Helvetica);
            font.Size = 20;

            // define a rendering result object
            PdfRenderingResult result;

            // create a new text element and add it to the page
            // Important: get the rendering result returned by Add() 
            // into the PdfRenderingResult object
            PdfTextElement text = new PdfTextElement(0, 0, "Hello world!", font);
            result = page.Add(text);

            // add 10 more text element, leaving 30pt between the text lines
            for (int i = 1; i <= 10; i++)
            {
                PdfTextElement elem = new PdfTextElement(0,
                    result.PdfPageLastRectangle.Bottom + 30, "Text line " + i, font);
                result = page.Add(elem);
            }

            // save pdf document
            byte[] pdf = doc.Save();

            // close pdf document
            doc.Close();

            // return resulted pdf document
            FileResult fileResult = new FileContentResult(pdf, "application/pdf");
            fileResult.FileDownloadName = "Document.pdf";
            return fileResult;

        }
    }
}