以下代码非常擅长将单个页面放入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();
}
答案 0 :(得分:0)
当前页面上没有任何内容时,调用doc.NewPage()
不会执行任何操作。至少有3个选项:
1)添加当前页面不可见的内容。一个空段落,一些白色空间到PdfContentByte,无论如何。
2)告诉你的PDF文件“不,它真的不是空的,接受我的话”:PdfDocument.PageEmpty =false;
3)NewPage
返回false时不要抛出。在这种情况下,这是完全可以接受的。
我会亲自去#3。