- Code: Select all
public static PdfDocument stampText(PdfDocument pdfFile, string text, float size, TextPosition position, SizeF offsets, float rotateDegrees = 0f, string customFont = null)
{
Font font = null;
if (customFont != null)
font = getCustomFont(customFont, size);
if (font == null && customFont != null)
{
font = new Font(customFont, size);
//If the font doesn't exist, font.Name won't match customFont
if (!font.Name.Equals(customFont, StringComparison.CurrentCultureIgnoreCase))
font = null;
}
if (font == null)
font = new Font("Arial", size, FontStyle.Regular, GraphicsUnit.Point);
PdfTrueTypeFont ttFont = new PdfTrueTypeFont(font);
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
SizeF stringSize = ttFont.MeasureString(text);
int numPages = pdfFile.Pages.Count;
for (int pageCount = 0; pageCount < numPages; pageCount++)
{
PdfPageBase page = pdfFile.Pages[pageCount];
PdfGraphicsState state = page.Canvas.Save();
PointF docPosition = textPosition(position, offsets, page.Size, stringSize);
page.Canvas.TranslateTransform(docPosition.X, docPosition.Y);
page.Canvas.RotateTransform(rotateDegrees);
page.Canvas.DrawString(text, ttFont, brush, 0, 0);
page.Canvas.Restore(state);
}
ttFont.Dispose();
font.Dispose();
return pdfFile;
}