DynaPDF Manual - Page 189
Previous Page 188 Index Next Page 190
Page 189 of 821
possible. The resulting PDF file is easy to read and should not produce any printing error.
Normalization is useful in print workflows to detect potential errors before the file will be printed.
This feature can be used to check imported PDF files or pages. It is not meaningful when creating
new PDF files with DynaPDF.
Note that the flag if2Normalize must be set with SetImportFlags2() when importing external PDF
files. This flag enables additional error checks during import.
Note also that CheckConformance() is no preflight function! It is possible to check whether a PDF
file can be converted to PDF/A but it is not possible to check whether a file is already a valid PDF/A
This is a big difference since a preflight function must apply many additional checks, e.g. if PDF
objects are formatted as described in the PDF/A standard, as well as all other requirements are meet.
Such checks are not required in a converter since the file structure and most objects will be rebuild
when the file is stored. It is not planned to extend the function with preflight capabilities in the near
The function supports a large set of processing options but most of them are only meaningful if
imported PDF files or imported pages should be converted to PDF/A.
CheckConformance() cannot check glyph outlines of simple TrueType fonts because the required
overhead would be too large. However, the function makes sure that outlines will be checked when
CloseFile() is called. Therefore, be aware that CloseFile() can fail also if CheckConformance()
Important callback functions
The callback function OnFontNotFound is not required to check newly created PDF files but it should
be set when converting imported PDF files. As shown in the example code, a default font like Arial
can be loaded whenever a PDF font cannot be found on the system. The function checks whether the
font metrics of the replacement font are compatible with the original PDF font.
The OnReplaceICCProfile callback function is optional too, but mostly required! The callback function
is called whenever a device color space is used and if no corresponding output intent or default ICC
based color space is available. It is also called if an embedded ICC profile must be replaced due to
damages or if an unsupported profile version is used.
The conversion capabilities are very limited if this callback function is not set! If you get an error like
" File uses multiple device color spaces!" then please set this callback function so that ICC profiles
can be loaded if necessary.
Previous topic: ChangeSeparationColor, CheckCollection, CheckConformance
Next topic: General requirements when creating PDF/A files: