Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-4774

Add AWS Lambda support to FontFileFinder

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.0.18
    • None
    • FontBox
    • 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.

      Attachments

        1. fixed_page.jpg
          159 kB
          Ben Manes
        2. rendered_page.jpg
          163 kB
          Ben Manes
        3. original.pdf
          10 kB
          Ben Manes

        Activity

          People

            Unassigned Unassigned
            ben.manes Ben Manes
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: