Sorry for the confusing hint. My fault. Even if you use JPEG, it still adds a transparency info for watermarking and converts the image to a gzipped sequence of pixel colors (which can result the image data become huge if the image dimensions are big).

Would it be a solution for you to define page background image instead of a watermark? There is setPageBackgroundImageUrl() API call for that.