Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.

Java PDF printing spool file size

1 min read

Java Printing Services allows Java to provide printing in programs. JPS allows you to print some types of files directly. PDF is not a supported type so it needs to be printed by another program (like our JPedal PDF library) rendering it. From a coding point of view, this works very well – you add a print( ) method to your Swing components and just paint onto the Graphics2D object (as you would to draw onto the screen). This is converted into a spool file which is then passed to the printer. From a usage point of view, it does however have some issues.

The main problem we have found is that the printing creates some very large spool files. This seems to be partly because the JPS sub-system is hard-coded to render the page to a high-resolution output in 32bit RGB colour with transparency. This needs a lot of memory. In addition, there is no compression on the spool file (whereas Windows programs do appear to compress the file size).

Another factor that contributes to the spool size when rendering PDFs is that embedded fonts cannot be sent to the printer – they need to be turned into Vector graphics and drawn as shapes (which uses much more memory).

A useful workaround for the second issue is to try to print using built-in Java fonts. Many PDF files use a set of Basic fonts (ie Arial, Courier, Helvetica) for which there are acceptable versions built into Java. Printing with these reduces the size of the spool file.

In JPedal we added a mode to support this which is explained in detail on our support website.

Unfortunately, JPS remains one of the weaker areas of Java and I hope Oracle will look to improve it when they take over.



Our software libraries allow you to

Convert PDF to HTML in Java
Convert PDF Forms to HTML5 in Java
Convert PDF Documents to an image in Java
Work with PDF Documents in Java
Read and Write AVIF, HEIC, WEBP and other image formats
Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.