2014-04-14 109 views
0
public class itsEventsHandler : PdfPageEventHelper 
     { 
      PdfTemplate total; 
      BaseFont helv; 


      public override void OnEndPage(PdfWriter writer, Document document) 
      { 

iTextSharp.text.Image JPG = iTextSharp.text.Image.GetInstance("C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg"); 
      JPG.ScalePercent(35f); 
      JPG.SetAbsolutePosition(130f, 240f); 


      iTextSharp.text.Image imgfoot = JPG; 
       //Header Image 
       iTextSharp.text.Image imghead = iTextSharp.text.Image.GetInstance("C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg"); 

       imgfoot.SetAbsolutePosition(0, 0); 
       imghead.SetAbsolutePosition(0, 0); 
       imgfoot.ScaleAbsolute(826, 1100); 
       PdfContentByte cbhead = writer.DirectContent; 
       PdfTemplate tp = cbhead.CreateTemplate(2480, 370); // units are in pixels but I'm not sure if thats the correct units 
       tp.AddImage(imghead); 

       PdfContentByte cbfoot = writer.DirectContent; 
       PdfTemplate tpl = cbfoot.CreateTemplate(2480, 664); 
       tpl.AddImage(imgfoot); 
       cbhead.AddTemplate(tp, 0, 715); 

       helv = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); 

       /*PdfContentByte cb = writer.DirectContent; 
       cbfoot.SaveState(); 
       document.SetMargins(35, 35, 100, 82); 
       cb.RestoreState();*/ 

       //document.NewPage(); 
       base.OnStartPage(writer, document); 
      } 

      public override void OnOpenDocument(PdfWriter writer, Document document) 
      { 
       total = writer.DirectContent.CreateTemplate(100, 100); 
       total.BoundingBox = new iTextSharp.text.Rectangle(-20, -20, 100, 100); 
       helv = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); 
      } 
     } 

創建標題圖像的代碼;但圖像看起來太大,嘗試使用imgfoot.ScaleAbsolute(826,1100);但劑量工作結果圖像顯示half.Please任何人都幫我解決。 ................................................. ..............................................如何使用itextsharp減小pdf的頁眉圖像大小

回答

1

假設您正在討論imgHead,那麼您將創建一個寬度爲826個用戶單位,高度爲1100個用戶單位的圖像。然後,您將此圖像添加到格式爲XObject的位置(0, 0),寬度爲2480個用戶單位(足夠了),高度爲370個用戶單位(這對於1100個用戶單位的圖像高度不足)。

你說圖像只顯示一半。爲了正確:你已經將圖像剪成33.6%的高度(370/1100)。更改Form XObject tp的高度值,以便圖像適合並解決了問題。

另外:用戶單位不是像素!默認情況下,1個用戶單位對應1個點。