добавить изображение в существующий PDF с помощью itextsharp - PullRequest
1 голос
/ 04 ноября 2010

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

        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();
        }

1 Ответ

0 голосов
/ 29 марта 2011

Вызов doc.NewPage() ничего не делает, когда на текущей странице ничего нет. Есть как минимум 3 варианта:

1) Добавить что-то невидимое на текущей странице. Пустой абзац, некоторое пространство для PdfContentByte, что угодно. 2) Скажите вашему PDF-документу: «Нет, он действительно не пустой, поверьте мне на слово»: PdfDocument.PageEmpty =false; 3) Не бросайте, когда NewPage возвращает false. Это вполне приемлемо в данных обстоятельствах.

Я бы лично пошел с # 3.

...