Hi,
This is because the bold variant of the Calibri Light font is being synthesized. When a font variant can be found on the system, the corresponding font file for that font will be used. However if a font variaint is not found, it must be synthesized on the fly. This would result in the drawing instructions for each character being copied into each page, which can increase the processing time and file size exponentially.
For text that uses an existing font, the pseudo code in the pdf page would be:
Code:
use font "Calibri Light"
draw "hello there"
The font file which is embedded in the PDF would contains detailed drawing instructions for each characther. This results in signficiant saving when you have repeating characters. For example, in "hello there", "e" occurs 3 times and "l" occurs 2 times, the drawing instructions for letter "e" and "l" are only stored once in the font file.
However for synthesized font variant, it must copy the entire drawing instructions for each letters. So a simple
Would become something like this:
Code:
full drawing instructions for letter "h"
full drawing instructions for letter "e"
full drawing instructions for letter "l"
full drawing instructions for letter "l"
full drawing instructions for letter "o"
space
full drawing instructions for letter "t"
full drawing instructions for letter "h"
full drawing instructions for letter "e"
full drawing instructions for letter "r"
full drawing instructions for letter "e"
Each letter would contains a lot of drawing instructions. The synthesize process works by modifing the arguments for these instructions. For example, one of the instructions to draw letter "h" would be a line instruction to draw the "|" part, synthesize process would increase the line width of this drawing instruction to produce a heavier "|" for the letter "h".
This process produce the best text quality but unfortunately it also produce huge files. Our old version uses offset method to synthesize bold effect and it produces much smaller file. The pseudo code for that process is something like this:
Code:
use font "Calibri Light"
draw "hello there"
offset 1, 1
draw "hello there"
This produces much smaller file however the quality of the result text is not acceptable, especially for printing purpose.
Unfortunately the only way to resolve this issue is to make sure the corresponding font variant is installed on the system (or loaded with @fontface CSS directive).
Thanks