3
我們希望在我們發送之前在我們的pdf頂部添加用戶電子郵件&名稱的水印。我已經編寫了這樣的代碼,它工作得很好。我想檢查這是否是這樣做的最佳方式。我們希望水印在pdf的頂部分成兩行。使用iTextSharp.ShowTextAligned()添加水印
,我用「ShowTextAligned()」兩次用不同的「y」坐標來實現。
private MemoryStream StampPdf(string pdfPath, string name, string email)
{
var memoryStream = new MemoryStream();
var reader = new PdfReader(pdfPath);
var pageCount = reader.NumberOfPages;
var stamper = new PdfStamper(reader, memoryStream);
var textAngle = 0;
var fontSize = 14;
var font = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.WINANSI, BaseFont.EMBEDDED);
var watermarkLine1 = "Personal use only for " + name;
var watermarkLine2 = "at " + email;
using (stamper)
{
for (var i = 1; i <= pageCount; i++)
{
var mediaBox = reader.GetPageSize(i);
var overContent = stamper.GetOverContent(i);
overContent.BeginText();
overContent.SetColorFill(BaseColor.RED);
overContent.SetFontAndSize(font, fontSize);
overContent.ShowTextAligned(PdfContentByte.ALIGN_LEFT, watermarkLine1, 10, mediaBox.Top - 20, textAngle);
overContent.ShowTextAligned(PdfContentByte.ALIGN_LEFT, watermarkLine2, 10, mediaBox.Top - 40, textAngle);
overContent.EndText();
}
}
reader.Close();
stamper.Close();
return memoryStream;
}
我想確認兩兩件事:
「是否有可能使用ShowTextAligned()包裹到達行結束文本?」
「ShowTextAligned()是否會返回/換行符?」
感謝,
-Samah
Bruno- 感謝您的回覆! – Samah