[ https://issues.apache.org/jira/browse/PDFBOX-4774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17036562#comment-17036562 ]
Ben Manes commented on PDFBOX-4774: ----------------------------------- I realized a workaround, which is very much a hack, but enough to unblock me. In addition to static locations, {{UnixFontDirFinder}} also searches in a dynamic path: {code:java} System.getProperty("user.home") + "/.fonts" {code} While this goes to a non-writeable generated path, e.g. {{/home/sbx_user1051}}, it can be overwritten because there is no security manager. This lets me set the property because PdfBox initializes, e.g. {code:java} System.setProperty("user.home", System.getenv("LAMBDA_TASK_ROOT")); {code} Then my lambda distribution adds {{src/main/resources/.fonts}} with the extra fonts. This allows for the nicer rendering in {{fixed_page.jpg}}. It is surely a hack and not a proper solution, so this feature would be nice for others going forward. > Add AWS Lambda support to FontFileFinder > ---------------------------------------- > > Key: PDFBOX-4774 > URL: https://issues.apache.org/jira/browse/PDFBOX-4774 > Project: PDFBox > Issue Type: Improvement > Reporter: Ben Manes > Priority: Major > Attachments: fixed_page.jpg, original.pdf, rendered_page.jpg > > > 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. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org