Search code examples
xsltpdfmimexsl-foapache-fop

Use XSL:FO to add attachments to PDF


After resolving inline images with help from SO, I need to sort out inline attachments. PDF can contain attachments and I found:fo:declarations - pdf:embedded-file but again it pointed to an external file. How can I attach a file that is part of a MIME message (most likely BASe64)?


Solution

  • In the latest FOP builds, you can use the same syntax for pdf:embedded-file as for fo:external-graphic and directly append the base64 data:

    <fo:declarations>
      <pdf:embedded-file filename="myfile.pdf" src="data:application/pdf;base64,<DATA>"/>
    </fo:declarations>
    ...
    <fo:basic-link external-destination="url(embedded-file:myfile.pdf)">Embedded PDF</fo:basic-link>