Why is iText embedding a font even when I specify not to embed?
I am using Noto fonts to create a PDF and evaluating embedding versus not embedding. This is my code:
FontFactory.register("c:/temp/fonts/NotoSansCJKsc-Regular.otf", "my_nato_font"); Font myBoldFont = FontFactory.getFont("my_nato_font", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
However once I go with option:
FontFactory.register("c:/temp/fonts/NotoSansCJKsc-Regular.otf", "my_nato_font"); Font myBoldFont = FontFactory.getFont("my_nato_font");
My questions
- Why does NOT_EMBEDDED option still embed the font ?
- Since Noto fonts are open sourced by google and supported by adobe (see Introducing Source Hans), I would assume that end user should be able to view the documents even with out the need to embed them. Is my understanding wrong?
Posted on StackOverflow on Mar 26, 2015 by vsingh
You are using Identity-H. In that case, the font shall be embedded. If the embedded
parameter wouldn't be ignored, iText would be creating a PDF that is in violation with ISO-32000-1:
Section 9.7.5.2:
The Identity-H and Identity-V CMaps shall not be used with a non-embedded font.
By ignoring your NOT_EMBEDDED
setting, iText is protecting you from creating a PDF that isn't correct.
As for your second example: you are getting the font from the font factory using the default encoding. This encoding doesn't support Chinese characters.