iText7中链式调用Canvas.close()仍触发“资源泄漏”警告的问题咨询
iText7中链式调用Canvas.close()仍触发“资源泄漏”警告的问题咨询
我最近在参考iText 7的页脚示例来给PDF添加页脚,代码几乎完全照搬官方示例。我定义了一个事件处理器,里面用到了Canvas类,具体代码如下:
@Override public void handleEvent(Event event) { PdfDocumentEvent docEvent = (PdfDocumentEvent) event; PdfDocument pdfDoc = docEvent.getDocument(); PdfPage page = docEvent.getPage(); String footerContent = "My Footer"; Paragraph footerParagraph = new Paragraph(footerContent); PdfCanvas canvas = new PdfCanvas(page.newContentStreamBefore(), page.getResources(), pdfDoc); new Canvas(canvas, new Rectangle(36, 20, page.getPageSize().getWidth() - 72, 50)) .add(footerParagraph) .close(); }
不过我在执行这段代码时,发现new Canvas(canvas, new Rectangle(...))这一行触发了一个资源泄漏警告:
Resource leak: <unassigned Closeable value> is never closed
我明明已经在链式调用里加上了.close()方法,可还是出现这个警告,有点摸不着头脑。
给大家参考下涉及到的类版本信息:
- 引发警告的
Canvas类属于iText 7.2.4版本 PdfCanvas类使用的是iText 7.2.0版本Rectangle类来自iText5的最新版本
备注:内容来源于stack exchange,提问作者gene b.
相关产品推荐
相关产品推荐

