2010-11-04 3 views
1

Следующий код очень хорош для размещения одной страницы в формате pdf. Он не работает для последующих страниц. Если поток является существующим файлом PDF, изображение заменяется. Как я могу заставить NewPage() создать новую страницу и добавить изображение в конце.Добавить изображение в EXISTING pdf с помощью itextsharp

 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 лично.

Смежные вопросы