아래 코드를 사용하면 하나의 이미지 만 추가됩니다. 모든 페이지에 이미지 &을 추가하는 다른 옵션이 있습니까?itextsharp를 사용하여 pdf 파일의 모든 페이지 헤더에 텍스트가있는 이미지 추가
개인 무효 AddHeader (문자열 filephysicalpath 문자열 nfile에) { 바이트 [] 바이트 = System.IO.File.ReadAllBytes (filephysicalpath); String path = ConfigurationManager.AppSettings [ "Documentheader"]. ToString() + Session [ "headerImg"]; 스트림 inputImageStream = 새 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