PD4ML v3.12.0 is out. This update of the v3 line fixes rendering issues reported by our users, lowers memory use in long-running servers, and makes PD4ML v3 available from the PD4ML Maven repository.

Rendering

  • The CSS ::before (and :before) pseudo-element with a string content value, including CSS hex escapes such as \e8b8, is rendered in PDF, PDF/A and RTF output instead of being ignored.
  • A page background image given as a Windows file path such as D:/dir/img.jpg or D:\dir\img.jpg is no longer silently ignored, and short background values no longer cause an exception.
  • In PDF/A output, transparent areas of images are rendered white instead of black, so transparent logos and watermark images no longer produce black boxes.
  • In RTF output, list items with several blocks keep their bullet on the first line, and an item following an inline list item gets its own bullet.

Resources

  • The system property pd4ml.fake.browser also applies to resources loaded over https, so images from servers that reject Java’s default User-Agent are no longer dropped.

Memory

  • Image and device objects are no longer held back by finalizers, so memory is released sooner in long-running servers.
  • Less memory when writing large PDF documents: compressed streams no longer allocate a buffer of twice their size, and fewer temporary strings are created.

Distribution

  • PD4ML v3 is published to the PD4ML Maven repository: the trial editions and trial tag libraries are available from https://pd4ml.tech/maven2 (groupId org.zefer.pd4ml.v3, artifacts pd4ml-std-trial, pd4ml-pro-trial, pd4ml-dms-trial, pd4ml-taglib-trial, pd4ml-taglib-jakarta-trial; version 3120 for v3.12.0).