Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

DynaPDF.CheckConformance

Converts a PDF file to a specific PDF standard according to the parameter Type.

Component Version macOS Windows Linux Server iOS SDK
DynaPDF 4.4 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "DynaPDF.CheckConformance"; PDF; Type { ; Options } )   More

Parameters

Parameter Description Example Flags
PDF The PDF reference returned from DynaPDF.New. $pdf
Type PDF Version to check.
This can be "PDFA 1b 2005", "PDFA 2b", "PDFA 2u", "PDFA 3b", "PDFA 3u" or "Normalize".

Version 6.0 of DynaPDF supports also: ZUGFeRD Basic, ZUGFeRD Comfort and ZUGFeRD Extended.

Added ZugFerd 2.x constants in v10.5:

ZUGFeRD 2.0:
* ZUGFeRD2 Minimum
* ZUGFeRD2 Basic
* ZUGFeRD2 Basic WL
* ZUGFeRD2 Comfort
* ZUGFeRD2 Extended

Factur-X / ZUGFeRD 2.1:
* FacturX Minimum
* FacturX Basic
* FacturX Basic WL
* FacturX Comfort
* FacturX Extended

Added "PDFA/4", "PDFA/4e" and "PDFA/4f" in v13.5. The e version includes 3D contents in rich media annotations and the f version includes file attach annotations.
"PDFA 1b 2005"
Options Various options. If no options are specified, we use default.
Can be specified as number or a texts.
"DeletePostscript¶DeleteOPIComments" Optional

Result

Returns result or error.

Description

Converts a PDF file to a specific PDF standard according to the parameter Type.
This function can be used to convert any PDF to PDF/A.
The conversion of arbitrary imported PDF files to PDF/A requires a separate license of the PDF/A Extension (extra purchase in addition to Pro license).
See dynapdf_help.pdf manual file for more details on this function.

You can pass those texts for options:
DefaultDefault options.
EmbedSubsetsEmbed Subsets
DeleteTransferFuncsDelete Transfer Functions
DeleteMultiMediaContentsDelete MultiMedia content
DeleteActionsAndScriptsDelete Actions and Scripts
DeleteInvRenderingIntentDelete Invisible Rendering Intent
FlattenFormFieldsFlatten form fields
ReplaceV4ICCProfilesReplace V4 ICC Profiles
DeleteEmbeddedFilesDelete embedded files
DeleteOPICommentsDelete OPI comments.
DeleteSignaturesDelete signatures.
DeletePostscriptDelete Postscript XObjects. Rarely used and such Postscript fragments are meaningful on a Postscript device only. It is usually safe to delete such objects.
DeleteAlternateImagesAlternate images are seldom used and prohibited in PDF/A.
ReComprJPEG2000ImagesRecompression results usually in larger images. It is often better to keep such files as is.
ResolveOverprintPDF/A 2 and 3. Set the overprint mode to 0 if overprint mode = 1 and if overprinting for fill or stroke is true and if an ICCBased CMYK color space is used. Note that DeviceCMYK is treated as ICCBased color space due to implicit color conversion rules.
DeleteAppEventsPDF/A 2 and 3. Application events are prohibited in PDF/A. The view state will be applied.
ApplyExportStateMeaningful only if coDeleteAppEvents is set. Apply the export state.
ApplyPrintStateMeaningful only if coDeleteAppEvents is set. Apply the print state.
DeleteRepliesDelete annotation replies. If absent, replies will be converted to regular text annotations.
ReplCCITTFaxWithFlateReplace CCITT Fax compression with Flate.
DeleteHalftonesDelete halftone screens.
FlattenLayersFlatten layers if any.
DeletePresentationPresentations are prohibited in PDF/A 2 and 3.
NoFontEmbeddingIf this flag is set no valid PDF/A file will be produced!
FlushPagesWrite converted pages directly into the output file to reduce the memory usage.
AllowDeviceSpacesIf set, device color spaces will not be replaced with ICC based color spaces. This flag is meaningful for normalization only.
MakeLayerVisiblePDF/A 2 and 3 prohibit invisible layers. Layers can also be flattened if this is no option.
CheckImagesImages will be decompressed to identify damages.
DeleteDamagedImagesMeaningful only if CheckImages is set.
RepairDamagedImagesMeaningful only if coCheckImages is set. If set, try to recompress a damaged image. The new image is maybe incomplete but error free. This flag can be combined with coDeleteDamagedImages to delete the image if recompression fails.
AllowDeviceSpacesIf set, device color spaces will not be replaced with ICC based color spaces. This flag is meaningful for normalization only.
ResetAnnotAppearanceIf set, appearance streams of annotations are rebuild before executing CheckConformance().
DefaultNormalizeCommon default flags for different PDF/A versions.
DefaultPDFA1The ability to flatten layers was added after coDefault was defined.
DefaultPDFA2Presentations are prohibited in PDF/A 2 and PDF/A 3.
DefaultPDFA3Embedded files are allowed in PDF/A 3.
DefaultPDFA4Embedded files are allowed in PDF/A 4.

The result is either an error message or a number >= 0:

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 and finished.
1: A RGB ICC profile must be added to the document with DynaPDF.AddOutputIntent.
2: A CMYK ICC profile must be added to the document with DynaPDF.AddOutputIntent.
3: A Gray, RGB, or CMYK ICC profile must be added to the document with DynaPDF.AddOutputIntent. 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).

See also CheckConformance function in DynaPDF manual.

Examples

Check conformance for ZUGFeRD Extended:

MBS( "DynaPDF.CheckConformance"; $pdf; "ZUGFeRD Extended"; "Default" )

Check conformance only:

MBS("DynaPDF.CheckConformance"; $pdf; "PDFA 1b 2005"; 0)

Check conformance for ZUGFeRD with Pro license:

MBS("DynaPDF.CheckConformance"; $pdf; "ZUGFeRD Basic")
// using default options

Check conformance for ZUGFeRD with Lite license:

MBS("DynaPDF.CheckConformance"; $pdf; "ZUGFeRD Basic"; 0)
// no corrections

See also

Release notes

Example Databases

Blog Entries

This function checks for a license.

Created 2nd November 2014, last changed 18th October 2023


DynaPDF.ChangeSeparationColor - DynaPDF.CheckFieldNames