Xojo Developer Conference
25/27th April 2018 in Denver.
MBS Xojo Conference
6/7th September 2018 in Munich, Germany.

DynaPDF Manual - Page 171

Previous Page 170   Index   Next Page 172

Function Reference
Page 171 of 750
PDF/A 3b: Embedded files must be associated with a PDF object. See AssociateEmbFile() for
further information.
It is strongly recommended to set the import flag if2UseProxy with SetImportFlags2() to reduce
the memory usage when importing PDF files.
Since DynaPDF must rebuild all content streams of the PDF file the flag coFlushPages can also
be set to reduce the memory usage during conversion. This flag can be set if a PDF file is larger
than 5 or 10 MB for example. For small PDF files the flag should be absent.
If the flag coFlushPages was set then a few objects must be written as indirect references. If you
want a perfectly organized PDF file then import the resuling PDF file again, set the PDF version
to pvPDFA_2b or 3b and save the file. The PDF version must be set because DynaPDF cannot
identify PDF/A files automatically during import since the version is stored in the global XMP
The only difference between PDF/A 3b and ZUGFeRD is that the file must constain an embedded
XML invoice. The file name of this embedded file must be ZUGFeRD-invoice.xml. If this file cannot
be found then a fatal error will be raised and no PDF file will be created.
The embedded file must be associated with the Catalog object and the relationship must be set to
Alternate. If the file was found then the remaining settings will be applied if not already present.
General requirements:
When importing PDF files or pages, the flag ifPrepareForPDFA must be set with
Fonts must be embedded.
Images must not contain an alpha channel (PDF/A 1b only).
The flag gfUseImageColorSpace should be set when inserting images. This flag makes sure
that embedded ICC profiles will be considered. See SetGStateFlags() for further information.
PDF/A 1a files are tagged PDF files. That means the entire PDF file must be tagged and the
file must be created in the logical reading order. CheckConformance() does not validate the
structure tree and it does not check whether untagged elements are used on a page. See
CreateStructureTree(), OpenTag(), and so on for further information.
PDF/A files require an Ouptut Intent. The output intent represents the destination color space
for which the file was created. The output intent must be added after CheckConformance()
was executed. The required ICC profile must be attached depending on the return value of
the function (see Return Values beow).
With CheckConformance() you can check whether prohibited features were used. Once the right
settings are found, it is normally no longer required to call this function when creating new PDF

Previous topic: PDF/A 2b or 3b

Next topic: Summay