The temp dir is needed not by PD4ML itself, but by the font subsystem of JVM.

java.awt.Font.createFont() creates java.awt.Font instance from a given byte array, but as a rule (obviously it is platform-dependent) it needs to create a corresponding font file in the temp dir. We cannot control the internal java.awt.Font.createFont() logic, it is only possible to re-define temp dir location with java.io.tmpdir system property.