2010-11-04 59 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一起去。

相关问题