使用itextsharp将图像附加到EXISTING pdf

时间:2010-11-04 12:57:18

标签: image itextsharp

以下代码非常擅长将单个页面放入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 :(得分:0)

当前页面上没有任何内容时,调用doc.NewPage()不会执行任何操作。至少有3个选项:

1)添加当前页面不可见的内容。一个空段落,一些白色空间到PdfContentByte,无论如何。 2)告诉你的PDF文件“不,它真的不是空的,接受我的话”:PdfDocument.PageEmpty =false; 3)NewPage返回false时不要抛出。在这种情况下,这是完全可以接受的。

我会亲自去#3。