DynaPDF Manual - Page 192
Previous Page 191 Index Next Page 193
Page 192 of 821
Type3 font conversion
CheckConformance() is able to convert the 14 PDF standard fonts to Type3 counterparts if no
suitable system font is available (see SetFont/The 14 Standard Fonts for further information).
However, due to issues in Adobe's Acrobat or Reader, and due to the way how Type3 fonts are
defined in PDF, several restrictions must be considered:
• Whereas all other font formats define only the shape of a glyph, Type3 fonts define the
shape and the way how glyphs must be painted, e.g. filled, stroked, or both. If a Type3 font
should be used with different text draw modes, then separate fonts must be created for each
mode, e.g. a font for filled glyphs, one for stroked and one for filled and stroked glyphs.
• It is also not possible to draw stroked Type3 glyphs with arbitrary line widths, dash
patterns, or different style parameters as it is possible with every other font format since the
specs say that all these parameters must be explicitely defined in glyph content streams!
• With exception of Acrobat 8 and 9, Acrobat and Reader use the current fill color instead of
the stroke color to render stroked Type3 glyphs that were defined with the d1 operator. The
only way to avoid this issue is to define the text color in every glyph. This requires again a
seperate font for every color with which the font should be used!
We can assume that it doesn't make sense to create dozens of fonts due to the idiotic definition of
the Type3 font format. This function creates exactly one Type3 counterpart for a standard font with
the graphics state parameters when the font is first used. If the font will be used with another draw
mode later then the function returns immediatly with an error and no PDF file will be produced.
If a stroked version of a font was created then it does not check whether the line cap style, line join
style, line dash pattern or line width will be changed if the font is used with the same text draw
When normalizing PDF files set also the flag if2Normalize with SetImportFlags2(). This flag enables
a few additional checks when importing a PDF file. Note that it is not meaningful to normalize a
PDF file before calling CloseFile() if the file was fully created by DynaPDF beforehand. This would
just waste processing time.
Normalization is a process to make sure that a PDF file is error free and does not cause printing
errors. The function applies almost the very same checks as for PDF/A 2 conversion. Missing glyphs
are reported but do not break processing.
Note that it is in fact not possible to determine whether a glyph is really missing. The function can
only check whether a glyph on index 0 is referenced somewhere or if a font does not contain a
requested glyph and falls back to notdef. Also the latter case can be wanted behaviour.
Previous topic: General requirements when creating PDF/A files:
Next topic: Font embedding, PDF/A 1b: