You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 10:54:51