node-canvas-lambda
node-canvas-lambda copied to clipboard
Missing fonts in lambda layer
Hi, I am using the prebuilt layer that was provided. After exporting the canvas on the lambda all text is shown with squares, locally it works fine. Seems like the lambda OS is missing fonts. did anyone encounter this ?
code example:
ctx.font = '30px Impact'; ctx.rotate(.1); ctx.fillText("Awesome!", 50, 100); canvas.toDataURL();
output:
@eranmit99 I added a couple more libraries to the layer (libfontconfig.so.1, libpixman-1.so.0). Can you pull the latest and try again?
Did u put it in node 10 layer - I don't see any changes ..
Hmm. Sorry, I don't have time to look into this now but you try compiling it yourself? Just fire up Docker and follow the instructions at the end of the README. Let me know how it goes.
OK tnx
@eranmit99 I would guess the remote deployment doesn't have any fonts or fontconfig loaded. I just ran into this problem and fixed it by calling packaging a font file in my deployment and calling registerFont
from canvas
with the path of the font like this (replace path and name with your own):
registerFont('./static/fonts/Roboto.ttf', { family: 'Roboto' })
Can't seem to suppress #2 (or use that config to load the font file instead of calling registerFont
, but it doesn't throw an error so it's not a huge deal.
@jwerre Will running the updated dockerfile and manually compiling / deploying to lambda layer on its own fix the errors with lambda not having a fontconfig?