I used spire.pdf add text watermark to pdf header,but I find I can search my text watermark in result pdf,but I can't see it.I use the code normally in general.but this file is not normal.I wrote a function
public void AddTextToHeader(HeaderFooterTextParams dp, PdfDocument doc)
{
System.Drawing.SizeF pageSize = doc.Pages[0].Size;
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(dp.TextFont, true);
System.Drawing.SizeF sizeF = trueTypeFont.MeasureString(dp.text);
PdfBrush brush = new PdfSolidBrush(dp.BrushColor);
PdfPen pen = new PdfPen(brush, dp.PenWidth);
float x = 0;
float y = 0;
switch (dp.wmp)
{
case WaterMarkPosition.Left:
x = 0 + dp.nDis[0];
y = dp.Distance;
break;
case WaterMarkPosition.Center:
x = (pageSize.Width - sizeF.Width) / 2f + dp.nDis[1];
y = dp.Distance;
break;
case WaterMarkPosition.Right:
x = pageSize.Width - sizeF.Width - dp.nDis[2];
y = dp.Distance;
break;
}
for (int i = 0; i < doc.Pages.Count; i++)
{
doc.Pages[i].Canvas.DrawString(dp.text, trueTypeFont, pen, x, y);
}
}
struct params
public struct HeaderFooterTextParams
{
public string text;
public Font TextFont;
public Color BrushColor;
public WaterMarkPosition wmp;
public float PenWidth;
public float Distance;
public string PicFile;
public bool IsStretch;
public int[] nDis;
public HeaderFooterTextParams(object obj)
{
text = "this is a test";
TextFont = new Font("黑体", 12f);
BrushColor = Color.Red;
wmp = WaterMarkPosition.Left;
PenWidth = 0.5f;
Distance = 0;
PicFile = "";
IsStretch = false;
nDis = new int[3];
}
}
public enum WaterMarkPosition
{
Left,
Center,
Right
}
I use it
public HeaderFooterTextParams headerParams = new HeaderFooterTextParams(null);
headerParams.PenWidth =0.5;
headerParams.Distance =0;
headerParams.text = " I am a watermark";
headerParams.nDis[0] = 0;
headerParams.nDis[1] = 0;
headerParams.nDis[2] = 0;
PdfDocument doc = new PdfDocument("test.pdf");
AddTextToHeader(headerParams ,doc);
doc.SaveToFile("result.pdf");