Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.0.18
-
None
-
None
Description
The font directory finder is hard coded based on the operating system and is not directly extensible. Instead, if I understand correctly, the fonts have to be explicitly declared in a PDFBox_External_Fonts.properties file.
AWS Lambda includes only minimal fonts in its linux distribution. For some documents this is too limiting, so on our EC2 instances we install msttcorefonts, ttf-aenigma, and fonts-tuffy. These go into /usr/share/fonts which the UnixFontDirFinder inspects.
AWS Lambda will unzip the distribution into /var/task, will unzip layers into /opt only allows tasks to otherwise write to /tmp. The common recommendation for fonts is to include them in the lambda, reference them at /var/task/fonts, and set FONTCONFIG_PATH to that path for headless tasks like Chrome's print-to-pdf.
Since PdfBox does not use font-config this solution does not work. Ideally it would be nice if one could specify a custom FontDirFinder or add custom directories (such as by a system property if not API). Alternatively, PdfBox could include reasonable default locations if the environmental variable LAMBDA_TASK_ROOT is set.