zhaoterryy / mkdocs-pdf-export-plugin

An MkDocs plugin to export content pages as PDF files
MIT License
312 stars 43 forks source link

Failure to load woff2 fonts on Linux #14

Closed bretif closed 5 years ago

bretif commented 5 years ago

Hello,

I am using mkdocs with material theme. I follow documentation and I think install everything as needed. python -m weasyprint http://weasyprint.org weasyprint.pdf is working properly

$ mkdocs --version
mkdocs, version 1.0.4 from /home/bretif/dev/mkdocs/skinfra-mkdocs/py3/lib/python3.5/site-packages/mkdocs (Python 3.5)

If I try to build my site but I get this error

ERROR: Failed to load font at "file:///home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/MaterialIcons-Regular.woff2"
ERROR: Failed to load font at "file:///home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/FontAwesome.woff2"

However these files exist:

$ ls -l /home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/MaterialIcons-Regular.woff2
-rw-r--r-- 1 bretif psi 44300 sept. 25 11:37 /home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/MaterialIcons-Regular.woff2

$ ls -l /home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/FontAwesome.woff2                                      
-rw-r--r-- 1 bretif psi 77160 sept. 25 11:37 /home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/FontAwesome.woff2

Do you have any clue of what is wrong with my setup.

Regards Bertrand

shauser commented 5 years ago

Can you run it with the verbose option and check whether you get anything else that could help?

bretif commented 5 years ago

I attached full log of run in debug version for only a page. mkdocs-pdf-export-issue14.txt

I get the same error for all pages. No pdf are generated.

Here is extract of the step with the error

INFO: Step 2 - Fetching and parsing CSS - https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono
WARNING: Failed to load local font "Roboto Light"
WARNING: Failed to load local font "Roboto-Light"
WARNING: Failed to load local font "Roboto"
WARNING: Failed to load local font "Roboto Mono"
WARNING: Failed to load local font "RobotoMono-Regular"
INFO: Step 2 - Fetching and parsing CSS - CSS string
INFO: Step 2 - Fetching and parsing CSS - file:///home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/material-icons.css
WARNING: Failed to load local font "Material Icons"
WARNING: Failed to load local font "MaterialIcons-Regular"
ERROR: Failed to load font at "file:///home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/MaterialIcons-Regular.woff2"
INFO: Step 2 - Fetching and parsing CSS - CSS string
INFO: Step 2 - Fetching and parsing CSS - file:///home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/font-awesome.css
ERROR: Failed to load font at "file:///home/bretif/dev/mkdocs/skinfra-mkdocs/site/assets/fonts/specimen/F
[mkdocs-pdf-export-issue14.txt](https://github.com/shauser/mkdocs-pdf-export-plugin/files/2414749/mkdocs-pdf-export-issue14.txt)
ontAwesome.woff2"
shauser commented 5 years ago

While the error message is certainly not very good, this is a missing feature of weasyprint running on Linux:

https://weasyprint.readthedocs.io/en/stable/features.html#fonts

Maybe referencing another font format will solve it?

bretif commented 5 years ago

Thanks for your reply. I understand that under Linux weasyprint can not load woff2 fonts.

The only solution I found is to manually edit

and set ttf font first in the list of format font.

If you have any idea to fix the issue....

zhaoterryy commented 5 years ago

Won't fix - Weasyprint does not support woff2.