您正在犯两个主要错误。
- 您正在为每个新页面创建对象的新实例。这将导致PDF膨胀,因为图像字节的添加次数将与页面一样多。请
Image
在onEndPage()
方法之外创建对象,然后重用它。这样,图像字节将仅添加到PDF一次。 - 如文档所述,
document
传递给onEndPage()
方法的参数应被视为只读参数。禁止向其中添加内容。与您使用创建的对象不同new document(PageSize.A4, 36, 36, 154, 54)
。实际上,它是由实例Pdfdocument
内部创建的类的PdfWriter
实例。要添加图片,您需要PdfContentByte
从作家处获得,然后使用来添加图片addImage()
。
阅读文档可以轻松避免此类错误。通过阅读我的《iText in Action》,您可以节省大量时间。



