One way you can compress the size of the PDF is by reducing the image resolution. You can try the following code to compress the PDF in Jasper with Java // Assuming 'pdfDoc' is your existing PDF document object // Create a new ByteArrayOutputStream to store the compressed PDF data ByteArrayOutputStream compressedStream = new ByteArrayOutputStream(); // Get the parameters of the image to adjust its resolution Image image = imgArr; // Assuming 'imgArr' is your Java Image object int width = image.getWidth(null); int height = image.getHeight(null); // Create a new BufferedImage with reduced resolution BufferedImage newImage = new BufferedImage(width / 2, height / 2, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = newImage.createGraphics(); g2d.drawImage(image, 0, 0, width / 2, height / 2, null); g2d.dispose(); // Write the new compressed image to the ByteArrayOutputStream ImageIO.write(newImage, "jpg", compressedStream); // Convert the ByteArrayOutputStream to a byte array byte[] compressedImageBytes = compressedStream.toByteArray(); // Use the compressed image data for your PDF creation process This code reduces the resolution of the image by half, which effectively compresses the image data and hence reduces the overall PDF size. This just an example… test it on your dev environment. Also i found one tool jpeg compressor if you have small quantity of image and want fine compression of your images then you can use above tool. it supports such as JPEG, JPG, PNG, SVG, WEBP, GIF, and Heic.