當我們使用下面的代碼時,它只添加一個圖像。是否有其他選擇在每個頁面上添加圖像&文字?使用itextsharp在pdf文件的每個頁面的標題中添加帶有文本的圖像
private void AddHeader(string filephysicalpath,string nfile) byte [] bytes = System.IO.File.ReadAllBytes(filephysicalpath); String path = ConfigurationManager.AppSettings [「Documentheader」]。ToString()+ Session [「headerImg」]; Stream inputImageStream = new FileStream(path,FileMode.Open,FileAccess.Read,FileShare.Read);
Font blackFont = FontFactory.GetFont("Arial", 12, Font.BOLD, BaseColor.BLACK);
using (MemoryStream stream = new MemoryStream())
{
PdfReader reader = new PdfReader(bytes);
using (PdfStamper stamper = new PdfStamper(reader, stream))
{
int pages = reader.NumberOfPages;
for (int i = 1; i <= pages; i++)
{
string footer = Convert.ToString(Session["Footer"]);
if (Session["Footer"] != null)
{
// Phrase ft = new Phrase(footer, blackFont);
float marginLR = 36;
float marginB = 2;
float footerHeight = 10;
Rectangle pagesize = reader.GetCropBox(i);
if (pagesize == null)
{
pagesize = reader.GetPageSize(i);
}
Rectangle rect = new Rectangle(
pagesize.Left + marginLR, pagesize.Top + marginB,
pagesize.Right - marginLR, pagesize.Top + marginB + footerHeight
);
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream);
image.SetAbsolutePosition(rect.Left, rect.Top - image.ScaledHeight);
var pdfContentByte = stamper.GetOverContent(1);
pdfContentByte.AddImage(image);
inputImageStream.Seek(0L, SeekOrigin.Begin);
// ct.AddElement(new PdfPTableHeader (image));
}
}
}
reader.Close();
bytes = stream.ToArray();
}
System.IO.File.WriteAllBytes(filephysicalpath, bytes);
}
我想改變標題圖像的高度和寬度。是否有任何解決方案 –
是的,iText'Image'類中有許多方法可以按某種因子進行縮放或適合某個目標尺寸。 – mkl