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; } } }