Hi Pierre-Yves,
Nodebox allows you to work with very high precision. But when it exports to SVG or PDF, it rounds all coordinates to two decimal places - to the nearest one hundredth of a pixel. It's a compromise that keeps the file sizes from getting out of hand; your 8 meg PDF would be ten times larger with full precision.
This is normally not a problem. Font paths will come out beautifully as long as the font size is bigger than about 2 (depending on the font and the rendering app).
In this case you have a perfect storm: a huge canvas, a tiny font size, and a font (Amiri) that has an unusually high number of subtle inflection points.
Your solution of scaling up to a higher font size is the normal workaround, but you say doing that would exceed the 14400 limit on canvas size. Can you break your image into multiple pieces and stitch them back together outside Nodebox?
If that's not possible, can you use a less complex font than Amiri? Doing so might buy you just enough resolution to eliminate the bumps. This can also cut the file size in half and make Nodebox less sluggish if you need to render thousands of characters.
I might be able to suggest some other solution if I understood what you are trying to do. Unless you print this file onto a billboard, no one will be able to see the words, let alone subtle ripples along the edges of a few characters.
Is this for an interactive presentation or an animation that involves zooming in until a single letter fills the screen? If so, there might be ways of substituting different font sizes as the user zooms in.
I have run into this problem before, and I wish NodeBox would provide an option of increasing precision on export in special cases like this. But it doesn't and isn't likely to anytime soon. And even if your could export full precision, many PDF or SVG renderers might not handle it properly anyway.
Please let me know if there's anything else I can do to help.
John