2010-11-04 60 views
1

以下代碼非常適合將單個頁面放入pdf中。 它不適用於後續頁面。 如果流是一個現有的PDF文件,圖像被替換。如何讓NewPage()實際創建一個新頁面並在最後添加圖像。使用itextsharp將圖像添加到EXISTING pdf

 using (Stream ms = GetStream()) { 

      Document doc = new Document(PageSize.A4); 
      var writer = PdfWriter.GetInstance(doc, ms); 

      doc.Open(); 
      if (!doc.NewPage()) 
       throw new InvalidOperationException("NewPage failed."); 

      PDFImage jpg = PDFImage.GetInstance(image, ImageFormat.Jpeg); 
      jpg.Alignment = Element.ALIGN_CENTER; 
      jpg.ScaleToFit(PageSize.A4.Width, PageSize.A4.Height); 
      doc.Add(jpg); 

      doc.Close(); 
     } 

回答

0

調用doc.NewPage()在當前頁面沒有任何內容時不執行任何操作。有至少3個選項:

1)添加一些不可見的東西到當前頁面。一個空的段落,一些空白的PdfContentByte,無論如何。 2)告訴你的PDF文件「不,它真的不是空的,拿我的話」:PdfDocument.PageEmpty =false; 3)不要拋出當NewPage返回false。在這種情況下這是完全可以接受的。

我會和#3一起去。

相關問題