Pdf加水印导致内存占用过多问题

在linux环境下,对文件增加水印会导致内存占用增加(非jvm内存占用)

    public static void main(String[] args) throws IOException {
        for (int i = 0; i < 50; i++) {
            FileInputStream pdfInput = new FileInputStream("C:\\Users\\hy\\Desktop\\aaa.pdf");
            // Create PdfFileStamp object
            PdfFileStamp fileStamp = new PdfFileStamp();
            // Open Document
            fileStamp.bindPdf(pdfInput);
            //创建图章
            FileInputStream imageInput = new FileInputStream("C:\\Users\\hy\\Desktop\\水印.jpg");
            // Create stamp
            Stamp stamp = new Stamp();
            stamp.setImageSize(500,100);
            stamp.bindImage(imageInput);
            stamp.setOrigin(10, 200);
            stamp.setRotation(45.0F);
            stamp.setBackground(false);
            imageInput.close();
            // Add stamp to PDF file
            fileStamp.addStamp(stamp);

            // Save updated PDF file
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            fileStamp.save(byteArrayOutputStream);
            InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
            byteArrayOutputStream.close();
            pdfInput.close();
            
            stamp.close();
            // Close fileStamp
            fileStamp.close();
            inputStream.close();
        }
    }

image.jpg (66.5 KB)
aaa.pdf (1.1 MB)
水印.png (19.3 KB)

@felix0

您能否尝试在您身边使用 Aspose.PDF for Java 23.8 并让我们知道问题是否仍然存在?

@asad.ali 授权与版本有关系吗?我之前购买的授权可以在Aspose.PDF for Java 23.8中使用吗?

@felix0

您可以在记事本中打开许可证时检查许可证到期日期。如果许可证到期日期晚于 23.8 或 23.9 版本的发布日期,您应该可以使用它。请注意,许可证的有效期为一整年,您可以升级到许可证到期日期之前发布的任何 API 版本。