DynaPDF Manual - Page 204

Previous Page 203   Index   Next Page 205

Function Reference
Page 204 of 839
Although ist would be technically no problem to create one large PDF file for multiple invoices, this
is not allowed in these standards. A valid ZUGFeRD or Factur-X invoice file can contain one invoice
PDF/A conversion and normalization with enabled font embedding depends strongly on the
availability of fonts. The ability to convert standard fonts to Type3 was mainly added for the font
ZapfDingbats because this font is not available on most systems.
Return values
If the PDF file is compatible to PDF/A 1b the function returns one of the following values:
0 -> The PDF file is fully compatible to PDF/A 1b. Close the file with CloseFile(), finished.
1 -> A RGB ICC profile must be added to the document with AddOutputIntent().
2 -> A CMYK ICC profile must be added to the document with AddOutputIntent().
3 -> A Gray, RGB, or CMYK ICC profile must be added to the document with
AddOutputIntent() or AddOutputIntentEx(). DeviceGray compatible ICC profiles are rarely
available since this is mostly just a gamma table. However, you can use a RGB or CMYK
profile instead (a sRGB profile is preferred due to the smaller size).
< 0 -> A negative return value indicates that an error occurred during conversion to PDF/A.
Note that the function raises always fatal exceptions, there is no PDF file in memory if the
conversion fails.
The return value of the function must not be ignored. If a required ICC profile will not be added to
the file, the resulting PDF file will not be compatible to PDF/A! The PDF file must be closed with
CloseFile(). The usage of CloseFileEx() is prohibited because PDF/A files must not be encrypted.
CheckConformance() can be called after the entire document was fully created. You must not call
the function multiple times on the same document in memory!
Example (C++):
// This example converts an arbitrary PDF file to PDF/A. In order to execute this code with a
// licensed version of DynaPDF, you need also a license of the PDF/A Extension. If you don't have
// such a license then don't set a license key! Otherwise the function would return with the error
// that claims that this feature is not available in your license...
// Warnings and errors are passed to the error callback function. The messages should normally be
// stored in an error log.
SI32 PDF_CALL PDFError(const void* Data, SI32 ErrCode, const char* ErrMessage, SI32 ErrType)
printf("%s\n", ErrMessage);
return 0;
// This function will be called when a non-embedded font was not found on the system.
// DynaPDF uses already an internal mapping table for the most known good matches. However,
// some drivers write invalid font names into the file, e.g. when the PDF file was created
// from a PCL recourse. For such cases you can create your own mapping table or a default

Previous topic: ZUGFeRD, ZUGFeRD 2.0, Factur-X / ZUGFeRD 2.1, XRechnung

Next topic: CheckFieldNames