using PdfSharpCore.Drawing;
using PdfSharpCore.Pdf.Annotations;
public static void Main()
byte[] pdfBytes = GenerateChargebackPdf("2023-11-15", "1234-5678-9012-3456", 123.45m, "55", "Test Reason");
File.WriteAllBytes("chargeback.pdf", pdfBytes);
public static byte[] GenerateChargebackPdf(string chargebackDate, string cardNumber,
decimal amount, string reasonCode, string reasonDescription)
using (var memoryStream = new MemoryStream())
var document = new PdfDocument();
var page = document.AddPage();
var gfx = XGraphics.FromPdfPage(page);
var fontLink = new XFont("Verdana", 11, XFontStyle.Underline);
string linkUrl = "https://www.google.com";
string linkText = "Go to Google";
var size = gfx.MeasureString(linkText, fontLink);
double textX = 40, textY = 40;
gfx.DrawString(linkText, fontLink, XBrushes.Blue, new XPoint(textX, textY + size.Height));
double pageHeight = page.Height;
var pdfRect = new PdfRectangle(
pageHeight - textY - size.Height,
var link = PdfLinkAnnotation.CreateWebLink(pdfRect, linkUrl);
page.Annotations.Add(link);
document.Save(memoryStream, false);
return memoryStream.ToArray();