Class OutputProfile.Feature

  • Enclosing class:
    OutputProfile

    public static class OutputProfile.Feature
    extends java.lang.Object

    An OutputProfile is made up of Features, which may be required or denied. This class defines the available features. Broadly speaking they break down into two categories, those that can be easily determined, and those that require scanning the PDF to see if they apply.

    Those in the first category are returned by the PDF.getBasicOutputProfile() method, and are kept up to date as the PDF is updated. Those in the second category are only available via the PDF.getFullOutputProfile() method, which requires the PDF to be scanned to determine.

    An OutputProfile may be customized by setting these features as Required or Denied. See that class for more information.

    Since:
    2.6.1
    • Field Detail

      • ALL

        public static final OutputProfile.Feature[] ALL
        This array lists all the Features, for easy iteration.
      • PDFVersion10

        public static final OutputProfile.Feature PDFVersion10
        The PDF header describes it as version 1.0
      • PDFVersion11

        public static final OutputProfile.Feature PDFVersion11
        The PDF header describes it as version 1.1
      • PDFVersion12

        public static final OutputProfile.Feature PDFVersion12
        The PDF header describes it as version 1.2 (compatible with Acrobat 3.x).
      • PDFVersion13

        public static final OutputProfile.Feature PDFVersion13
        The PDF header describes it as version 1.3 (compatible with Acrobat 4.x).
      • PDFVersion14

        public static final OutputProfile.Feature PDFVersion14
        The PDF header describes it as version 1.4 (compatible with Acrobat 5.x).
      • PDFVersion15

        public static final OutputProfile.Feature PDFVersion15
        The PDF header describes it as version 1.5 (compatible with Acrobat 6.x).
      • PDFVersion16

        public static final OutputProfile.Feature PDFVersion16
        The PDF header describes it as version 1.6 (compatible with Acrobat 7.x).
      • PDFVersion17

        public static final OutputProfile.Feature PDFVersion17
        The PDF header describes it as version 1.7 with no extension level (compatible with Acrobat 8.x and ISO32000-1:2008).
      • PDFVersion17e3

        public static final OutputProfile.Feature PDFVersion17e3
        The PDF header describes it as version 1.7 with an ExtensionLevel of 3 (compatible with Acrobat 9.x and ISO32000-1:2008 extension 3).
        Since:
        2.11.23
      • PDFVersion17e5

        public static final OutputProfile.Feature PDFVersion17e5
        The PDF header describes it as version 1.7 with an ExtensionLevel of 5 (compatible with Acrobat 9.1 and ISO32000-1:2008 extension 5).
        Since:
        2.11.23
      • PDFVersion17e8

        public static final OutputProfile.Feature PDFVersion17e8
        The PDF header describes it as version 1.7 with an ExtensionLevel of 8 (compatible with Acrobat X).
        Since:
        2.11.23
      • PDFVersion17e11

        public static final OutputProfile.Feature PDFVersion17e11
        The PDF header describes it as version 1.7 with an ExtensionLevel of 11 (compatible with Acrobat XI).
        Since:
        2.24.2
      • PDFVersion20

        public static final OutputProfile.Feature PDFVersion20
        The PDF header describes it as version 2.0
        Since:
        2.11.23
      • PDFVersion2n

        public static final OutputProfile.Feature PDFVersion2n
        The PDF header describes it as version 2.n, where n is any digit. This broader test is a requirement for PDF/A-4
        Since:
        2.26.1
      • PDFVersionInCatalog

        public static final OutputProfile.Feature PDFVersionInCatalog
        The PDF Version number set in the header is overridden by the /Version key in the document Catalog
        Since:
        2.26.1
      • PDFVersionInCatalogInvalid

        public static final OutputProfile.Feature PDFVersionInCatalogInvalid
        Like PDFVersionInCatalog, but indicates the version number is incorrect. This is a disallowed for PDF/A-4
        Since:
        2.26.1
      • HasDocID

        public static final OutputProfile.Feature HasDocID
        The PDF has a Document ID set. A Document ID is required by PDF/A, and all PDFs saved by this library will have one (generated if necessary) unless this feature is denied.
      • DocIDMismatch

        public static final OutputProfile.Feature DocIDMismatch
        The PDF is Linearized, but has a mismatch between the Document ID in the final trailer and the Document ID in the first page trailer. This is not allowed in PDF/A-1.
        Since:
        2.11.5
      • DocIDMissing

        public static final OutputProfile.Feature DocIDMissing
        The PDF is missing the Document ID in the primary trailer. Note this differs from the HasDocID feature because this is testing the primary trailer only; the other feature is set if any of the trailers have an ID This is not allowed in PDF/A-1.
        Since:
        2.17.1
      • InfoDictionary

        public static final OutputProfile.Feature InfoDictionary
        The PDF has an Info dictionary. This is deprecated in PDF 2.0.
        Since:
        2.25
      • InfoDictionaryOptionalFields

        public static final OutputProfile.Feature InfoDictionaryOptionalFields
        The PDF has an Info dictionary with optional fields in it. All fields are optional, except for "ModDate" when the PDF has a PieceInfo dictionary. Optional fields are disallowed in PDF/A-4
        Since:
        2.25
      • PieceInfo

        public static final OutputProfile.Feature PieceInfo
        The PDF has a PieceInfo dictionary, which may hold private data for different applications.
        Since:
        2.25
      • PieceInfoWithoutModDate

        public static final OutputProfile.Feature PieceInfoWithoutModDate
        The PDF has a PieceInfo dictionary, but the Info dictionary does not have a ModDate entry.
        Since:
        2.25
      • HasAuthor

        public static final OutputProfile.Feature HasAuthor
        The PDF Info dictionary has an Author set
      • HasSubject

        public static final OutputProfile.Feature HasSubject
        The PDF Info dictionary has a Subject set
      • HasProducer

        public static final OutputProfile.Feature HasProducer
        The PDF Info dictionary has a Producer set
      • HasCreator

        public static final OutputProfile.Feature HasCreator
        The PDF Info dictionary has a Creator set
      • HasCreationDate

        public static final OutputProfile.Feature HasCreationDate
        The PDF Info dictionary has a Creation Date set
      • HasModDate

        public static final OutputProfile.Feature HasModDate
        The PDF Info dictionary has a Modification Date set. When a PDF is written with the PDF library a modification date is always applied, but some documents read in may be missing one.
      • HasTrapped

        public static final OutputProfile.Feature HasTrapped
        The PDF Info dictionary has a Trapped key. PDF/X requires this to be set to "true" or "false - "unknown" is not allowed
      • Linearized

        public static final OutputProfile.Feature Linearized
        The PDF is Linearized (also known as web ready). Linearized PDFs may be read by the library, and setting this feature to "required" will cause them to be written as well.
      • LinearizedLoader

        public static final OutputProfile.Feature LinearizedLoader
        The PDF is Linearized and has been loaded using the Linearized Loader. This implies the PDF may still be loading.
        Since:
        2.14
      • MultipleRevisions

        public static final OutputProfile.Feature MultipleRevisions

        The PDF has multiple revisions. Typically this applies only to documents that have been digitally signed and then amended.

        Setting this feature to "required" will cause the document to be rendered with revisions, even if they are not required by the Document structure. Although rendering with revisions does increase the size of the document marginally, it does mean that the PDF file will only be appended to - any existing objects in the PDF will remain in the same file position. The only time this really matters is when a PDF has been read in using the PDFReader(File) constructor, and you want to write back to the same file. In this case the PDF file is used as a buffer, which means if your code looks like this...

         File file = new File("file.pdf");
         PDF pdf = new PDF(new PDFReader(file));
         File tempfile = new File("temp.pdf");
         OutputStream out = new FileOutputStream(tempfile);
         pdf.render(out);
         out.close();
         tempfile.renameTo(file);
         
        ... you need to use this approach. You should always use a temporary file if you're doing this - writing to the same file you're reading from is not guaranteed to work, even with this setting.
        Since:
        2.0, with the ability to set this feature as "required" added in 2.11.2
      • UncompressedXRef

        public static final OutputProfile.Feature UncompressedXRef
        The PDF has the regular old-style XRef table. This is required to load the document in Acrobat prior to Acrobat 6.0, and it may be stored alongside a Compressed XRef for compatibility.
      • XRefGaps

        public static final OutputProfile.Feature XRefGaps
        The PDF has gaps in it's XRef table. Gaps are disallowed in the specification, but don't cause a problem for most PDF consumers. However if this feature is set it indicates the PDF may fail to load in some workflows.
        Since:
        2.24.1
      • CompressedXRef

        public static final OutputProfile.Feature CompressedXRef
        The PDF has a Compressed XRef table. These were added in Acrobat 6.0 and can drastically reduce the size of the file, unless they are used alongside the Normal XRef table (in which case they actually increase the file size). The PDF library can read both and will write on or the other, but currently not both, so settting this feature means the PDF will not load prior to Acrobat 6.0
      • Bookmarks

        public static final OutputProfile.Feature Bookmarks
        The PDF has a Bookmarks tree, as returned by PDF.getBookmarks(). If this feature is denied when an OutputProfile is applied, then the Bookmarks will be removed.
      • Thumbnails

        public static final OutputProfile.Feature Thumbnails
        The PDF has Thumbnails included with the document. This can make the PDF bigger then necessary, as these can be easily generated on the fly.
        Since:
        2.11.8
      • PageLabels

        public static final OutputProfile.Feature PageLabels
        The PDF has page labels. If this feature is denied when an OutputProfile is applied, then the labels will be removed.
        Since:
        2.10.3
      • Articles

        public static final OutputProfile.Feature Articles
        The PDF contains "Articles" (sometimes known as Threads). If this feature is denied when an OutputProfile is applied, then all Articles will be removed from the PDF. Note articles cannot be added or edited with this API.
        Since:
        2.7.1
      • StructureTreeEmpty

        public static final OutputProfile.Feature StructureTreeEmpty
        The PDF has a Structure Tree, but there are no elements in the Document
        Since:
        2.26
      • LanguageSpecified

        public static final OutputProfile.Feature LanguageSpecified
        The PDF has a valid Language tag, indicating the natural language of the document
      • LanguageInvalid

        public static final OutputProfile.Feature LanguageInvalid
        The PDF has an invalid Language tag, either on the catalog or in the Structure Tree. Invalid (as opposed to missing) tags are always invalid in PDF/A
        Since:
        2.26
      • EmptyLanguageSpecified

        public static final OutputProfile.Feature EmptyLanguageSpecified
        The PDF has a Language tag which is empty, indicating the language is specified to be unknown. This is distinct from a missing language tag, which means the language is unspecified.
        Since:
        2.24.2
      • TaggedTextLanguageUnspecified

        public static final OutputProfile.Feature TaggedTextLanguageUnspecified
        The PDF contains text reachable from the Structure Tree which has no language set. This is not allowed in PDF/UA-1 (not part of basic profile)
        Since:
        2.28.2
      • ReaderExtensions

        public static final OutputProfile.Feature ReaderExtensions
        The PDF contains Reader Extensions. These are added by LiveCycle or Acrobat to grant additional rights on the PDF in Acrobat Reader, such as the ability to complete forms. Modifying a Reader-extension enabled PDF can be done with the PDF library, but care must be taken not to invalidate the document during this process. Typically you should not alter the PDF in any way other than by setting the value of form fields or signing signature fields. If this feature is denied, the Reader Extensions will be removed and the document can be edited as normal.
      • XMPMetaData

        public static final OutputProfile.Feature XMPMetaData
        The PDF has XMP Metadata on the Document. XMP Metadata is added by default whenever a PDF is written, unless this feature is specifically denied.
      • XMPMetaDataPretty

        public static final OutputProfile.Feature XMPMetaDataPretty
        If this feature is set to "required" when rendering, it will cause any XMP output to be pretty-printed with indents, for easies visual inspection. It simply calls pdf.getXMP().set("indent", 1)
        Since:
        2.25
      • XMPMetaDataWrapper

        public static final OutputProfile.Feature XMPMetaDataWrapper
        If this feature is set to "required" when rendering, it will cause any XMP output to be wrapped in the optional <xmpmeta> element, to quieten warnings from toolchains that mistakenly think this is required. It simply calls pdf.getXMP().set("use-xmpmeta", 1)
        Since:
        2.28.4
      • XMPMetaDataOnPage

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnPage
        The PDF has XMP Metadata on a PDFPage object. Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.20.1
      • XMPMetaDataOnAnnotation

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnAnnotation
        The PDF has XMP Metadata on a PDFAnnotation object. Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.20.1
      • XMPMetaDataOnFont

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnFont
        The PDF has XMP Metadata on a PDFFont. Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataOnDPart

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnDPart
        The PDF has XMP Metadata on a PDF 2.0 Document Part ("DPart"). Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataOnXObject

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnXObject
        The PDF has XMP Metadata on an XObject (image or canvas). Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataOnStructElem

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnStructElem
        The PDF has XMP Metadata on an Element in the PDF Structure Tree Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataOnMarkedContentSequence

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnMarkedContentSequence
        The PDF has XMP Metadata on a marked content sequence. Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataOnICCProfile

        public static final org.faceless.pdf2.OutputProfile.Feature.XMPAttachmentFeature XMPMetaDataOnICCProfile
        The PDF has XMP Metadata on an ICCColorSpace. Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataOnUnknown

        public static final OutputProfile.Feature XMPMetaDataOnUnknown
        The PDF has XMP Metadata on a PDF object other than a page, annotation, font, XObject, DPart, Structure Tree element or a marked content sequence. Denying this feature will remove any matching metadata. (not part of basic profile)
        Since:
        2.26
      • XMPMetaDataRelaxNGSchema

        public static final OutputProfile.Feature XMPMetaDataRelaxNGSchema
        The PDF includes XMP Metadata which has an attached Relax NG schema. This feature does not imply the Schema is valid, or that the data matches it. This is new in PDF/A-4.
        Since:
        2.24.4
      • XMPMetaDataRelaxNGSchemaCorrupt

        public static final OutputProfile.Feature XMPMetaDataRelaxNGSchemaCorrupt
        The PDF includes XMP Metadata which has an attached Relax NG schema, but the schems itself is not a valid RelaxNG schema. This is not allowed in PDF/A-4. Note that this feature is not tested for unless the Jing library is available at runtime.
        Since:
        2.24.4
      • XMPMetaDataRelaxNGSchemaInvalid

        public static final OutputProfile.Feature XMPMetaDataRelaxNGSchemaInvalid
        The PDF includes XMP Metadata which has an attached, valid RelaxNG schema, but the metadata does not validate against the schema. Note that this feature is not tested for unless the Jing library is available at runtime. This is new in PDF/A-4, although metadata invalid in this way is allowed in a PDF/A-4 document.
        Since:
        2.24.4
      • XMPMetaDataRelaxNGSchemaValid

        public static final OutputProfile.Feature XMPMetaDataRelaxNGSchemaValid
        The PDF includes XMP Metadata which has an attached RelaxNG schema, and the metadata validates aganist the schema. Note that this feature is not tested for unless the Jing library is available at runtime. This is new in PDF/A-4.
        Since:
        2.24.4
      • BadXMPMetaData

        public static final OutputProfile.Feature BadXMPMetaData
        The PDF contains XMPMetadata that is structurally invalid. Since 2.20.1 this feature has been split, with the stricter tests require by PDF/A covered under XMPMetaDataTypeMismatch This is not allowed in PDF/A
        Since:
        2.6.7
      • XMPMetaDataIsFiltered

        public static final OutputProfile.Feature XMPMetaDataIsFiltered
        The PDF contains XMPMetadata that is encoded using a filter. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.11.5
      • XMPMetaDataNotUTF8

        public static final OutputProfile.Feature XMPMetaDataNotUTF8
        The PDF contains XMP metadata which is not stored as UTF-8 This is not allowed in PDF/A-4
        Since:
        2.26.1
      • XMPMetaDataInfoMismatch

        public static final OutputProfile.Feature XMPMetaDataInfoMismatch
        The PDF contains entries in its information dictionary that does not match the corresponding entries in its XMP metadata. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.11.5
      • XMPMetaDataInfoMismatchTrailingZero

        public static final OutputProfile.Feature XMPMetaDataInfoMismatchTrailingZero
        The PDF contains entries in its information dictionary that do not match exactly the corresponding entries in its XMP metadata - the values in the Information dictionary have a single additional trailing NUL byte. This is arguably not allowed in PDF/A, but Acrobat (amongst others) seems to allow it, so we distinguish this feature to allow results to match Acrobat. (not part of basic profile).
        Since:
        2.17
      • XMPMetaDataDescribesMultipleResources

        public static final OutputProfile.Feature XMPMetaDataDescribesMultipleResources
        The PDF contains XMP metadata containing RDF resource descriptors for multiple objects. This is invalid in RDF and so will invalidate the XMP metadata.
        Since:
        2.14
      • XMPMetaDataHasMixedResourceDescriptors

        public static final OutputProfile.Feature XMPMetaDataHasMixedResourceDescriptors
        The PDF contains XMP metadata containing RDF resource descriptors which are a mix of the empty string and the non-empty string. This is not allowed in XMP but was common practice in earlier revisions of a lot of software, including our own API and Acrobat.

        Opinion

        The XMP specification recommends this is tolerated so we allow it for PDF/A, but can be set as invalid to match the behaviour of some other toolkits. Acrobat 9, X and XI all disallow it in PDF/A-1 and later. The BFO API will always create files that don't set this feature (i.e. that meet the stricter definition of this rule), but be aware that calling PDF.setMetaData(java.lang.String) with your own custom XMP metadata will allow you to bypass this test. If you want to be sure when you do this, set the feature as denied on your OutputProfile, eg:
         PDF pdf = new PDF();
         OutputProfile profile = new OutputProfile(OutputProfile.PDFA1b_2005, ...);
         profile.setDenied(OutputProfile.Feature.XMPMetaDataHasMixedResourceDescriptors);
         pdf.setOutputProfile(profile);
         pdf.setMetaData(yourdata);
         
        Since:
        2.14
      • XMPMetaDataXpacketFormatError

        public static final OutputProfile.Feature XMPMetaDataXpacketFormatError
        The PDF contains a malformed xpacket header in its XMP metadata. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.11.5
      • XMPMetaDataXpacketDeprecatedAttributes

        public static final OutputProfile.Feature XMPMetaDataXpacketDeprecatedAttributes
        The PDF contains XMP metadata which makes use of the deprecated attributes "bytes" or "encoding" in the xpacket header. This is not allowed in PDF/A (not part of basic profile).
      • XMPMetaDataXpacketUnknownAttributes

        public static final OutputProfile.Feature XMPMetaDataXpacketUnknownAttributes
        The PDF contains XMP metadata with an xpacket that contains unknown attributes. This is not allowed in PDF/A (not part of basic profile).
      • XMPMetaDataXpacketBeginError

        public static final OutputProfile.Feature XMPMetaDataXpacketBeginError
        The PDF contains XMP metadata where the begin attribute in the opening xpacket has an incorrect value. This is disallowed in XMP since the first edition, but no-one has ever verified it. (not part of basic profile)
        Since:
        2.24.3
      • XMPMetaDataXpacketMissing

        public static final OutputProfile.Feature XMPMetaDataXpacketMissing
        The PDF contains XMP metadata that is not wrapped in a pair of "xpacket" processing instructions. This is disallowed in XMP up to 2008, but allowed from 2012. (not part of basic profile)
        Since:
        2.24.4
      • XMPMetaDataXpacketDuplicated

        public static final OutputProfile.Feature XMPMetaDataXpacketDuplicated
        The PDF contains XMP metadata that is wrapped in multiple "xpacket" processing instructions. This is certainly incorrect, but we don't believe it's technically invalid: the outer-most xpacket is not the one wrapping the XMP metadata, so is excluded from the test. This argument could be made either way so the feature is distinct from the other Xpacket tests. It is currently not tested for as part of the PDF/A profiles. (not part of basic profile)
        Since:
        2.25
      • XMPMetaDataMissing

        public static final OutputProfile.Feature XMPMetaDataMissing
        The PDF contains XMP metadata which declares a property that is not defined in either the XMP specification or an internal PDF/A extension. This is invalid in PDF/A-1, A-2 and A-3, but relatively common otherwise, particularly for documents created by other Adobe tools which often make their own presumptions about which XMP properties are standard. (not part of basic profile)
        Since:
        2.20.1
      • XMPMetaDataMissing2004

        public static final OutputProfile.Feature XMPMetaDataMissing2004
        The PDF contains XMP metadata which declares a property that was not defined in the original 2004 edition of XMP, but was added in June 2005. This is invalid in PDF/A-1 but valid in later editions of PDF/A. It is otherwise identical to XMPMetaDataMissing (not part of basic profile)
        Since:
        2.20.1
      • XMPMetaDataMissing2005

        public static final OutputProfile.Feature XMPMetaDataMissing2005
        The PDF contains XMP metadata which declares a property that was not defined in the original edition or the June 2005 edition, but was defined in the 2008 edition. This is invalid in PDF/A-1, A-2 and A-3. It is otherwise identical to XMPMetaDataMissing (not part of basic profile)
        Since:
        2.24.3
      • XMPMetaDataMissing2008

        public static final OutputProfile.Feature XMPMetaDataMissing2008
        The PDF contains XMP metadata which declares a property that was undefined in the 2008 edition, but was added to the 2012 edition of the XMP specification. This is invalid in PDF/A-1, A-2 and A-3. It is otherwise identical to XMPMetaDataMissing (not part of basic profile)
        Since:
        2.24.3
      • XMPMetaDataTypeMismatch

        public static final OutputProfile.Feature XMPMetaDataTypeMismatch
        The PDF contains XMP metadata which declares a property of a type that doesn't match the definition in the XMP specification or an internal PDF/A extension. This is invalid in PDF/A, and (if you care about valid XMP) slightly more serious than the similar feature XMPMetaDataMissing, as a standard property is being used incorrectly, although it is still relatively common. This feature also covers complex types that are missing a required field, for example if a "Dimension" object was missing its stDim:unit. (not part of basic profile)
        Since:
        2.20.1
      • XMPMetaDataTypeUnknownField

        public static final OutputProfile.Feature XMPMetaDataTypeUnknownField

        The PDF contains XMP metadata which declares a structured property value that contains a field which is not defined.

        Although it's not valid in PDF/A, prior to release 2.26 we allowed this due to a misinterpretation of "technical note 10". (not part of basic profile)

        Since:
        2.24.4
      • XMPMetaDataTypeUnknownChoice

        public static final OutputProfile.Feature XMPMetaDataTypeUnknownChoice

        The PDF contains XMP metadata which contains a value in a type declared to be a "Closed Choice", but the value is not listed as an available option.

        Although it possibly indicates some problems with the XMP that may make it difficult to parse, it is not considered a fault for PDF/A - a decision made in PDF Assocation Technical Note 10. (not part of basic profile)

        Since:
        2.24.4
      • PDFAExtensionSchemaNamespaceInvalid

        public static final OutputProfile.Feature PDFAExtensionSchemaNamespaceInvalid
        The XMP metadata contains a PDF/A extension schema which has a namespace URI that doesn't end in '#' or '/'. This slightly absurd rule was loosely defined in the original version of the XMP specification, but the language was tightened in later releases. It is a requirement for all PDF/A variants. (not part of basic profile).
        Since:
        2.15.3
      • XMPMetaDataTypeMatches2004

        public static final OutputProfile.Feature XMPMetaDataTypeMatches2004
        The XMP metadata contains a known XMP property which has changed type throughout the various revisions of the specification, and the value found matches the 2004 edition of the specification. The only property this applies to is "photoshop:SupplementalCategories", which was a "Text" in 2004 (as used by PDF/A-1) and a "Bag Text" in 2005 (as used by PDF/A-2 and PDF/A-3). (not part of basic profile).
        Since:
        2.24.4
      • XMPMetaDataTypeMatches2005

        public static final OutputProfile.Feature XMPMetaDataTypeMatches2005
        The XMP metadata contains a known XMP property which has changed type throughout the various revisions of the specification, and the value found matches the 2005 edition of the specification. The only property this applies to is \"photoshop:SupplementalCategories\", which was a "Text" in 2004 (as used by PDF/A-1) and a "Bag Text" in 2005 (as used by PDF/A-2 and PDF/A-3). (not part of basic profile).
        Since:
        2.24.4
      • XMPMetaDataTypeMatches2008

        public static final OutputProfile.Feature XMPMetaDataTypeMatches2008
        The XMP metadata contains a known XMP property which has changed type throughout the various revisions of the specification, and the value found matches the 2008 edition of the specification. The properties this applies to are "xmp:Real", which was an Integer until 2005 and a Real from 2008, and the "xmpDM:duration" and "xmpDM:startTime" fields of the "xmpDM:Marker" type, which were "Time" until 2005 and "Framecount" from 2008. (not part of basic profile).
        Since:
        2.24.4
      • PDFAExtensionSchemaBadPrefix

        public static final OutputProfile.Feature PDFAExtensionSchemaBadPrefix
        The XMP metadata contains a PDF/A extension schema which uses a non-standard prefix. This is not allowed by PDF/A (not part of basic profile).
      • XMPMetaDataTypedNodes

        public static final OutputProfile.Feature XMPMetaDataTypedNodes
        The XMP metadata contains "typed nodes". These were disallowed in XMP prior to 2012, and will likely cause the XMP to fail to pearse in older parsers. They are disallowed in PDF/A-1 to 3
        Since:
        2.24.4
      • Actions

        public static final OutputProfile.Feature Actions
        The PDF has Actions (not part of basic profile). The PDF contains Actions, which may be on annotations, pages or the document as a whole. Actions are not allowed in PDF/X. If this feature is denied when an OutputProfile is applied, then any actions in the PDF, pages or annotations will be removed.
      • AdditionalActions

        public static final OutputProfile.Feature AdditionalActions
        The PDF has Additional Actions (not part of basic profile). Additional Actions are a subclass of Action, basically anything other than an open action on a PDF.
      • AdditionalActionNotBasic

        public static final OutputProfile.Feature AdditionalActionNotBasic
        The PDF has Additional Actions that are not in the basic list allowed in PDF/A-4. (not part of basic profile)
        Since:
        2.24.3
      • AdditionalActionUnknown

        public static final OutputProfile.Feature AdditionalActionUnknown
        The PDF has Additional Actions that are undefined in PDF. (not part of basic profile)
        Since:
        2.24.3
      • ActionsOnDocument

        public static final OutputProfile.Feature ActionsOnDocument
        The PDF has Actions on the Document Catalog (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.11.6
      • AdditionalActionsOnDocument

        public static final OutputProfile.Feature AdditionalActionsOnDocument
        The PDF has Additional Actions on the Document Catalog (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.28.2
      • ActionsOnPages

        public static final OutputProfile.Feature ActionsOnPages
        The PDF has Actions which will run when a Page is opened or closed (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.11.6
      • ActionsOnWidgets

        public static final OutputProfile.Feature ActionsOnWidgets
        The PDF has Actions on a Widget Annotation (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.11.6
      • ActionsOnWidgetsLegacy

        public static final OutputProfile.Feature ActionsOnWidgetsLegacy
        The PDF has a legacy "A" action on a Widget Annotation (not part of basic profile). This is not allowed in PDF/A-4
        Since:
        2.28.2
      • AdditionalActionsOnAnnotations

        public static final OutputProfile.Feature AdditionalActionsOnAnnotations
        The PDF has Additional Actions on an Annotation (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.28.2
      • ActionsOnFields

        public static final OutputProfile.Feature ActionsOnFields
        The PDF has Actions on a Form Field (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.11.6
      • ActionsOnAnnotations

        public static final OutputProfile.Feature ActionsOnAnnotations
        The PDF has Actions on a non-Widget Annotations If this feature is denied when an OutputProfile is applied then they will be removed. (not part of basic profile).
        Since:
        2.24.3
      • ActionsInBookmarks

        public static final OutputProfile.Feature ActionsInBookmarks
        The PDF has Actions in its Bookmarks (not part of basic profile). Actions are not allowed in PDF/X. If this feature is denied when an OutputProfile is applied, then any actions in the bookmarks wil be removed.
      • JavaScript

        public static final OutputProfile.Feature JavaScript
        The PDF has JavaScript (not part of basic profile). The PDF contains JavaScript, which may be document wide or as part of an action. JavaScript is not allowed in PDF/X or PDF/A. If this feature is denied when an OutputProfile is applied, then any JavaScript in the PDF or actions will be removed.
      • ActionLaunch

        public static final OutputProfile.Feature ActionLaunch
        The PDF has Launch actions (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.11.6
      • ActionSound

        public static final OutputProfile.Feature ActionSound
        The PDF has Sound actions (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.11.6
      • ActionURI

        public static final OutputProfile.Feature ActionURI
        Ths PDF has URI actions that refer to an external URI (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.24.2
      • ActionURITooLong

        public static final OutputProfile.Feature ActionURITooLong
        Ths PDF has URI actions that is way too long!. This added specifically after a 1.2MB Data URL was seen in a document. This feature is denied in PDFA, and they will be removed.
        Since:
        2.26.4
      • ActionGoToDp

        public static final OutputProfile.Feature ActionGoToDp
        Ths PDF has GoToDp actions that refer to a PDF 2.0 Document Part (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.24.2
      • ActionMovie

        public static final OutputProfile.Feature ActionMovie
        The PDF has Movie actions (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.11.6
      • ActionImportData

        public static final OutputProfile.Feature ActionImportData
        The PDF has ImportData actions (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.11.6
      • ActionResetForm

        public static final OutputProfile.Feature ActionResetForm
        The PDF has ResetForm actions (not part of basic profile). If this feature is denied when an OutputProfile is applied then the actions will be removed.
        Since:
        2.11.6
      • ActionNamedOther

        public static final OutputProfile.Feature ActionNamedOther
        The PDF has Named actions other than NextPage, PrevPage, FirstPage or LastPage (not part of basic profile). These actions are not allowed in PDF/A. If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.11.6
      • ActionUnknown

        public static final OutputProfile.Feature ActionUnknown
        The PDF has an Unknown action. These are not allowed in PDF/A (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.11.6
      • ActionInvalid

        public static final OutputProfile.Feature ActionInvalid
        The PDF has an action which is so invalid we can't parse it. These are not allowed in PDF/A (not part of basic profile). If this feature is denied when an OutputProfile is applied then they will be removed.
        Since:
        2.28.1
      • ActionGoToBadPage

        public static final OutputProfile.Feature ActionGoToBadPage
        The PDF contains a GoTo action that references a non-existant page (not part of basic profile).
        Since:
        2.11.6
      • ActionGoToPage

        public static final OutputProfile.Feature ActionGoToPage
        The PDF contains a GoTo action that refers to a page in the PDF
        Since:
        2.14.2
      • UnreferencedActionBadPage

        public static final OutputProfile.Feature UnreferencedActionBadPage
        The PDF contains a "named action" that is not referenced by any other action, and refers to an invalid page (not part of basic profile).
        Since:
        2.28.4
      • UnreferencedActionPage

        public static final OutputProfile.Feature UnreferencedActionPage
        The PDF contains a "named action" that is not referenced by any other action, and refers to a page in the PDF
        Since:
        2.28.4
      • UnreferencedActionStructure

        public static final OutputProfile.Feature UnreferencedActionStructure
        The PDF contains a "named action" that is not referenced by any other action, and refers to a structure element in the PDF
        Since:
        2.28.4
      • ActionGoToRemote

        public static final OutputProfile.Feature ActionGoToRemote
        The PDF contains a "remote" GoTo action ("GoToR") which refers to another file, possibly not even a PDF file
        Since:
        2.24.3
      • ActionGoToEmbedded

        public static final OutputProfile.Feature ActionGoToEmbedded
        The PDF contains a GoTo action that points to an Embedded File (a "GoToE" action).
        Since:
        2.24.3
      • ActionGoToEmbeddedStructure

        public static final OutputProfile.Feature ActionGoToEmbeddedStructure
        The PDF contains a GoTo action that points to an element in the Structure Tree of an the Embedded File (a "GoToE" action).
        Since:
        2.24.3
      • ActionGoToStructureElement

        public static final OutputProfile.Feature ActionGoToStructureElement
        The PDF contains a GoTo action that refers to an element in the document StructureTree. This is a PDF 2.0 feature
        Since:
        2.14.2
      • ActionSetOCGState

        public static final OutputProfile.Feature ActionSetOCGState
        The PDF contains a SetOCGState action. This is not allowed in PDF/A-2 (not part of basic profile).
        Since:
        2.14.1
      • ActionRendition

        public static final OutputProfile.Feature ActionRendition
        The PDF contains a Rendition action. This is not allowed in PDF/A-2 (not part of basic profile).
        Since:
        2.14.1
      • ActionTrans

        public static final OutputProfile.Feature ActionTrans
        The PDF contains a Transition action. This is not allowed in PDF/A-2 (not part of basic profile).
        Since:
        2.14.1
      • ActionHide

        public static final OutputProfile.Feature ActionHide
        The PDF contains a Hide action (which covers both showing and hiding widgets) This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.17
      • ActionGoTo3DView

        public static final OutputProfile.Feature ActionGoTo3DView
        The PDF contains a GoTo3DView action This is not allowed in PDF/A-2 (not part of basic profile).
        Since:
        2.14.1
      • LegacyNamedActions

        public static final OutputProfile.Feature LegacyNamedActions
        The PDF contains an old-style Map of PDFAction referenced by name. The old approach is still valid, but was replaced by the newer "named action" map represented by the NamedActions feature in PDF 1.2. This legacy map will be silently upgraded to the newer type of Map on the first call to PDF.getNamedActions().
        Since:
        2.11.26
      • Annotations

        public static final OutputProfile.Feature Annotations
        The PDF has Annotations (not part of basic profile). At least one page in the PDF has annotations associated with it. If this feature is denied when an OutputProfile is applied, then any Annotations will be removed.
      • AnnotationsInPage

        public static final OutputProfile.Feature AnnotationsInPage
        The PDF has Annotations inside the Bleed box (not part of basic profile). At least one page in the PDF has annotations associated with it which display partly or completely inside the Trim box if specified, or if not the Bleed Box or Crop Box. Annotations inside the page are not allowed in PDF/X. If this feature is denied when an OutputProfile is applied, then any Annotations inside the pagebox will be removed.
      • AnnotationMovie

        public static final OutputProfile.Feature AnnotationMovie
        The PDF contains at least one Movie annotation. If this feature is denied when an OutputProfile is applied, any movie annotations will be removed (not part of basic profile).
      • AnnotationSound

        public static final OutputProfile.Feature AnnotationSound
        The PDF contains at least one Sound annotation. If this feature is denied when an OutputProfile is applied, any Sound annotations will be removed (not part of basic profile).
      • AnnotationNote

        public static final OutputProfile.Feature AnnotationNote
        The PDF contains a Note annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationLink

        public static final OutputProfile.Feature AnnotationLink
        The PDF contains a Link annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationText

        public static final OutputProfile.Feature AnnotationText
        The PDF contains a Text annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationLine

        public static final OutputProfile.Feature AnnotationLine
        The PDF contains a Line annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationSquare

        public static final OutputProfile.Feature AnnotationSquare
        The PDF contains a Square annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationCircle

        public static final OutputProfile.Feature AnnotationCircle
        The PDF contains a Circle annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationPolygon

        public static final OutputProfile.Feature AnnotationPolygon
        The PDF contains a Polygon annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationPolyLine

        public static final OutputProfile.Feature AnnotationPolyLine
        The PDF contains a PolyLine annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationHighlight

        public static final OutputProfile.Feature AnnotationHighlight
        The PDF contains a Highlight annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationUnderline

        public static final OutputProfile.Feature AnnotationUnderline
        The PDF contains an Underline annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationSquiggly

        public static final OutputProfile.Feature AnnotationSquiggly
        The PDF contains an Squiggly annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationStrikeOut

        public static final OutputProfile.Feature AnnotationStrikeOut
        The PDF contains an StrikeOut annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationStamp

        public static final OutputProfile.Feature AnnotationStamp
        The PDF contains a Stamp annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationCaret

        public static final OutputProfile.Feature AnnotationCaret
        The PDF contains a Caret annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationInk

        public static final OutputProfile.Feature AnnotationInk
        The PDF contains an Ink annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationInkWithoutContents

        public static final OutputProfile.Feature AnnotationInkWithoutContents
        The PDF contains an Ink annotation that doesn't have a Contents key. This is not allowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • AnnotationPopup

        public static final OutputProfile.Feature AnnotationPopup
        The PDF contains a Popup annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationWidget

        public static final OutputProfile.Feature AnnotationWidget
        The PDF contains a Widget Annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationScreen

        public static final OutputProfile.Feature AnnotationScreen
        The PDF contains a Screen annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationScreenWithoutContents

        public static final OutputProfile.Feature AnnotationScreenWithoutContents
        The PDF contains a Screen annotation that doesn't have a Contents key. This is not allowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • AnnotationPrinterMark

        public static final OutputProfile.Feature AnnotationPrinterMark
        The PDF contains a PrinterMark annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationTrapNet

        public static final OutputProfile.Feature AnnotationTrapNet
        The PDF contains a TrapNet annotation (not part of basic profile).
        Since:
        2.11.5
      • AnnotationWatermark

        public static final OutputProfile.Feature AnnotationWatermark
        The PDF contains a Watermark annotation (not part of basic profile).
        Since:
        2.11.5
      • Annotation3D

        public static final OutputProfile.Feature Annotation3D
        The PDF contains a 3D annotation (not part of basic profile).
        Since:
        2.11.5
      • Annotation3DU3D

        public static final OutputProfile.Feature Annotation3DU3D
        The PDF contains a "U3D" 3D annotation (not part of basic profile).
        Since:
        2.24.2
      • Annotation3DPRC

        public static final OutputProfile.Feature Annotation3DPRC
        The PDF contains a "PRC" 3D annotation (not part of basic profile).
        Since:
        2.24.2
      • Annotation3DOther

        public static final OutputProfile.Feature Annotation3DOther
        The PDF contains a 3D annotation that is of an unknown type (not PRC or U3D). This is not allowed in PDF/A-4e (not part of basic profile).
        Since:
        2.24.4
      • Annotation3DWithoutContents

        public static final OutputProfile.Feature Annotation3DWithoutContents
        The PDF contains a 3D annotation that doesn't have a Contents key. This is not allowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • AnnotationRedact

        public static final OutputProfile.Feature AnnotationRedact
        The PDF contains a Redaction annotation (not part of basic profile).
        Since:
        2.14.1
      • AnnotationProjection

        public static final OutputProfile.Feature AnnotationProjection
        The PDF contains a Projection annotation, as defined in ISO32000-1:2008 extension 3. (not part of basic profile).
        Since:
        2.11.5
      • AnnotationRichMedia

        public static final OutputProfile.Feature AnnotationRichMedia
        The PDF contains a RichMedia annotation, as defined in ISO32000-1:2008 extension 3. (not part of basic profile).
        Since:
        2.11.5
      • AnnotationRichMediaWithoutContents

        public static final OutputProfile.Feature AnnotationRichMediaWithoutContents
        The PDF contains a RichMedia annotation that doesn't have a Content key. This is not allowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • AnnotationUnknown

        public static final OutputProfile.Feature AnnotationUnknown
        The PDF contains an annotation type that is not defined in the PDF specification (not part of basic profile).
        Since:
        2.11.5
      • BadTrapNetAnnotation

        public static final OutputProfile.Feature BadTrapNetAnnotation
        The PDF has a Trap Annotation that does not meet PDF/X requirements (not part of basic profile).
      • RichValueMismatch

        public static final OutputProfile.Feature RichValueMismatch
        The PDF has an annotation with Contents, or a text string with a value, and that value is stored as both a plain string and a "rich" string with markup - and the text values disagree. This is disallowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • AnnotationTransparentContent

        public static final OutputProfile.Feature AnnotationTransparentContent
        The PDF contains annotations with Transparency operations within the content stream. Transparent content in annotations is not allowed in PDF/A-1. Note this is different to annotations that are defined as being partially transparent, which is new in PDF 2.0 (not part of basic profile).
        Since:
        2.6.2
        See Also:
        AnnotationTransparent
      • TransparencyGroup

        public static final OutputProfile.Feature TransparencyGroup
        The PDF contains a Transparency Group (not part of basic profile). Transparency groups are not allowed in PDF/A-1
        Since:
        2.11.5
      • TransparencyGroupRGB

        public static final OutputProfile.Feature TransparencyGroupRGB
        The PDF contains a Transparency Group that blends in an RGB color-space.
        Since:
        2.24.3
      • TransparencyGroupGray

        public static final OutputProfile.Feature TransparencyGroupGray
        The PDF contains a Transparency Group that blends in an Grayscale color-space.
        Since:
        2.24.3
      • TransparencyGroupCMYK

        public static final OutputProfile.Feature TransparencyGroupCMYK
        The PDF contains a Transparency Group that blends in a CMYK color-space.
        Since:
        2.24.3
      • NonPopupAnnotationPrintFlagNotSet

        public static final OutputProfile.Feature NonPopupAnnotationPrintFlagNotSet
        The PDF contains a non-popup Annotation that is set not to print. This is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, then any matching annotations will be set as printable (not part of basic profile).
        Since:
        2.6.7
      • PopupAnnotationPrintFlagNotSet

        public static final OutputProfile.Feature PopupAnnotationPrintFlagNotSet
        The PDF contains a popup annotation that is set not to print. This is not allowed in PDF/A-1 but is allowed in PDF-A2 and 3. If this feature is denied when the OutputProfile is applied, then any matching annotations will be set as printable (not part of basic profile).
        Since:
        2.14.1
      • AnnotationHiddenFlagSet

        public static final OutputProfile.Feature AnnotationHiddenFlagSet
        The PDF contains an Annotation that is hidden. This is not allowed in PDF/A If this feature is denied when the OutputProfile is applied, then any matching annotations will be removed (not part of basic profile).
        Since:
        2.6.7
      • AnnotationInvisibleFlagSet

        public static final OutputProfile.Feature AnnotationInvisibleFlagSet
        The PDF contains an Annotation that is invisible. This is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, then any matching annotations will be set to visible (not part of basic profile).
        Since:
        2.6.7
      • AnnotationNoViewFlagSet

        public static final OutputProfile.Feature AnnotationNoViewFlagSet
        The PDF contains an Annotation that has the NoView flag set. This is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, then any matching annotations will be set to viewable (not part of basic profile).
        Since:
        2.6.7
      • AnnotationToggleNoViewFlagSet

        public static final OutputProfile.Feature AnnotationToggleNoViewFlagSet
        The PDF contains an Annotation that has the ToggleNoView flag set. This is not allowed in PDF/A-2. If this feature is denied when the OutputProfile is applied, then any matching annotations will be set to viewable (not part of basic profile).
        Since:
        2.14.1
      • AnnotationNoteNoZoomFlagNotSet

        public static final OutputProfile.Feature AnnotationNoteNoZoomFlagNotSet
        The PDF contains a Note Annotation that does not have the NoZoom flag set. This is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, then any matching annotations will have this flag removed (not part of basic profile).
        Since:
        2.6.7
      • AnnotationPositionLockedFlagSet

        public static final OutputProfile.Feature AnnotationPositionLockedFlagSet
        The PDF contains an Annotation that has it's "position locked" flag set
        Since:
        2.27.2
      • AnnotationContentLockedFlagSet

        public static final OutputProfile.Feature AnnotationContentLockedFlagSet
        The PDF contains an Annotation that has it's "content locked" flag set
        Since:
        2.27.2
      • AnnotationNoteNoRotateFlagNotSet

        public static final OutputProfile.Feature AnnotationNoteNoRotateFlagNotSet
        The PDF contains a Note Annotation that does not have the NoRotate flag set. This is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, then any matching annotations will have this flag removed (not part of basic profile).
        Since:
        2.6.7
      • FieldFlags14

        public static final OutputProfile.Feature FieldFlags14
        The PDF contains a Form Field with flags first defined in PDF 1.4. This doesn't matter in any way, it's simply to help the BFO Library set the correct PDF version when writing.
        Since:
        2.27.2
      • FieldFlags15

        public static final OutputProfile.Feature FieldFlags15
        The PDF contains a Form Field with flags first defined in PDF 1.5. This doesn't matter in any way, it's simply to help the BFO Library set the correct PDF version when writing.
        Since:
        2.27.2
      • AnnotationWithUnpredictableAppearance

        public static final OutputProfile.Feature AnnotationWithUnpredictableAppearance
        The PDF contains an Annotation with multiple appearance streams, or an annotation which doesn't have the required "normal" appearance. It's appearance is therefore unpredictable, which is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, then if possible any matching annotations will have any appearance streams other than "N" removed (not part of basic profile).
        Since:
        2.6.7
      • AnnotationWithMissingAppearance

        public static final OutputProfile.Feature AnnotationWithMissingAppearance
        The PDF contains an Annotation with no appearance stream at all, and it's a required type. This was split from AnnotationWithUnpredictableAppearance in version 2.24.2 to deal with a subtle difference between PDF/A-1 and A-2/3/4. This is not allowed in PDF/A-2 or later. (not part of basic profile).
        Since:
        2.26
      • AnnotationTransparent

        public static final OutputProfile.Feature AnnotationTransparent
        The PDF defined an Annotation that is partially Transparent. This is new in PDF 2.0. Note this is different to an annotation that contain transparent content (not part of basic profile)
        Since:
        2.24.3
        See Also:
        AnnotationTransparentContent, AnnotationBlendMode
      • AnnotationBlendMode

        public static final OutputProfile.Feature AnnotationBlendMode
        The PDF contains an Annotation that specifies a blend-mode other than Normal. This is new in PDF 2.0. (not part of basic profile)
        Since:
        2.24.3
        See Also:
        AnnotationTransparent
      • PushButtonAppearanceIsStream

        public static final OutputProfile.Feature PushButtonAppearanceIsStream

        The PDF contains a push-button annotation with an N entry that is a Stream. This is allowed in PDF/A-1, not allowed in PDF/A-2 or 3, but is normal in PDF. (not part of basic profile).

        Opinion

        Pushbuttons and Radio-buttons are implemented with the same object in PDF, but constructed in a slightly different manner. PDF/A-1 placed restrictions on how these were constructed that was intended to mirror best practice for how push-buttons were created, but which also caught radio-buttons in the same definition. Consequently it was impossible to create a functioning radio button in the original revision of PDF/A-1.

        This was revised for PDF/A-1 in TN0010 (and unchanged for PDF/A-2 and later), but unfortunately the reverse happened: the two were not distinguished, and the spec now required pushbuttons to be constructed like radio-buttons. Unlike the original requirement it's technically possible to do this, and the resulting PDF can be displayed in Acrobat and our viewer, but it's very non-standard and may not work everywhere.

        Acrobat XI will enforce the specification exactly as written, and documents with standard push-button fields are marked as invalid. Attempting to "fix" this in Acrobat will delete the button completely, although as a button in PDF/A is not allowed to have any actions associated with it this is arguably a sensible course of action.

        We will also enforce the specification in this way for PDF/A-1 and later, even though it's nonsensical. So when creating a PDF with a form for archiving PDFs you have three options:
        1. Normal best practice: Push buttons have a stream, radio buttons have a dictionary, so PushButtonAppearanceIsStream and RadioButtonAppearanceIsDictionary are set.
        2. PDF/A-1, 2 and 3: RadioButtonAppearanceIsDictionary is OK but PushButtonAppearanceIsStream is disallowed. Push buttons are possible but must be created in a non-standard manner.
        We don't repair these features by default, but you do have this option by setting the RadioButtonAppearanceIsDictionary feature feature to required on the profile. This will attempt to convert the structures into a form that is acceptable to PDF/A, although the document may not render correctly. A better option is always to delete the field, but this cannot be done automatically.
        Since:
        2.14.1
      • PushButtonAppearanceIsDictionary

        public static final OutputProfile.Feature PushButtonAppearanceIsDictionary
        The PDF contains a push-button annotation with an N entry that is a Dictionary containing a Stream. This is not allowed in PDF/A-1, allowed in PDF/A-2 and 3 but is not normal in PDF. (not part of basic profile).
        Since:
        2.14.1
        See Also:
        PushButtonAppearanceIsStream
      • RadioButtonAppearanceIsStream

        public static final OutputProfile.Feature RadioButtonAppearanceIsStream
        The PDF contains a radio-button or checkbox annotation with an N entry that is a Stream. This is allowed in PDF/A-1, not allowed in PDF/A-2 or 3 and is not normal in PDF. (not part of basic profile).
        Since:
        2.14.1
        See Also:
        PushButtonAppearanceIsStream
      • RadioButtonAppearanceIsDictionary

        public static final OutputProfile.Feature RadioButtonAppearanceIsDictionary
        The PDF contains a radio-button or checkbox annotation with an N entry that is a Dictionary containing a Stream. This is not allowed in PDF/A-1, allowed in PDF/A-2 and 3 and is normal in PDF. (not part of basic profile).
        Since:
        2.14.1
        See Also:
        PushButtonAppearanceIsStream
      • NonRectangularAnnotation

        public static final OutputProfile.Feature NonRectangularAnnotation
        The PDF contains a Link, Markup or Redact annotation with a non-rectangular shape (not part of basic profile). These were added in Acrobat 7.0 and may not be compatible with earlier versions
        Since:
        2.11.6
      • InheritedResource

        public static final OutputProfile.Feature InheritedResource
        The PDF referencea a resource (such as a font, image or XObject) which is inherited from a parent context. This is disallowed in PDF/A (not part of basic profile)
        Since:
        2.20.1
      • MissingResource

        public static final OutputProfile.Feature MissingResource
        The PDF references a resource from a Content Stream which is missing. This is very common, but usually indicates some kind of damage to the PDF and is explicitly disallowed in PDF/A-4
        Since:
        2.26.1
      • InheritedDefaultRGB

        public static final OutputProfile.Feature InheritedDefaultRGB
        The PDF references a DefaultRGB ColorSpace which is which is inherited from a parent context. This is disallowed in PDF/A (not part of basic profile)
        Since:
        2.20.1
      • InheritedDefaultCMYK

        public static final OutputProfile.Feature InheritedDefaultCMYK
        The PDF references a DefaultCMYK ColorSpace which is which is inherited from a parent context. This is disallowed in PDF/A (not part of basic profile)
        Since:
        2.20.1
      • InheritedDefaultGray

        public static final OutputProfile.Feature InheritedDefaultGray
        The PDF references a DefaultGray ColorSpace which is which is inherited from a parent context. This is disallowed in PDF/A (not part of basic profile)
        Since:
        2.20.1
      • EmbeddedFiles

        public static final OutputProfile.Feature EmbeddedFiles
        The PDF has Embedded Files attached to it, either via the "EmbeddedFiles" nametree on the Catalog, as an Annotation, or through one of the "AF" keys added in PDF 2.0 If this feature is denied when an OutputProfile is applied, then any Embedded files will be removed. If this feature is required (as it is for PDF/A-4f) and the the AssociatedFileNotEmbedded feature is also required, then all AssociatedFiles in the PDF will be added to this map or if there are none, the PDF profile will be changed from PDF/A-4f to PDF/A-4. If this condition isn't required then we'll simply create an empty EmbeddedFile map. (Not part of basic profile).
        See Also:
        OutputProfile.Feature#EmbeddedFileNotAssociated, AssociatedFileNotEmbedded
      • AssociatedFileOnPage

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnPage
        The PDF has Embedded Files attached to a PDFPage through the "AF" key added in PDF 2.0 If this feature is denied when an OutputProfile is applied, then any Embedded files attached this way will be removed (Not part of basic profile).
        Since:
        2.20.1
      • AssociatedFileOnXObject

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnXObject
        The PDF has Embedded Files attached to an XObject through the "AF" key added in PDF 2.0 (Not part of basic profile).
        Since:
        2.20.1
      • AssociatedFileOnStructElem

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnStructElem
        The PDF has Embedded Files attached to a StructureElement through the "AF" key added in PDF 2.0 (Not part of basic profile).
        Since:
        2.20.1
      • AssociatedFileOnAnnotation

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnAnnotation
        The PDF has Embedded Files attached to an Annotation through the "AF" key added in PDF 2.0 (Not part of basic profile).
        Since:
        2.20.1
      • AssociatedFileOnMarkedContentSequence

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnMarkedContentSequence
        The PDF has Embedded Files attached to a marked-content sequence in a page or XObject through the "AF" key added in PDF 2.0 (Not part of basic profile).
        Since:
        2.26
      • AssociatedFileOnDPart

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnDPart
        The PDF has Embedded Files attached to PDF 2.0 "Document Part" (DPart). (Not part of basic profile).
        Since:
        2.26
      • AssociatedFileOnUnknown

        public static final org.faceless.pdf2.OutputProfile.Feature.EmbeddedFileFeature AssociatedFileOnUnknown
        The PDF has Embedded Files attached to an unspecified object. (Not part of basic profile).
        Since:
        2.26
      • EmbeddedFileNotPDF

        public static final OutputProfile.Feature EmbeddedFileNotPDF
        The PDF contains an embedded file that is not a PDF. This is not allowed in PDF/A-2. (not part of basic profile)
        Since:
        2.24.3
      • EmbeddedFileNotPDFA

        public static final OutputProfile.Feature EmbeddedFileNotPDFA
        The PDF contains an embedded file that does not conform to PDF/A (any revision). This is not allowed in PDF/A-2. (not part of basic profile)
        Since:
        2.14.1
      • EmbeddedFileNotFacturXApproved

        public static final OutputProfile.Feature EmbeddedFileNotFacturXApproved
        The PDF contains an embedded file that is not one of the types allowed in Factur-X; it's not PDF, TXT, GIF, TIFF, JPG, CSV, XML or JSON. This is not allowed in Factur-X profiles. (not part of basic profile)
        Since:
        2.24.3
      • EmbeddedFilePDFA1

        public static final OutputProfile.Feature EmbeddedFilePDFA1
        The PDF contains an embedded file that conforms to PDF/A-1.
        Since:
        2.24.3
      • EmbeddedFilePDFA2

        public static final OutputProfile.Feature EmbeddedFilePDFA2
        The PDF contains an embedded file that conforms to PDF/A-2.
        Since:
        2.24.3
      • EmbeddedFilePDFA3

        public static final OutputProfile.Feature EmbeddedFilePDFA3
        The PDF contains an embedded file that conforms to PDF/A-3.
        Since:
        2.24.3
      • EmbeddedFilePDFA4

        public static final OutputProfile.Feature EmbeddedFilePDFA4
        The PDF contains an embedded file that conforms to PDF/A-4.
        Since:
        2.24.3
      • EmbeddedFilePDFA4e

        public static final OutputProfile.Feature EmbeddedFilePDFA4e
        The PDF contains an embedded file that conforms to PDF/A-4e.
        Since:
        2.24.4
      • EmbeddedFilePDFA4f

        public static final OutputProfile.Feature EmbeddedFilePDFA4f
        The PDF contains an embedded file that conforms to PDF/A-4f.
        Since:
        2.24.4
      • EmbeddedFileWithoutName

        public static final OutputProfile.Feature EmbeddedFileWithoutName
        The PDF contains a File Specification which does not have the F key. This is required for embedded files in PDF/A-2 and A-3. (not part of basic profile)
        Since:
        2.14.1
      • EmbeddedFileWithoutDesc

        public static final OutputProfile.Feature EmbeddedFileWithoutDesc
        The PDF contains a File referenced from the EmbeddedFile map that does not contains a Description. This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • EmbeddedFileWithoutUnicodeName

        public static final OutputProfile.Feature EmbeddedFileWithoutUnicodeName
        The PDF contains a File Specification which does not have the F or UF key. This is required for embedded files in PDF/A-2 and A-3. (not part of basic profile)
        Since:
        2.14.1
      • EmbeddedFileWithoutEitherName

        public static final OutputProfile.Feature EmbeddedFileWithoutEitherName
        The PDF contains a File Specification which does not have either the F and UF keys.
        Since:
        2.24.4
      • EmbeddedFileWithoutAF

        public static final OutputProfile.Feature EmbeddedFileWithoutAF

        The PDF contains an EmbeddedFile with an AFRelationship key that is not referenced from an "AF" dictionary. The AF dictionary is new in PDF 2.0 and this is optional there, but required for PDF/A-3, and although the language is a bit woolly the current consensus is that if a file is referenced from the PDF, PDF/A-3 requires that the file be present in this dictionary.

        See also the AssociatedFileNotEmbedded feature, which covers the opposite situation. (not part of basic profile)

        Since:
        2.20.1
      • AssociatedFileNotEmbedded

        public static final OutputProfile.Feature AssociatedFileNotEmbedded
        The PDF contains an EmbeddedFile referenced from an AF dictionary, which is not referenced from the EmbeddedFiles dictionary of the PDF. This is perfectly valid in all profiles - Files referenced this way can only be accessed by retrieving the OutputProfile of the PDF and calling OutputProfile.getAssociatedFiles(). Setting this feature to denied will ensure that all missing files are added to the EmbeddedFile catalog (not part of basic profile)
        Since:
        2.20.1
        See Also:
        EmbeddedFiles, OutputProfile.Feature#EmbeddedFileNotAssociated
      • EmbeddedFileWithoutAFRelationship

        public static final OutputProfile.Feature EmbeddedFileWithoutAFRelationship
        The PDF contains a File Specification which does not have the AFRelationship key. This is required for embedded files in PDF/A-3. (not part of basic profile)
        Since:
        2.14.1
      • AnnotationFileWithoutAFRelationship

        public static final OutputProfile.Feature AnnotationFileWithoutAFRelationship
        The PDF contains a File Specification referenced from a File Annotation which does not have the AFRelationship key. This is a specific subset of the test defined by EmbeddedFileWithoutAFRelationship. This is disallowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • EmbeddedFileWithoutSubtype

        public static final OutputProfile.Feature EmbeddedFileWithoutSubtype
        The PDF contains an embedded file which does not have the Subtype key. This is required for embedded files in PDF/A-3. (not part of basic profile)
        Since:
        2.14.1
      • EmbeddedFileSubtypeNotContentType

        public static final OutputProfile.Feature EmbeddedFileSubtypeNotContentType
        The PDF contains an embedded file for which the Subtype is not a MIME content-type. This is required for embedded files in PDF/A-3. (not part of basic profile)
        Since:
        2.14.1
      • EmbeddedFileWithoutParams

        public static final OutputProfile.Feature EmbeddedFileWithoutParams
        The PDF contains an embedded file which does not have the Params key. This is required for embedded files in PDF/A-3. (not part of basic profile)
        Since:
        2.14.1
      • EmbeddedFileWithoutModDate

        public static final OutputProfile.Feature EmbeddedFileWithoutModDate
        The PDF contains an embedded file which does not have a modification date. This is required for embedded files in PDF/A-3. (not part of basic profile)
        Since:
        2.14.1
      • MissingTrimAndArtBox

        public static final OutputProfile.Feature MissingTrimAndArtBox
        The PDF has pages missing both Art and Trim boxes (not part of basic profile). PDF/X requires exactly one of these boxes to be set for each page. If this feature is denied when an OutputProfile is applied, then a TrimBox equivalent to the CropBox will be created on pages that are missing one.
      • BothTrimAndArtBox

        public static final OutputProfile.Feature BothTrimAndArtBox
        The PDF has pages with both an Art and Trim boxes (not part of basic profile). PDF/X requires exactly one of these boxes to be set for each page. If this feature is denied when an OutputProfile is applied, then any pages with both boxes will have their ArtBox removed.
      • OptionalContent

        public static final OutputProfile.Feature OptionalContent
        The PDF has pages with optional content. PDF/X and PDF/A-1 do not allow optional content.
      • OptionalContentOffByDefault

        public static final OutputProfile.Feature OptionalContentOffByDefault
        The PDF has pages with optional content which is off in the default view.
        Since:
        2.20.3
      • OptionalContentProcessingStep

        public static final OutputProfile.Feature OptionalContentProcessingStep
        The PDF has pages with optional content that represent processing steps as defined in ISO19593. (not part of basic profile)
        Since:
        2.24.3
      • OptionalContentProcessingStepUnknown

        public static final OutputProfile.Feature OptionalContentProcessingStepUnknown
        The PDF has pages with optional content that represent processing steps but that is not defined in ISO19593 (not part of basic profile)
        Since:
        2.24.3
      • BadBoxNesting

        public static final OutputProfile.Feature BadBoxNesting
        The PDF has pages where the Boxes are nested incorrectly. PDF/X requires the Art and Trim boxes to be contained in the Crop and Bleed boxes (if specified). (not part of basic profile).
      • PageTemplates

        public static final OutputProfile.Feature PageTemplates
        The PDF has Page Templates - named pages which are not visibile in the document, but which can be used to create other pages dynamically using JavaScript.
        Since:
        2.11.19
      • FileBased

        public static final OutputProfile.Feature FileBased
        The PDF has been loaded from a File. The File is used as a backing store for the PDF contents, and must remain unmodified for the life of this object
        Since:
        2.16.2
      • FilterDamaged

        public static final OutputProfile.Feature FilterDamaged
        The PDF has streams compressed with a Filter, and one of those streams is damaged. Recovery may be possible. This is a specific variation on FileIsDamaged and usually applies to Flate compression
        Since:
        2.26.1
      • ImageDamaged

        public static final OutputProfile.Feature ImageDamaged
        The PDF has an image with a damaged stream - either the Filter is incorrect or there are too few bytes for the image. Recovery involves recompressing the image, appending zero bytes to the end if necessary. It's not explicitly stated in PDF/A that images must have enough data to be decoded, so it's an open question as to whether it is required in PDF/A or not - Acrobat requires it but other validators typically don't check.
        Since:
        2.27
      • FilterFlate

        public static final OutputProfile.Feature FilterFlate
        The PDF has streams compressed with Flate (not part of basic profile)
      • FilterCCITT

        public static final OutputProfile.Feature FilterCCITT
        The PDF has streams compressed with CCITT (not part of basic profile). If this feature is denied when an OutputProfile is applied, then any streams compressed with CCITT will be recompressed with Flate.
      • FilterASCII85

        public static final OutputProfile.Feature FilterASCII85
        The PDF has streams compressed with ASCII85 (not part of basic profile)
      • FilterASCIIHex

        public static final OutputProfile.Feature FilterASCIIHex
        The PDF has streams compressed with ASCIIHEX (not part of basic profile)
      • FilterRLE

        public static final OutputProfile.Feature FilterRLE
        The PDF has streams compressed with Run-Length encoding (not part of basic profile)
      • FilterLZW

        public static final OutputProfile.Feature FilterLZW
        The PDF has streams compressed with LZW encoding (not part of basic profile). If this feature is denied when an OutputProfile is applied, then any streams compressed with LZW will be recompressed with Flate.
      • FilterInlineFlate

        public static final OutputProfile.Feature FilterInlineFlate
        The PDF contains an inline-image which is compressed with Flate compression (not part of basic profile).
        Since:
        2.11.5
      • FilterInlineCCITT

        public static final OutputProfile.Feature FilterInlineCCITT
        The PDF contains an inline-image which is compressed with CCITT compression (not part of basic profile).
        Since:
        2.11.5
      • FilterInlineASCII85

        public static final OutputProfile.Feature FilterInlineASCII85
        The PDF contains an inline-image which is encoded with ASCII85 encoding (not part of basic profile).
        Since:
        2.11.5
      • FilterInlineASCIIHex

        public static final OutputProfile.Feature FilterInlineASCIIHex
        The PDF contains an inline-image which is encoded with ASCIIHex encoding (not part of basic profile).
        Since:
        2.11.5
      • FilterInlineRLE

        public static final OutputProfile.Feature FilterInlineRLE
        The PDF contains an inline-image which is compressed with run-length encoding (not part of basic profile).
        Since:
        2.11.5
      • FilterInlineLZW

        public static final OutputProfile.Feature FilterInlineLZW
        The PDF contains an inline-image which is compressed with LZW encoding (not part of basic profile).
        Since:
        2.11.5
      • FilterInlineDCT

        public static final OutputProfile.Feature FilterInlineDCT
        The PDF contains an inline-image which is compressed with DCT (JPEG) encoding (not part of basic profile).
        Since:
        2.11.5
      • FFilter

        public static final OutputProfile.Feature FFilter
        The PDF has streams with external file filters and are not allowed in PDF/A or PDF/X-4 and later (not part of basic profile)
        Since:
        2.6.7
      • FilterDCT

        public static final OutputProfile.Feature FilterDCT
        The PDF has streams compressed with Discrete cosine (JPEG) encoding (not part of basic profile)
      • FilterJPX

        public static final OutputProfile.Feature FilterJPX
        The PDF has streams compressed with JPEG-2000 encoding (not part of basic profile) If this feature is denied when an OutputProfile is applied, then any streams compressed with JPX will be recompressed with Flate.
      • FilterJBIG2

        public static final OutputProfile.Feature FilterJBIG2
        The PDF has streams compressed with JBIG2 encoding (not part of basic profile). Since 2.6.9, if this feature is required and a 3rd party JBIG2 encoder is present, new images that would otherwise be compressed with CCITT are compressed with JBIG2. If the RegularCompression attribute is set then all existing CCITT streams will be recompressed with JBIG2. Alternatively, if this feature is denied any existing JBIG2 images will be recompressed with CCITT. See http://bfo.com/products/pdf/jbig2/ for more information.
      • FilterNoneOnLargeStream

        public static final OutputProfile.Feature FilterNoneOnLargeStream
        The PDF has large uncompressed streams (not part of basic profile). This indicates that the PDF may not have been fully compressed and could benefit from recompression. In this case "large" means 400 bytes.
      • FilterUnknown

        public static final OutputProfile.Feature FilterUnknown
        The PDF contains a stream with a non-standard filter, which will be unreadable. This is not allowed in PDF/A-2 (not part of basic profile).
        Since:
        2.14.1
      • FilterAlias

        public static final OutputProfile.Feature FilterAlias
        The PDF contains a stream with a standard filter but using a non-standard nanme, which is disallowed but repairable in PDF/A-2 or later (not part of basic profile).
        Since:
        2.26
      • ImageDepth1

        public static final OutputProfile.Feature ImageDepth1
        The PDF contains 1-bit images (not part of basic profile)
      • ImageDepth2

        public static final OutputProfile.Feature ImageDepth2
        The PDF contains 2-bit images (not part of basic profile)
      • ImageDepth4

        public static final OutputProfile.Feature ImageDepth4
        The PDF contains 4-bit images (not part of basic profile)
      • ImageDepth8

        public static final OutputProfile.Feature ImageDepth8
        The PDF contains 8-bit images (not part of basic profile)
      • ImageDepth16

        public static final OutputProfile.Feature ImageDepth16
        The PDF contains 16-bit images (not part of basic profile). 16-bit images were added in Acrobat 6.0 and are not accepted by PDF/X
      • ImageTransparency

        public static final OutputProfile.Feature ImageTransparency
        The PDF contains images with Transparency (not part of basic profile). Transparency was added in Acrobat 5.0 and will not work in viewers prior to that. It is not acceptable in PDF/X.
      • ComplexBlendMode

        public static final OutputProfile.Feature ComplexBlendMode
        The PDF contains content to be composited using a blend mode other than Normal, that may introduce transparency effects (not part of basic profile). This is not acceptable in PDF/A-1.
      • UnknownBlendMode

        public static final OutputProfile.Feature UnknownBlendMode
        The PDF specifies an unknown blend mode. This is not allowed in PDF/A-2 (not part of basic profile).
        Since:
        2.14.1
      • CMYKJPEG

        public static final OutputProfile.Feature CMYKJPEG
        The PDF contains CMYK JPEG images (not part of basic profile). The standard java.awt methods do not parse CMYK JPEG images, and so these will not display correctly with this library prior to Java 1.4
      • FullPageImage

        public static final OutputProfile.Feature FullPageImage
        The PDF contains a full page image. In practice, due to rounding error an image is considered to cover the entire page if the difference between page and image size is less than 0.4% of the page size. There are ways to create a full-page image that will not be caught by this profile feature, and there may be pages with a full-page image and additional content, or a full-page image that is clipped to less than the full page, that set this flag. So it's a useful indication, but not a guarantee that a page contains a full-page image as might be generated by a scanner. (Not part of basic profile)
      • Encryption

        public static final OutputProfile.Feature Encryption
        The PDF is encrypted. Encryption is not allowed in PDF/X and PDF/A
      • Acrobat5Encryption

        public static final OutputProfile.Feature Acrobat5Encryption
        The PDF is encrypted with 128-bit encryption. This requires Acrobat 5.0 or later to load.
      • Acrobat6Encryption

        public static final OutputProfile.Feature Acrobat6Encryption
        The PDF is encrypted with 128-bit encryption and Acrobat 6.0 features. This requires Acrobat 6.0 or later to load
      • AESEncryption

        public static final OutputProfile.Feature AESEncryption
        The PDF is encrypted with AES encryption - the exact keylength is unspecified, but is assumed to be 128-bits unless AES256Encryption or WeakAES256Encryption is also set. This requires Acrobat 7.0 or later to load.
      • WeakAES256Encryption

        public static final OutputProfile.Feature WeakAES256Encryption
        The PDF is encrypted with the deprecated form of 256-bit AES encryption defined in ISO32000-1:2008 extension 3. It was briefly available in Acrobat 9.0, but removed in 9.1 after it was found the hash could be brute-forced in less time than the approach used in the 128-bit AES encryption available in Acrobat 7.0. This requires Acrobat 9.0 or later to load.
        Since:
        2.11.23
      • AES256Encryption

        public static final OutputProfile.Feature AES256Encryption
        The PDF is encrypted with 256-bit AES encryption. This requires Acrobat X or later to load.
        Since:
        2.11
      • AES256GCMEncryption

        public static final OutputProfile.Feature AES256GCMEncryption
        The PDF is encrypted with 256-bit AES encryption in GCM mode. This is defined in ISO32003
        Since:
        2.28.5
      • PublicKeyEncryption

        public static final OutputProfile.Feature PublicKeyEncryption
        The PDF is encrypted with a Public Key. This requires Acrobat 5.0 or later to load.
        Since:
        2.7.1
      • ColorSpaceICC

        public static final OutputProfile.Feature ColorSpaceICC
        The PDF uses an embedded ICC profile (not part of basic profile). This feature can be marked as Denied, in which case all GrayScale and RGB ICC profiles will be approximated by a calibrated equivalent if possible. This can reduce the size of the PDF, although with less accurate results. Note the sRGB profile used by default is always approximated.
      • ICCProfileVersionUnknown

        public static final OutputProfile.Feature ICCProfileVersionUnknown
        The PDF uses an embedded ICC profile with an unknown version number. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion43

        public static final OutputProfile.Feature ICCProfileVersion43
        The PDF uses an embedded ICC profile version 4.3, as defined in both ICC.1:2010-12 and ISO15076-1:2010. Although this was published several years after PDF 1.7(ISO32000-1:2008), it has been decided that specification, and by extension PDF/A-2, A-3 and X-4, are compatible with this version. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion42

        public static final OutputProfile.Feature ICCProfileVersion42
        The PDF uses an embedded ICC profile version 4.2, as defined in ICC.1:2004-4, aka ISO15076-1:2005. This was not supported until PDF 1.7, although it is part of PDF/X-4. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion41

        public static final OutputProfile.Feature ICCProfileVersion41
        The PDF uses an embedded ICC profile version 4.1, as defined in ICC.1:2003-09. This was not supported until PDF 1.6. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion40

        public static final OutputProfile.Feature ICCProfileVersion40
        The PDF uses an embedded ICC profile version 4.0, as defined in ICC.1:2001-12. This was not supored until PDF 1.5. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion24

        public static final OutputProfile.Feature ICCProfileVersion24
        The PDF uses an embedded ICC profile version 2.4, as defined in ICC.1:2001-04. This was not supported until PDF 1.5, but is explicitly allowed in PDF/A-1 (PDFA TN0010/A013) (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion23

        public static final OutputProfile.Feature ICCProfileVersion23
        The PDF uses an embedded ICC profile at or prior to version 2.3, as defined in ICC.1A:1999-04. This was not supported until PDF 1.4. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion22

        public static final OutputProfile.Feature ICCProfileVersion22
        The PDF uses an embedded ICC profile version 2.2, as defined in ICC.1A:1998-09. This was not supported until PDF 1.4. (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion21

        public static final OutputProfile.Feature ICCProfileVersion21
        The PDF uses an embedded ICC profile version 2.1, as defined in ICC 3.3 (not part of basic profile).
        Since:
        2.24.3
      • ICCProfileVersion20

        public static final OutputProfile.Feature ICCProfileVersion20
        The PDF uses an embedded ICC profile version 2.0, as defined in ICC 3.0 (not part of basic profile).
        Since:
        2.24.3
      • ICCProfile3144

        public static final OutputProfile.Feature ICCProfile3144
        The PDF contains a particular version of the sRGB ColorProfile that is known to cause issues with Acrobat. Denying this feature will replace it with an equivalent profile that has a different signature.
        Since:
        2.26.3
      • ICCProfileNotValidForPDF

        public static final OutputProfile.Feature ICCProfileNotValidForPDF
        The PDF contains an OutputIntent which is not valid for PDF. PDF profiles must have a class of prtr,mntr,scnr or spac, and a type of GRAY, RGB, CMYK or Lab
        Since:
        2.23
      • ICCProfileNotOutput

        public static final OutputProfile.Feature ICCProfileNotOutput
        The PDF contains an OutputIntent with an embedded ICC profile that's not an Output (class=prtr) ICC Profile. This isn't allowed for PDF/X.
        Since:
        2.11.5
      • ICCProfileNotOutputOrDisplay

        public static final OutputProfile.Feature ICCProfileNotOutputOrDisplay
        The PDF contains an OutputIntent with an embedded ICC profile that's not an Output (class=prtr) or Display (class=mntr) ICC Profile. This isn't allowed for PDF/A-2 and later.
        Since:
        2.14.1
      • ICCProfileUnusualColorSpace

        public static final OutputProfile.Feature ICCProfileUnusualColorSpace
        The PDF contains an OutputIntent with an embedded ICC profile that's not Gray, RGB or CMYK. This isn't valid in PDF, either in the PDF body or as the OutputIntent for PDF/A-2 or later. In particular, Lab and XYZ spaces are explicitly excluded.
        Since:
        2.14.1
      • ICCProfileBadColorComponentCount

        public static final OutputProfile.Feature ICCProfileBadColorComponentCount
        The PDF contains an ICC ColorProfile where the specified number of Colors does not match the actual number specified by the profile (not part of basic profile). This is not allowed in PDF/A or PDF/X
        Since:
        2.11.6
      • ColorSpaceDeviceGray

        public static final OutputProfile.Feature ColorSpaceDeviceGray
        The PDF uses the DeviceGray colorspace (not part of basic profile)
      • ColorSpaceDeviceRGB

        public static final OutputProfile.Feature ColorSpaceDeviceRGB
        The PDF uses the DeviceRGB colorspace (not part of basic profile)
      • ColorSpaceDeviceCMYK

        public static final OutputProfile.Feature ColorSpaceDeviceCMYK
        The PDF uses the DeviceCMYK colorspace (not part of basic profile)
      • AnnotationColorSpaceDeviceGray

        public static final OutputProfile.Feature AnnotationColorSpaceDeviceGray
        The PDF uses the DeviceGray colorspace in an Annotation (not part of basic profile)
        Since:
        2.26
      • AnnotationColorSpaceDeviceRGB

        public static final OutputProfile.Feature AnnotationColorSpaceDeviceRGB
        The PDF uses the DeviceRGB colorspace in an Annotation (not part of basic profile)
        Since:
        2.26
      • AnnotationColorSpaceDeviceCMYK

        public static final OutputProfile.Feature AnnotationColorSpaceDeviceCMYK
        The PDF uses the DeviceCMYK colorspace in an Annotation (not part of basic profile)
        Since:
        2.26
      • AltColorSpaceDeviceGray

        public static final OutputProfile.Feature AltColorSpaceDeviceGray
        The PDF uses a Separation colorspace with a DeviceGray alternate (not part of basic profile).
      • AltColorSpaceDeviceRGB

        public static final OutputProfile.Feature AltColorSpaceDeviceRGB
        The PDF uses a Separation colorspace with a DeviceRGB alternate (not part of basic profile).
      • AltColorSpaceDeviceCMYK

        public static final OutputProfile.Feature AltColorSpaceDeviceCMYK
        The PDF uses a Separation colorspace with a DeviceCMYK alternate* (not part of basic profile).
      • ColorSpaceDeviceGrayInMatchingParent

        public static final OutputProfile.Feature ColorSpaceDeviceGrayInMatchingParent
        The PDF uses the DeviceGray colorspace, either directly or as an alternate or process mixing space for a DeviceN Colorspace, and the element using the colorspace has a calibrated RGB blending ColorSpace set (not part of basic profile).
        Since:
        2.26.1
      • AnnotationColorSpaceDeviceGrayInMatchingParent

        public static final OutputProfile.Feature AnnotationColorSpaceDeviceGrayInMatchingParent
        The PDF uses the DeviceGray colorspace within an annotation, either directly or as an alternate or process mixing space for a DeviceN Colorspace, and the element using the colorspace has a calibrated RGB blending ColorSpace set (not part of basic profile).
        Since:
        2.26.1
      • ColorSpaceDeviceRGBInMatchingParent

        public static final OutputProfile.Feature ColorSpaceDeviceRGBInMatchingParent
        The PDF uses the DeviceRGB colorspace, either directly or as an alternate or process mixing space for a DeviceN Colorspace, and the element using the colorspace has a calibrated RGB blending ColorSpace set (not part of basic profile).
        Since:
        2.26.1
      • AnnotationColorSpaceDeviceRGBInMatchingParent

        public static final OutputProfile.Feature AnnotationColorSpaceDeviceRGBInMatchingParent
        The PDF uses the DeviceRGB colorspace within an annotation, either directly or as an alternate or process mixing space for a DeviceN Colorspace, and the element using the colorspace has a calibrated RGB blending ColorSpace set (not part of basic profile).
        Since:
        2.26.1
      • ColorSpaceDeviceCMYKInMatchingParent

        public static final OutputProfile.Feature ColorSpaceDeviceCMYKInMatchingParent
        The PDF uses the DeviceCMYK colorspace, either directly or as an alternate or process mixing space for a DeviceN Colorspace, and the element using the colorspace has a calibrated CMYK blending ColorSpace set (not part of basic profile).
        Since:
        2.26.1
      • AnnotationColorSpaceDeviceCMYKInMatchingParent

        public static final OutputProfile.Feature AnnotationColorSpaceDeviceCMYKInMatchingParent
        The PDF uses the DeviceCMYK colorspace within an annotation, either directly or as an alternate or process mixing space for a DeviceN Colorspace, and the element using the colorspace has a calibrated CMYK blending ColorSpace set (not part of basic profile).
        Since:
        2.26.1
      • ColorSpaceCalGray

        public static final OutputProfile.Feature ColorSpaceCalGray
        The PDF uses a calibrated Grayscale colorspace (not part of basic profile)
      • ColorSpaceCalRGB

        public static final OutputProfile.Feature ColorSpaceCalRGB
        The PDF uses a calibrated RGB colorspace (not part of basic profile)
      • ColorSpaceDeviceN

        public static final OutputProfile.Feature ColorSpaceDeviceN
        The PDF uses a Device-N colorspace (not part of basic profile)
      • ColorSpaceNChannel

        public static final OutputProfile.Feature ColorSpaceNChannel
        The PDF uses an N-Channel colorspace (not part of basic profile)
        Since:
        2.14.1
      • ColorSpaceSeparation

        public static final OutputProfile.Feature ColorSpaceSeparation
        The PDF uses a Separation colorspace (not part of basic profile). Also known as a Spot Color
      • ColorSpaceIndexed

        public static final OutputProfile.Feature ColorSpaceIndexed
        The PDF uses an Indexed colorspace (not part of basic profile).
      • ColorSpaceLab

        public static final OutputProfile.Feature ColorSpaceLab
        The PDF uses a CIE L*a*b* colorspace (not part of basic profile).
      • ColorSpacePattern

        public static final OutputProfile.Feature ColorSpacePattern
        The PDF uses a Pattern colorspace (not part of basic profile).
      • AltColorSpaceCalRGB

        public static final OutputProfile.Feature AltColorSpaceCalRGB
        The PDF uses a Separation colorspace with a Calibrated RGB alternate (not part of basic profile).
      • AltColorSpaceCalGray

        public static final OutputProfile.Feature AltColorSpaceCalGray
        The PDF uses a Separation colorspace with a Calibrated Grayscale alternate (not part of basic profile).
      • AltColorSpaceLab

        public static final OutputProfile.Feature AltColorSpaceLab
        The PDF uses a Separation colorspace with a L*a*b* alternate (not part of basic profile).
      • AltColorSpaceICC

        public static final OutputProfile.Feature AltColorSpaceICC
        The PDF uses a Separation colorspace with an ICC alternate (not part of basic profile).
      • JPXColorSpaceJab

        public static final OutputProfile.Feature JPXColorSpaceJab
        The PDF contains a JPX stream that uses the CIEJab ColorSpace. This is not allowed in PDF/A-2 or PDF/X-4 and later (not part of basic profile).
        Since:
        2.14.1
      • JPXNotBaseline

        public static final OutputProfile.Feature JPXNotBaseline
        The PDF contains a JPX stream that is does not meet the "baseline" requirements for JPX in PDF. Specifically this tests for the following:
        • uses a ColorSpace not defined in the JPX baseline.
        • uses a ColorSpace that's not 1, 3 or 4 components
        • uses multiple ColorSpaces
        • bit depth > 38 bits, or all streams do not use the same depth
        This is not allowed in PDF/A-2 or PDF/X-4 and later (not part of basic profile).
        Since:
        2.14.1
      • JPXNotBaselineColr

        public static final OutputProfile.Feature JPXNotBaselineColr
        The PDF contains a JPX stream that would not meet the "baseline" requirements for JPX in PDF, but as its ColorSpace is overridden this should not be a concern. Whether it is actually a concern or not is currently (August 2022) an open issue. This feature identifies JPX streams, and if it is denied will fix the problem by recompressing the stream
        Since:
        2.27
      • JPXDepthNot8n

        public static final OutputProfile.Feature JPXDepthNot8n
        The PDF contains a JPX stream which ha a depth that is not 1, 8 or 16. This is not allowed in PDF/X-4 or later
        Since:
        2.24.3
      • CyanSeparation

        public static final OutputProfile.Feature CyanSeparation
        The PDF uses a Separation colorspace with an ink name of Cyan (not part of basic profile).
        Since:
        2.7.6
      • MagentaSeparation

        public static final OutputProfile.Feature MagentaSeparation
        The PDF uses a Separation colorspace with an ink name of Magenta (not part of basic profile).
        Since:
        2.7.6
      • YellowSeparation

        public static final OutputProfile.Feature YellowSeparation
        The PDF uses a Separation colorspace with an ink name of Yellow (not part of basic profile).
        Since:
        2.7.6
      • BlackSeparation

        public static final OutputProfile.Feature BlackSeparation
        The PDF uses a Separation colorspace with an ink name of Black (not part of basic profile).
        Since:
        2.7.6
      • RedGreenBlueSeparation

        public static final OutputProfile.Feature RedGreenBlueSeparation
        The PDF uses a Separation colorspace with an ink name of Red, Green or Blue. This is not recommended (not part of basic profile).
      • InconsistentColorantColorSpace

        public static final OutputProfile.Feature InconsistentColorantColorSpace
        The PDF contains an NChannel DeviceN colorspace which lists colorspaces for the individual Components, but the colorspace for those components is different to the colorspace of the parent colorspace. This is easily noticed in Acrobat when selecting "print preview" - there will be a visible color shift. It's not allowed in PDF/A-2 or later or PDF/X-4 or later. If denied, we repair it by removing the Components colorspace.
        Since:
        2.26.1
      • InconsistentColorantTransform

        public static final OutputProfile.Feature InconsistentColorantTransform
        The PDF contains an NChannel DeviceN colorspace which lists colorspaces for the individual Components, but the tint-trasform for those components gives different color values to the parent colorspace. This is easily noticed in Acrobat when selecting "print preview" - there will be a visible color shift. It's not allowed in PDF/A-2 or later or PDF/X-4 or later. If denied, we repair it by removing the Components colorspace.
        Since:
        2.26.1
      • UndefinedSeparation

        public static final OutputProfile.Feature UndefinedSeparation
        /** The PDF uses a DeviceN or N-Channel colorspace which does not define all the Colorants array for all its Spot colors. This is not allowed in PDF/X-4, PDF/A-2 or later (not part of basic profile)
        Since:
        2.14.1
      • RedefinedSeparation

        public static final OutputProfile.Feature RedefinedSeparation

        The PDF contains a page or canvas with two Separations (either on their own, or as part of the N-Channel Colorants list) that give different results. This is not allowed in PDF/X-4 and later, or PDF/A-4. Note while PDF/X-4 says they "should produce similar appearance", PDF/A-4 says they "shall have the same tintTransform and alternateSpace." We're using the tighter definition for PDF/X as well.

        Also note that one way for this test to fail is if the Separation is based on a DeviceCMYK profile and used on two different pages, each of which has a different "DefaultCMYK" profile set.

        (not part of basic profile).
        Since:
        2.14.1
      • RedefinedSeparationAllNone

        public static final OutputProfile.Feature RedefinedSeparationAllNone

        The PDF contains a page or canvas with two Separations called "All" or "None" (either on their own, or as part of the N-Channel Colorants list) that give different results. According to ISO32000 these two special Separations do not use the tintTransform and alternateSpace, but PDF/X-4 and PDF/A-2 and later do not make this exclusion, and for consistency the committee decided not to remedy this. So this feature exists and is denied in PDF/A-2 and X-4 and later.

        If denied, the repair process is slightly different to RedefinedSeparation in that the repair will always succeed - because by definition the tintTransform is ignored, it is simply set to anything.

        (not part of basic profile).
        Since:
        2.27
      • RepeatSeparation

        public static final OutputProfile.Feature RepeatSeparation
        The PDF contains a DeviceN colorspace that uses the separation name "All" or repeats the same separation. This is invalid for PDF/X-4 or PDF/A-2 and later revisions. (not part of basic profile)
        Since:
        2.24.3;
      • AnnotationColorTransparent

        public static final OutputProfile.Feature AnnotationColorTransparent
        The PDF uses an Annotation with a Transparent Color (not part of basic profile)
        Since:
        2.11.5
      • AnnotationColorDeviceGray

        public static final OutputProfile.Feature AnnotationColorDeviceGray
        The PDF uses an Annotation with a DeviceGray color (not part of basic profile)
        Since:
        2.11.5
      • AnnotationColorDeviceRGB

        public static final OutputProfile.Feature AnnotationColorDeviceRGB
        The PDF uses an Annotation with a DeviceRGB color (not part of basic profile)
        Since:
        2.11.5
      • AnnotationColorDeviceCMYK

        public static final OutputProfile.Feature AnnotationColorDeviceCMYK
        The PDF uses an Annotation with a DeviceCMYK color (not part of basic profile)
        Since:
        2.11.5
      • DeviceGrayWithRGBIntent

        public static final OutputProfile.Feature DeviceGrayWithRGBIntent
        The PDF contains a DeviceGray color but an RGB OutputIntent. This is not allowed with some profiles like PDF/A or PDF/X (not part of basic profile).
        Since:
        2.11.5
      • DeviceGrayWithCMYKIntent

        public static final OutputProfile.Feature DeviceGrayWithCMYKIntent
        The PDF contains a DeviceGray color but a CMYK OutputIntent. This is not allowed with some profiles like PDF/A or PDF/X (not part of basic profile).
        Since:
        2.11.5
      • DeviceGrayWithoutPDFAIntent

        public static final OutputProfile.Feature DeviceGrayWithoutPDFAIntent
        The PDF contains DeviceGray color and has no GTS_PDFA1 OutputIntent. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.26.1
      • DeviceGrayInMatchingParentWithRGBIntent

        public static final OutputProfile.Feature DeviceGrayInMatchingParentWithRGBIntent
        The PDF contains DeviceGray color in an element using a calibrated Gray blending Colorspace, and has an RGB OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceGrayInMatchingParentWithCMYKIntent

        public static final OutputProfile.Feature DeviceGrayInMatchingParentWithCMYKIntent
        The PDF contains DeviceGray color in an element using a calibrated Gray blending Colorspace, and has a CMYK OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceGrayInMatchingParentWithoutPDFAIntent

        public static final OutputProfile.Feature DeviceGrayInMatchingParentWithoutPDFAIntent
        The PDF contains DeviceGray color in an element using a calibrated Gray blending Colorspace, and has no GTS_PDFA1 OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceRGBWithGrayIntent

        public static final OutputProfile.Feature DeviceRGBWithGrayIntent
        The PDF contains a DeviceRGB color but a Gray OutputIntent. This is not allowed with some profiles like PDF/A or PDF/X (not part of basic profile).
        Since:
        2.11.5
      • DeviceRGBWithCMYKIntent

        public static final OutputProfile.Feature DeviceRGBWithCMYKIntent
        The PDF contains a DeviceRGB color but a CMYK OutputIntent. This is not allowed with some profiles like PDF/A or PDF/X (not part of basic profile).
        Since:
        2.11.5
      • DeviceRGBWithoutPDFAIntent

        public static final OutputProfile.Feature DeviceRGBWithoutPDFAIntent
        The PDF contains DeviceRGB color and has no GTS_PDFA1 OutputIntent. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.26.1
      • DeviceRGBInMatchingParentWithGrayIntent

        public static final OutputProfile.Feature DeviceRGBInMatchingParentWithGrayIntent
        The PDF contains DeviceRGB color in an element using a calibrated RGB blending Colorspace, and has a Gray OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceRGBInMatchingParentWithCMYKIntent

        public static final OutputProfile.Feature DeviceRGBInMatchingParentWithCMYKIntent
        The PDF contains DeviceRGB color in an element using a calibrated RGB blending Colorspace, and has a CMYK OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceRGBInMatchingParentWithoutPDFAIntent

        public static final OutputProfile.Feature DeviceRGBInMatchingParentWithoutPDFAIntent
        The PDF contains DeviceRGB color in an element using a calibrated RGB blending Colorspace, and has no GTS_PDFA1 OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceCMYKWithGrayIntent

        public static final OutputProfile.Feature DeviceCMYKWithGrayIntent
        The PDF contains a DeviceCMYK color but a Gray OutputIntent. This is not allowed with some profiles like PDF/A or PDF/X (not part of basic profile).
        Since:
        2.11.5
      • DeviceCMYKWithRGBIntent

        public static final OutputProfile.Feature DeviceCMYKWithRGBIntent
        The PDF contains a DeviceCMYK color but a RGB OutputIntent. This is not allowed with some calibrated profiles like PDF/A or PDF/X (not part of basic profile).
        Since:
        2.11.5
      • DeviceCMYKWithoutPDFAIntent

        public static final OutputProfile.Feature DeviceCMYKWithoutPDFAIntent
        The PDF contains DeviceCMYK color and has no GTS_PDFA1 OutputIntent. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.26.1
      • DeviceCMYKInMatchingParentWithGrayIntent

        public static final OutputProfile.Feature DeviceCMYKInMatchingParentWithGrayIntent
        The PDF contains DeviceCMYK color in an element using a calibrated CMYK blending Colorspace, and has a Gray OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceCMYKInMatchingParentWithRGBIntent

        public static final OutputProfile.Feature DeviceCMYKInMatchingParentWithRGBIntent
        The PDF contains DeviceCMYK color in an element using a calibrated CMYK blending Colorspace, and has a RGB OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • DeviceCMYKInMatchingParentWithoutPDFAIntent

        public static final OutputProfile.Feature DeviceCMYKInMatchingParentWithoutPDFAIntent
        The PDF contains DeviceCMYK color in an element using a calibrated CMYK blending Colorspace, and has no GTS_PDFA1 OutputIntent (not part of basic profile).
        Since:
        2.26.1
      • AnnotationColorMismatchesIntent

        public static final OutputProfile.Feature AnnotationColorMismatchesIntent
        The PDF contains an annotation that specifies a device color which doesn't match the OutputIntent. This was not previously allowed in PDF/A profiles, but clarification in https://github.com/pdf-association/pdf-issues/issues/34 means as of 2.27 this specifically refers to the requirement in PDF/A-1 only that if an annotation has a C or IC set, the output intent must be RGB and the color must be an RGB value. (not part of basic profile).
        Since:
        2.11.5
      • DeviceDependentColor

        public static final OutputProfile.Feature DeviceDependentColor
        The PDF contains device-dependent Color (not part of basic profile).
        Since:
        2.14.1
      • CMYKBlendingColorSpaceReferencedExplicitly

        public static final OutputProfile.Feature CMYKBlendingColorSpaceReferencedExplicitly
        The PDF sets a BlendingColorspace to a non-device ColorSpace, then references that ColorSpace explicitly. This is not allowed in PDF/A-4. (not part of basic profile).
        Since:
        2.26.1
      • CMYKOutputIntentColorSpaceReferencedExplicitly

        public static final OutputProfile.Feature CMYKOutputIntentColorSpaceReferencedExplicitly
        The PDF specifies a CMYK OutputIntent and also references the same (or an identical) color-space explicitly, as an ICC ColorSpace. This is not allowed in PDF/A-4, PDF/X-4 or later. (not part of basic profile)
        Since:
        2.24.3
      • FontStandard14

        public static final OutputProfile.Feature FontStandard14
        The PDF uses the Standard 14 fonts (not part of basic profile)
      • FontStandard14Invisible

        public static final OutputProfile.Feature FontStandard14Invisible
        The PDF uses the Standard 14 fonts to display invisible text (not part of basic profile)
        Since:
        2.26
      • FontCompactEmbedded

        public static final OutputProfile.Feature FontCompactEmbedded
        The PDF uses an embedded Compact font (not part of basic profile)
      • FontType1Embedded

        public static final OutputProfile.Feature FontType1Embedded
        The PDF uses an embedded Type-1 font (not part of basic profile)
      • FontTrueTypeEmbedded

        public static final OutputProfile.Feature FontTrueTypeEmbedded
        The PDF uses an embedded TrueType font (not part of basic profile)
      • FontOpenTypeEmbedded

        public static final OutputProfile.Feature FontOpenTypeEmbedded
        The PDF uses an embedded OpenType font (not part of basic profile)
      • FontType3

        public static final OutputProfile.Feature FontType3
        The PDF uses a Type 3 font (not part of basic profile)
      • FontMultipleMaster

        public static final OutputProfile.Feature FontMultipleMaster
        The PDF uses a Multiple-Master font (not part of basic profile)
      • FontType1PFB

        public static final OutputProfile.Feature FontType1PFB
        The PDF contains a Type1 font which is stored in PFB not PFA format. PFB is widely supported but technically disallowed by the spec. When this feature is denied, as it is in PDF/A, the font will be converted to PFA.
        Since:
        2.26.1
      • FontType1Unembedded

        public static final OutputProfile.Feature FontType1Unembedded
        The PDF uses an unembedded Type 1 font (not part of basic profile)
      • FontType1UnembeddedInvisible

        public static final OutputProfile.Feature FontType1UnembeddedInvisible
        The PDF uses an unembedded Type 1 font to display invisible text (not part of basic profile)
        Since:
        2.26
      • FontTrueTypeUnembedded

        public static final OutputProfile.Feature FontTrueTypeUnembedded
        The PDF uses an unembedded TrueType font (not part of basic profile)
      • FontTrueTypeUnembeddedInvisible

        public static final OutputProfile.Feature FontTrueTypeUnembeddedInvisible
        The PDF uses an unembedded TrueType font to display invisible text (not part of basic profile)
        Since:
        2.26
      • FontType1WithoutToUnicode

        public static final OutputProfile.Feature FontType1WithoutToUnicode
        The PDF uses a Type 1 font without a ToUnicode map (not part of basic profile). ToUnicode maps are particularly important with Type 1 fonts when extracting the text.
        Since:
        2.15.3
      • FontUnicodeUndefined

        public static final OutputProfile.Feature FontUnicodeUndefined
        The PDF contains a font which does not reliably map its glyphs to Unicode values. This test is defined in PDF/A-2 and is a requirement for PDF/A level 2 and 3 conformance levels "A" and "U", as well as for PDF/UA. Attempting to extract text from a PDF that sets this feature will likely result in nonsensical results (not part of basic profile).
        Since:
        2.20.1
        See Also:
        FontUnicodeUndefinedDueToToUnicodeCodeLength, FontUnicodeUndefinedDueToToDamagedCMap, FontUnicodeUnrecoverable
      • FontUnicodeUndefinedDueToToUnicodeCodeLength

        public static final OutputProfile.Feature FontUnicodeUndefinedDueToToUnicodeCodeLength
        The PDF contains a ToUnicode object which has a begincodespacerange that specifies the input values are 16-bit, but then uses 8-bit codes in the mapping. This is definitely invalid according to ISO32000: The CMap file shall contain begincodespacerange and endcodespacerange operators that are consistent with the encoding that the font uses. In particular, for a simple font, the codespace shall be one byte long.. However it is ignored by Acrobat and (currently) verapdf. It's quite common and easily repaired, which we'll normally do automatically.
        Since:
        2.26.1
        See Also:
        FontUnicodeUndefined
      • FontUnicodeUndefinedDueToDamagedCMap

        public static final OutputProfile.Feature FontUnicodeUndefinedDueToDamagedCMap
        The PDF contains text which we cannot convert to unicode values because the CMap is damaged somehow. We distinguish this feature from FontUnicodeUndefined because we can usually repair it. This test is defined in PDF/A-2 and is a requirement for PDF/A level 2 and 3 conformance levels "A" and "U", as well as for PDF/UA. Attempting to extract text from a PDF that sets this feature will likely result in nonsensical results (not part of basic profile).
        Since:
        2.26.1
        See Also:
        FontUnicodeUndefined
      • FontUnicodeUnrecoverable

        public static final OutputProfile.Feature FontUnicodeUnrecoverable
        The PDF contains text which we cannot convert to unicode values. This is similar to FontUnicodeUndefined, but while that feature reflects the exact requirements for PDF/A and PDF/UA, this feature is based on our own internal algorithm. If this feature is set it means text extracted from the PDF will contain content in the private use range.
        Since:
        2.26.1
        See Also:
        FontUnicodeUndefined
      • PrivateUseGlyphsWithoutActualText

        public static final OutputProfile.Feature PrivateUseGlyphsWithoutActualText
        The PDF contains text which include characters from the Unicode 'private use' range, but the actual value of this text is not defined with an ActualText element. This is disallowed in PDF/A-2 and PDF/A-3 conformance level A (not part of basic profile).
        Since:
        2.20.1
      • UnembeddedNonStandardSymbolicFont

        public static final OutputProfile.Feature UnembeddedNonStandardSymbolicFont
        The PDF contains an unembedded font which is marked as Symbolic and which is not one of the ones guaranteed to be available to Acrobat. If a font with the same name is not installed on the viewing machine, Acrobat will display a warning. (not part of basic profile).
        Since:
        2.16
      • FontType0

        public static final OutputProfile.Feature FontType0
        The PDF uses a Type 0 font (not part of basic profile). Type 0 fonts are made up of CID fonts.
      • CIDFontType1Embedded

        public static final OutputProfile.Feature CIDFontType1Embedded
        The PDF uses an embedded Type 1 CID font (not part of basic profile).
      • CIDSystemInfoAndCMapNotCompatible

        public static final OutputProfile.Feature CIDSystemInfoAndCMapNotCompatible
        The PDF contains a CID font where the CIDSystemInfo does not match the CMap dictionary. This is disallowed for PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.6.7
      • CIDSystemInfoAndCMapSupplementNotCompatible

        public static final OutputProfile.Feature CIDSystemInfoAndCMapSupplementNotCompatible
        The PDF contains a CID font where the CIDSystemInfo Supplement does not match the CMap dictionary. This is disallowed for PDF/A and PDF/UA (not part of basic profile). Split from in 2.28.2 as PDF/A-1 does not have this test, but A/2 and later doo
        Since:
        2.28.2
      • UnembeddedCMap

        public static final OutputProfile.Feature UnembeddedCMap
        The PDF contains a CID font with an unembedded CMap not listed in the PDF specification. This is disallowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.11.5
        See Also:
        UnembeddedStandardCMap
      • InvalidCMap

        public static final OutputProfile.Feature InvalidCMap
        The PDF contains a CID font with an embedded CMap which is invalid and cannot be read
        Since:
        2.26
      • UnembeddedStandardCMap

        public static final OutputProfile.Feature UnembeddedStandardCMap
        The PDF contains a CID font with an unembedded CMap listed in the PDF specification that does not reference the Adobe-GB1, Adobe-CNS1, Adobe-Japan1 or Adobe-Korea1 character collections. This is disallowed for PDF/A-1 (not part of basic profile).
        Since:
        2.14.1
        See Also:
        UnembeddedCMap
      • CMapReferenceNonStandard

        public static final OutputProfile.Feature CMapReferenceNonStandard
        The PDF contains a CID font with a CMap that references a CMap that is not listed in the PDF specification. This is disallowed for PDF/A-2 and later (not part of basic profile).
        Since:
        2.26.1
        See Also:
        UnembeddedCMap
      • CIDFontType1Unembedded

        public static final OutputProfile.Feature CIDFontType1Unembedded
        The PDF uses an unembedded Type 1 CID font (not part of basic profile).
      • CIDFontType1UnembeddedInvisible

        public static final OutputProfile.Feature CIDFontType1UnembeddedInvisible
        The PDF uses an unembedded Type 1 CID font on invisible text (not part of basic profile).
      • CIDFontTrueTypeEmbedded

        public static final OutputProfile.Feature CIDFontTrueTypeEmbedded
        The PDF uses an embedded TrueType CID font (not part of basic profile).
      • CIDFontTrueTypeUnembedded

        public static final OutputProfile.Feature CIDFontTrueTypeUnembedded
        The PDF uses an unembedded TrueType CID font (not part of basic profile). The fonts defined by StandardCJKFont are this type of font.
      • CIDFontTrueTypeUnembeddedInvisible

        public static final OutputProfile.Feature CIDFontTrueTypeUnembeddedInvisible
        The PDF uses an unembedded TrueType CID font on invisible text (not part of basic profile).
        Since:
        2.26
      • CIDFontTrueTypeUnembeddedWithoutToUnicode

        public static final OutputProfile.Feature CIDFontTrueTypeUnembeddedWithoutToUnicode
        The PDF uses an unembedded TrueType CID font without a ToUnicode mapping The fonts defined by StandardCJKFont are this type of font, and setting this feature to "denied" will ensure they are embedded with a ToUnicode mapping. (not part of basic profile).
        Since:
        2.26
      • CIDFontCompactEmbedded

        public static final OutputProfile.Feature CIDFontCompactEmbedded
        The PDF uses an embedded Compact CID font (not part of basic profile).
      • CIDFontOpenTypeEmbedded

        public static final OutputProfile.Feature CIDFontOpenTypeEmbedded
        The PDF uses an embedded OpenType CID font (not part of basic profile)
        Since:
        2.11.22
      • FontEmbeddingRestrictions

        public static final OutputProfile.Feature FontEmbeddingRestrictions
        The PDF embeds a font with embedding restrictions. This may imply licensing issues with the font. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
      • CMapEmbeddedWithInvalidWMode

        public static final OutputProfile.Feature CMapEmbeddedWithInvalidWMode
        The PDF contains a CMap that contains a non identical WMode integer entry (not part of basic profile). This is not allowed in PDF/A.
        Since:
        2.6.7
      • FontType1SubsetWithoutCharset

        public static final OutputProfile.Feature FontType1SubsetWithoutCharset
        The PDF embeds a Type1 font subset without a CharSet string. This is not allowed in PDF/A-1 (not part of basic profile).
        Since:
        2.6.7
      • FontType1SubsetWithIncompleteCharset

        public static final OutputProfile.Feature FontType1SubsetWithIncompleteCharset
        The PDF embeds a Type1 font subset with a CharSet string, but the CharSet string does not list all the glyphs defined in the font. This is not allowed in PDF/A-2, A-3 or UA-1, but is fine for PDF/A-4, PDF/UA-2 or ater (not part of basic profile)
        Since:
        2.18.3
      • FontType1SubsetWithAugmentedCharset

        public static final OutputProfile.Feature FontType1SubsetWithAugmentedCharset
        The PDF embeds a Type1 font subset with a CharSet string, but the CharSet string lists some glyphs which are not defined in the font. This is not allowed in PDF/A-2, A-3 or UA-1, but is fine for PDF/A-4, PDF/UA-2 or ater (not part of basic profile)
        Since:
        2.24.4
      • FontType1SubsetWithIncompleteUsedCharset

        public static final OutputProfile.Feature FontType1SubsetWithIncompleteUsedCharset
        The PDF embeds a Type1 font subset with a CharSet string, but the CharSet string does not list all the glyphs used in the font. This is not allowed in PDF/A-1.
        Since:
        2.28.2
        See Also:
        FontType1SubsetWithIncompleteCharset
      • FontType1SubsetWithAugmentedUsedCharset

        public static final OutputProfile.Feature FontType1SubsetWithAugmentedUsedCharset
        The PDF embeds a Type1 font subset with a CharSet string, but the CharSet string lists some glyphs which are not used in the font.
        Since:
        2.28.2
        See Also:
        FontType1SubsetWithAugmentedCharset
      • FontType1SubsetWithCharset

        public static final OutputProfile.Feature FontType1SubsetWithCharset
        The PDF embeds a Type1 font subset with a CharSet string. This feature makes no comments on the validity of that string. CharSet strings are deprecated in PDF 2.0, so this is not allowed in PDF/A-4 and PDF/UA-2
        Since:
        2.28
      • FontWidthsNotConsistent

        public static final OutputProfile.Feature FontWidthsNotConsistent
        The PDF embeds a font with inconsistent widths. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.6.7
      • NonSymbolicTrueTypeWithoutMacRomanOrWinAnsiEncoding

        public static final OutputProfile.Feature NonSymbolicTrueTypeWithoutMacRomanOrWinAnsiEncoding
        The PDF embeds a non-symbolic TrueType font without a MacRoman or WinAnsi Encoding. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.6.7
      • NonSymbolicTrueTypeWithoutPureMacRomanOrWinAnsiEncoding

        public static final OutputProfile.Feature NonSymbolicTrueTypeWithoutPureMacRomanOrWinAnsiEncoding
        The PDF embeds a non-symbolic TrueType font that is a valid variation on MacRoman or WinAnsi Encoding. This is not allowed in PDF/A-1 (not part of basic profile).
        Since:
        2.14.1
      • NonSymbolicTrueTypeWithoutCMap

        public static final OutputProfile.Feature NonSymbolicTrueTypeWithoutCMap
        The PDF embeds a non-symbolic TrueType font without a non-symbolic CMap. This is the "old" test, used prior to PDF/A-4 and PDF/UA-2 - specfically, it requires at least one CMap other than 1/0 or 3/0. This is not allowed in PDF/A-2 or later (not part of basic profile).
        Since:
        2.14.1
      • NonSymbolicTrueTypeWithoutCoreCMap

        public static final OutputProfile.Feature NonSymbolicTrueTypeWithoutCoreCMap
        The PDF embeds a non-symbolic TrueType font without a 1/0 or 3/1 CMap. This is the "new" test, used in PDF/A-4 and PDF/UA-2. This is not allowed in PDF/A-2 or later (not part of basic profile).
        Since:
        2.24.3
      • SymbolicTrueTypeWithEncodingEntry

        public static final OutputProfile.Feature SymbolicTrueTypeWithEncodingEntry
        The PDF embeds a symbolic TrueType font with an Encoding entry specified. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.6.7
      • SymbolicTrueTypeWithoutOneCMap

        public static final OutputProfile.Feature SymbolicTrueTypeWithoutOneCMap
        The PDF embeds a symbolic TrueType with more than one Encoding. This is not allowed in PDF/A (not part of basic profile).
        Since:
        2.6.7
      • SymbolicTrueTypeCMapAmbiguous

        public static final OutputProfile.Feature SymbolicTrueTypeCMapAmbiguous
        The PDF embeds a symbolic TrueType font with a single encoding, but that encoding is not 3/0. This is not allowed in PDF/A-2 and later (not part of basic profile).
        Since:
        2.14.1
      • SymbolicTrueTypeMissingSymbolicCMap

        public static final OutputProfile.Feature SymbolicTrueTypeMissingSymbolicCMap
        The PDF embeds a symboic TrueType font which does not have a 1/0 or 3/0 cmap. This is not allowed in PDF/A-4 and later (not part of basic profile)
        Since:
        2.24.3
      • TrueTypeIsTricky

        public static final OutputProfile.Feature TrueTypeIsTricky
        The PDF embeds a TrueType font which using the hinting program to shape the glyphs. There are only about twelve of these known, the main ones being MingLiu (and variations such as HA_MingLiU and PMingLiU) from 1995 and 1996 and DFKai-SB from 1998, both traditional Chinese fonts created by Dynalab, HuaTianKaiTi and HuaTianSongTi (simplified Chinese fonts by Huatian Information Industry) and some NEC Japanese fonts. Because our OpenType font parser does not use the hinting program we are unable to parse these fonts correctly, so even though they are embedded we will search the OS for a matching font, and when found will let the AWT render it - typically this will hand off to a native library which does parse the hinting program. Versions of our API prior to 2.16 did not handle these as well, and documents embedding these fonts may not have rendered correctly.
        Since:
        2.16
      • CIDFontSubsetWithoutCIDSet

        public static final OutputProfile.Feature CIDFontSubsetWithoutCIDSet
        The PDF embeds a subset CID font without a CIDSet string (not part of basic profile). This is not allowed in PDF/A.
        Since:
        2.6.7
      • CIDFontSubsetWithCIDSet

        public static final OutputProfile.Feature CIDFontSubsetWithCIDSet
        The PDF embeds a subset CID font with a CIDSet string (not part of basic profile). This is deprecated in PDF 2.0 so not allowed in PDF/A-4 or PDF/UA-2
        Since:
        2.28
      • CIDSetCoverageIncomplete

        public static final OutputProfile.Feature CIDSetCoverageIncomplete
        The PDF contains a subset CID font with a CIDSet that doesn't reference unused glyph in the font. Prior to 2.26 we had a "tolerant" version of this flag - we eventually figured out what Acrobat was actually doing, so no longer need to make that distinction. This feature s denied on the OutputProfile.PDFA2b and OutputProfile.PDFA3b profiles.
        Since:
        2.14.1
      • CIDSetCoverageIncompleteUsed

        public static final OutputProfile.Feature CIDSetCoverageIncompleteUsed
        The PDF contains a subset CID font with a CIDSet that doesn't reference used glyphs in the font. This is a more demanding test than CIDSetCoverageIncomplete, from which is was split off in 2.26.2. This test is for PDF/A-1; both tests are for PDF/2 and A/3
        Since:
        2.26.2
      • SharedFontDescriptor

        public static final OutputProfile.Feature SharedFontDescriptor
        The PDF contains two subset fonts that share a FontDescriptor. This is technically disallowed, as its a requirement that each FontDescriptor refers to the name of its font (which must be unique if the font is subset). However it doesn't cause a problem unless the font also has to refer to the list of glyphs that the font uses
        Since:
        2.28.1
      • UTF16Encoding

        public static final OutputProfile.Feature UTF16Encoding
        The PDF embeds a font that requires UTF-16 encoding. UTF-16 encoding was added in Acrobat 6.0, so viewers prior to that may have trouble dispaying some characters.
      • FontWithMissingGlyphs

        public static final OutputProfile.Feature FontWithMissingGlyphs
        The PDF embeds a font without glyphs for all characters referenced in the document. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.6.7
      • FontSymbolicStatusUndefined

        public static final OutputProfile.Feature FontSymbolicStatusUndefined
        The PDF contains a font which does not have it's symbolic status correctly defined - the two bits in its Flags field contradict eachother. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.16
      • NotdefGlyph

        public static final OutputProfile.Feature NotdefGlyph
        The PDF contains a reference to the .notdef named glyph This is not allowed in PDF/A-2 and later (not part of basic profile).
        Since:
        2.14.1
      • InvalidFont

        public static final OutputProfile.Feature InvalidFont
        The PDF contains a Font that is damaged or otherwise invalid. This is not allowed in PDF/A, and the PDF may not render correctly (not part of basic profile).
        Since:
        2.11.5
      • Length1Mismatch

        public static final OutputProfile.Feature Length1Mismatch
        The PDF contains an embedded TrueType font where the Length1 field is missing, or isn't the correct value. This is not allowed according to the PDF specification.
        Since:
        2.23.5
      • FontWithoutMetadata

        public static final OutputProfile.Feature FontWithoutMetadata
        The PDF contains at least one font without any meta-data (not part of basic profile). Font meta-data is required by the PDF/A specification, although is not part of the PDF/A draft implemented in Acrobat 7.0. If this feature is denied when an OutputProfile is applied, the library will attempt to extract metadata from any embedded fonts, but if the required information is missing the feature cannot be fixed.
        Since:
        2.6.7
      • CIDFontTrueTypeWithoutCIDToGIDMap

        public static final OutputProfile.Feature CIDFontTrueTypeWithoutCIDToGIDMap
        The PDF contains a TrueType CIDFont without a CIDToGIDMap entry. This is not allowed in PDF/A and PDF/UA (not part of basic profile).
        Since:
        2.6.7
      • CIDFontTrueTypeWithoutCIDToGIDMapInvisible

        public static final OutputProfile.Feature CIDFontTrueTypeWithoutCIDToGIDMapInvisible
        The PDF contains a TrueType CIDFont without a CIDToGIDMap entry, and the font is only used for invisible text. This is allowed in PDF/A-1 but disallowed in PDF/A-2 or later, and also PDF/UA.
        Since:
        2.26
        See Also:
        CIDFontTrueTypeWithoutCIDToGIDMap
      • Transparency

        public static final OutputProfile.Feature Transparency
        The PDF contains transparency (not part of basic profile). Transparency was added in Acrobat 5.0 and will not work with viewers prior to that. It is not part of PDF/X
      • BXEXOperator

        public static final OutputProfile.Feature BXEXOperator
        The PDF contains a stream with BX/EX operators (not part of basic profile). These operators indicate sections of the PDF which may not display in all viewers. They are not recommended for PDF/X
      • InlineImage

        public static final OutputProfile.Feature InlineImage
        The PDF contains an inline image (not part of basic profile). Since 2.18 it is possible to replace inline images with regular ones by setting this feature to denied.
      • InlineImageDamaged

        public static final OutputProfile.Feature InlineImageDamaged
        The PDF contains an inline image, one of which is damaged.
        Since:
        2.26
      • InlineImageWithoutLength

        public static final OutputProfile.Feature InlineImageWithoutLength
        The PDF contains an inline image, one of which has no Length key. The Length (or "L") key is new (and required) in PDF 2.0
        Since:
        2.28.3
      • Hairline

        public static final OutputProfile.Feature Hairline
        The PDF contains a "hairline" (not part of basic profile). A line with a thickness of < 0.2pt, it may not display correctly on all output devices Since 2.18 it is possible to replace hairlines with lines of a specified width
        See Also:
        OutputProfiler.setHairlineWidth(float)
      • ZeroWidthLine

        public static final OutputProfile.Feature ZeroWidthLine
        The PDF contains a zero-width line (not part of basic profile). The display of these lines is device-dependent and their use is not recommended.
      • ShadingPattern

        public static final OutputProfile.Feature ShadingPattern
        The PDF contains a shading pattern (not part of basic profile).
      • PostScriptXObject

        public static final OutputProfile.Feature PostScriptXObject
        The PDF contains a PostScript XObject (not part of basic profile). PostScript XObjects are not recommended and are not part of PDF/X or PDF/A. The are no longer part of the spec in PDF 2.0 (not part of basic profile)
      • ReferenceXObject

        public static final OutputProfile.Feature ReferenceXObject
        The PDF contains a Reference XObject (not part of basic profile). Reference XObjects are not part of PDF/A
        Since:
        2.6.7
      • HalftoneHTP

        public static final OutputProfile.Feature HalftoneHTP
        The PDF contains an "HTP" key to define a Halftone. This has been deprecated since PDF 1.3 and is disallowed by PDF/A (not part of basic profile)
        Since:
        2.20.1
      • HalftoneName

        public static final OutputProfile.Feature HalftoneName
        The PDF contains a named Halftone pattern (not part of basic profile). These are not allowed with PDF/X
      • HalftoneOrigin

        public static final OutputProfile.Feature HalftoneOrigin
        The PDF contains the PDF 2.0 "HTO" key to define a Halftone.
        Since:
        2.20.1
      • BlackPointCompensation

        public static final OutputProfile.Feature BlackPointCompensation
        The PDF contains the "UseBlackPtComp" key, first defined in PDF 2.0
        Since:
        2.20.1
      • HalftoneNot1or5

        public static final OutputProfile.Feature HalftoneNot1or5
        The PDF contains a Halftone pattern not of type 1 or 5 (not part of basic profile). These are not allowed with PDF/X
      • TransferFunctionIsIdentity

        public static final OutputProfile.Feature TransferFunctionIsIdentity
        The PDF contains a Transfer function of Identity This is not allowed in PDF/A or PDF/X. (not part of basic profile).
      • TransferFunctionIsDefault

        public static final OutputProfile.Feature TransferFunctionIsDefault
        The PDF contains a Transfer function of Default. Default Transfer functions can be safely removed, which is what happens if only this feature is denied. However, PDF/X-1 and X-3 disallow even the "Default" value to be set. This restriction is relaxed in PDF/X-4. (not part of basic profile).
      • TransferFunctionIsOther

        public static final OutputProfile.Feature TransferFunctionIsOther
        The PDF contains a Transfer function other than Identity or Default. This is not allowed in PDF/A or PDF/X. (not part of basic profile).
      • HalftoneTransferFunctionOptional

        public static final OutputProfile.Feature HalftoneTransferFunctionOptional
        The PDF contains a Transfer function in a Halftone dictionary which is not a component of a "Type 5" Halftone dictionary, or which is on a component but that component is a CMYK prrimary. These are optional and therefore disallowed in PDF/A-2 and later and PDF/X-3 and later profiles (not part of basic profile).
        Since:
        2.26.1
      • HalftoneTransferFunctionNotInType5

        public static final OutputProfile.Feature HalftoneTransferFunctionNotInType5
        The PDF contains a Transfer function in a Halftone dictionary which is not a component of a "Type 5" Halftone dictionary. These are "not as required by ISO 32000-1" so are either disallowed or ignorable in PDF/A-2 and later, depending on who you ask. (not part of basic profile).
        Since:
        2.26.3
      • HalftoneTransferFunctionRequiredButMissing

        public static final OutputProfile.Feature HalftoneTransferFunctionRequiredButMissing
        The PDF contains a "Type 5" Halftone dictionary which contains a "Type 1" Halftone dictionary, that inner Halftone dictiomary is not one one of the CMYK primaries, and it is missing a Transfer function. These types of Halftone dictionaries require the Transfer function to be present. So this feature is disallowed in PDF/A-2 and later and PDF/X-3 and later profiles (not part of basic profile).
        Since:
        2.26.3
      • OPI

        public static final OutputProfile.Feature OPI
        An image or Form XObject contains OPI (Open Prepress Interface) comments. OPI is not allowed under PDF/X or PDF/A (not part of basic profile).
      • RenderingIntent

        public static final OutputProfile.Feature RenderingIntent
        The PDF contains operations to set the Rendering Intent (not part of basic profile).
      • AlternateImagePrints

        public static final OutputProfile.Feature AlternateImagePrints
        The PDF contains images where the alternate is set to print by default (not part of basic profile). These are not allowed in PDF/X
      • StreamContainsFormXObject

        public static final OutputProfile.Feature StreamContainsFormXObject
        The PDF contains a stream with a Form XObject (not part of basic profile)
      • StreamContainsPathOperators

        public static final OutputProfile.Feature StreamContainsPathOperators
        The PDF contains a stream with path operations (not part of basic profile)
      • StreamContainsText

        public static final OutputProfile.Feature StreamContainsText
        The PDF contains a stream with text operations (not part of basic profile)
      • RenderingIntentUnknown

        public static final OutputProfile.Feature RenderingIntentUnknown
        The PDF contains a Rendering Intent that is not one of the values defined in the PDF specification (not part of basic profile)
      • UnknownStreamOperator

        public static final OutputProfile.Feature UnknownStreamOperator
        The PDF contains a content stream with an unknown operator (not part of basic profile)
      • AlternateImage

        public static final OutputProfile.Feature AlternateImage
        The PDF contains at least one image with an Alternate (not part of basic profile)
      • InterpolatedImage

        public static final OutputProfile.Feature InterpolatedImage
        The PDF contains at least one interpolated image This is not allowed in PDF/A-1 (not part of basic profile)
      • InterpolatedInlineImage

        public static final OutputProfile.Feature InterpolatedInlineImage
        The PDF contains at least one interpolated inline image. This is not allowed in PDF/A-1 (not part of basic profile)
        Since:
        2.26
      • VerticalText

        public static final OutputProfile.Feature VerticalText
        The PDF contains text in a font with a vertical writing direction (not part of basic profile)
        Since:
        2.13.1
      • ColorContent

        public static final OutputProfile.Feature ColorContent
        The PDF contains text, shading or vector graphics (anything but bitmap images) that are in Color rather than grayscale or black-and-white. Color means actual color; it excludes grayscale content represented in RGB, for example
        Since:
        2.13.2
      • GrayscaleContent

        public static final OutputProfile.Feature GrayscaleContent
        The PDF contains text, shading or vector graphics (anything but bitmap images) that are in Grayscale, ie. they include a shade of gray that is not black or white.
        Since:
        2.13.2
      • ColorImage

        public static final OutputProfile.Feature ColorImage
        The PDF contains a bitmap image that could be in Color. More accurately, the image allows color but could be grayscale or black-and-white: without analyzing each pixel we can't tell for sure.
        Since:
        2.13.2
      • GrayscaleImage

        public static final OutputProfile.Feature GrayscaleImage
        The PDF contains a bitmap image that could be in Grayscale. More accurately, the image allows grayscale but could be black-and-white: without analyzing each pixel, we can't tell for sure.
        Since:
        2.13.2
      • BlackAndWhiteImage

        public static final OutputProfile.Feature BlackAndWhiteImage
        The PDF contains a bitmap image that is in Black&White, as opposed to Color or Grayscale. This is a more specific test than ImageDepth1 as that doesn't require grayscale.
        Since:
        2.13.2
      • Form

        public static final OutputProfile.Feature Form
        The PDF contains a Form with at least one element.
      • NeedAppearancesNotFalse

        public static final OutputProfile.Feature NeedAppearancesNotFalse
        The NeedAppearances flag of the Form dictionary is set. This is not allowed in PDF/A. If this feature is denied when the OutputProfile is applied, the flag will be turned off.
        Since:
        2.6.7
      • DigitallySigned

        public static final OutputProfile.Feature DigitallySigned
        The PDF contains at least one Digital Signature.
      • AuthorSignature

        public static final OutputProfile.Feature AuthorSignature
        The PDF contains an Author digital signature
        Since:
        2.7.3
      • PermissionsWithUnknownEntry

        public static final OutputProfile.Feature PermissionsWithUnknownEntry
        The PDF contains a permissions dictionary with an entry other than DocMDP, UR or UR3 (not part of basic profile).
        Since:
        2.14.1
      • PermissionsWithNonUR

        public static final OutputProfile.Feature PermissionsWithNonUR
        The PDF contains a permissions dictionary with an entry other than UR or UR3. This is not allowed in PDF/X-4 and later
        Since:
        2.24.3
      • PermissionsWithOldUR

        public static final OutputProfile.Feature PermissionsWithOldUR
        The PDF contains a permissions dictionary with the obsolete UR entry. (not part of basic profile).
        Since:
        2.14.1
      • PermissionsWithDocMDPAndDigest

        public static final OutputProfile.Feature PermissionsWithDocMDPAndDigest
        The PDF contains a permissions dictionary with a DocMDP entry containing signature references with a digest (not part of basic profile).
        Since:
        2.14.1
      • XFAForm

        public static final OutputProfile.Feature XFAForm
        The PDF contains an XFA Form. XFA Forms were added in Acrobat 6.0 - the library can read and write documents containing these forms, but alterations to the form are limited to modifying the values of fields.
      • XFAFormMismatch

        public static final OutputProfile.Feature XFAFormMismatch
        The PDF contains an XFA Form with values which the API could not match to the AcroForm. This indicates either a fault in the form or a fault in our reconciliation code. The values should be checked, and the form should be rebuilt
        Since:
        2.26.3
      • XFAFormIsStream

        public static final OutputProfile.Feature XFAFormIsStream
        The PDF contains an XFA Form which is stored as a single stream. This is completely invalid, but Acrobat appears to accept it.
        Since:
        2.15.2
      • XFAFormHasDynamicRender

        public static final OutputProfile.Feature XFAFormHasDynamicRender
        The PDF contains an XFA Form with a "dynamicRender" element. This is not allowed in PDF/UA-1 (not part of basic profile)
        Since:
        2.24.4
      • XFAForm20

        public static final OutputProfile.Feature XFAForm20
        The PDF contains an XFA Form matching version 2.0 of the XFA specification.
        Since:
        2.11.10
      • XFAForm22

        public static final OutputProfile.Feature XFAForm22
        The PDF contains an XFA Form matching version 2.2 of the XFA specification.
        Since:
        2.11.10
      • XFAForm24

        public static final OutputProfile.Feature XFAForm24
        The PDF contains an XFA Form matching version 2.4 of the XFA specification.
        Since:
        2.11.10
      • XFAForm25

        public static final OutputProfile.Feature XFAForm25
        The PDF contains an XFA Form matching version 2.5 of the XFA specification.
        Since:
        2.11.10
      • XFAForm26

        public static final OutputProfile.Feature XFAForm26
        The PDF contains an XFA Form matching version 2.6 of the XFA specification.
        Since:
        2.11.10
      • XFAForm27

        public static final OutputProfile.Feature XFAForm27
        The PDF contains an XFA Form matching version 2.7 of the XFA specification.
        Since:
        2.11.10
      • XFAForm28

        public static final OutputProfile.Feature XFAForm28
        The PDF contains an XFA Form matching version 2.8 of the XFA specification.
        Since:
        2.11.10
      • XFAForm30

        public static final OutputProfile.Feature XFAForm30
        The PDF contains an XFA Form matching version 3.0 of the XFA specification.
        Since:
        2.11.10
      • XFAForm31

        public static final OutputProfile.Feature XFAForm31
        The PDF contains an XFA Form matching version 3.1 of the XFA specification.
        Since:
        2.11.10
      • Portfolio

        public static final OutputProfile.Feature Portfolio
        The PDF is a PDF Portfolio, a collection of PDF documents stored as attachments to the parent. These have been possible since Acrobat 8, but this feature will only be set for documents created with Acrobat 9 or later. To identify a likely Portfolio created under Acrobat 8, check the pagemode option on the PDF: if it's "UseAttachments", it's likely a PDF Portfolio.
        Since:
        2.13
        See Also:
        Portfolio
      • PortfolioFolders

        public static final OutputProfile.Feature PortfolioFolders
        The PDF is a PDF Portfolio and contains subfolders. This is a new feature added in ISO32000-1:2008 extension 3 (Acrobat X).
        Since:
        2.14.1
        See Also:
        Portfolio
      • HasOutputIntent

        public static final OutputProfile.Feature HasOutputIntent
        The PDF contains an OutputIntent.
      • HasOutputIntentGTS_PDFX

        public static final OutputProfile.Feature HasOutputIntentGTS_PDFX
        The PDF contains an OutputIntent of GTS_PDFX. Required for PDF/X
      • HasOutputIntentGTS_PDFA1

        public static final OutputProfile.Feature HasOutputIntentGTS_PDFA1
        The PDF contains an OutputIntent of GTS_PDFA1. The PDF/A specification specifies this for PDF/A-2 and later, not just PDF/A-1.
        Since:
        2.6.7
      • HasOutputIntentGTS_PDFA

        public static final OutputProfile.Feature HasOutputIntentGTS_PDFA
        The PDF contains an OutputIntent of GTS_PDFA. Acrobat 7 and 8 use this OutputIntent when testing for PDF/A compliance, but the specification indicates it should be GTS_PDFA1.
        Since:
        2.6.7
      • HasOutputIntentISO_PDFE1

        public static final OutputProfile.Feature HasOutputIntentISO_PDFE1
        The PDF contains an OutputIntent of ISO_PDFE1.
        Since:
        2.24.3
      • HasGrayOutputIntent

        public static final OutputProfile.Feature HasGrayOutputIntent
        The PDF contains an OutputIntent defining a Grayscale ColorSpace. PDF/A Documents containing device colors must have a matching OutputIntent.
        Since:
        2.11.5
      • HasRGBOutputIntent

        public static final OutputProfile.Feature HasRGBOutputIntent
        The PDF contains an OutputIntent defining an RGB ColorSpace. PDF/A Documents containing device colors must have a matching OutputIntent.
        Since:
        2.11.5
      • HasCMYKOutputIntent

        public static final OutputProfile.Feature HasCMYKOutputIntent
        The PDF contains an OutputIntent defining a CMYK ColorSpace. PDF/A Documents containing device colors must have a matching OutputIntent.
        Since:
        2.11.5
      • HasUnknownOutputIntent

        public static final OutputProfile.Feature HasUnknownOutputIntent
        The PDF contains an OutputIntent which is not GrayScale, RGB or CMYK.
        Since:
        2.11.5
      • UnknownOutputIntentRegistry

        public static final OutputProfile.Feature UnknownOutputIntentRegistry
        The PDF contains an OutputIntent which is not in the http://www.color.org Registry
        Since:
        2.11.5
      • HasUnembeddedOutputIntent

        public static final OutputProfile.Feature HasUnembeddedOutputIntent
        The PDF contains an OutputIntent which does not contain an embedded ICC profile
        Since:
        2.11.5
      • HasReferenceOutputIntent

        public static final OutputProfile.Feature HasReferenceOutputIntent
        The PDF contains an OutputIntent which references an external ICC profile. This is allowed in PDF/X-5 but disallowed in PDF/A-2 and later.
        Since:
        2.14.1
      • UnknownOutputIntentRegistryWithoutProfile

        public static final OutputProfile.Feature UnknownOutputIntentRegistryWithoutProfile
        The PDF contains an OutputIntent which is not in the http://www.color.org Registry and does not reference an embedded ICC profile
        Since:
        2.11.5
      • HasMultipleOutputIntents

        public static final OutputProfile.Feature HasMultipleOutputIntents
        The PDF contains multiple Output Intents.
        Since:
        2.11.5
      • HasMultipleDifferentOutputIntents

        public static final OutputProfile.Feature HasMultipleDifferentOutputIntents
        The PDF contains multiple Output Intents with different ICC profiles. This is not allowed for PDF/A.
        Since:
        2.11.5
      • OutputIntentOnPage

        public static final OutputProfile.Feature OutputIntentOnPage
        The PDF contains Output Intents referenced from a PDFPage object. This is new in PDF 2.0.
        Since:
        2.24.4
      • InfoMeetsPDFX1a_2001

        public static final OutputProfile.Feature InfoMeetsPDFX1a_2001
        The PDF Info Dictionary meets the requirements for PDF/X-1a:2001.
      • InfoMeetsPDFX1a_2003

        public static final OutputProfile.Feature InfoMeetsPDFX1a_2003
        The PDF Info Dictionary meets the requirements for PDF/X-1a:2003.
      • InfoMeetsPDFX3_2002

        public static final OutputProfile.Feature InfoMeetsPDFX3_2002
        The PDF Info Dictionary meets the requirements for PDF/X-3:2002.
      • InfoMeetsPDFX3_2003

        public static final OutputProfile.Feature InfoMeetsPDFX3_2003
        The PDF Info Dictionary meets the requirements for PDF/X-3:2003.
      • XMPMeetsPDFX4

        public static final OutputProfile.Feature XMPMeetsPDFX4
        The document XMP Metadata meets the requirements for PDF/X-4. Note that despite the name, this is an XMP check, not an Info Dictionary check. This is required for PDF/X-4
        Since:
        2.24.3
      • XMPMeetsPDFX4p

        public static final OutputProfile.Feature XMPMeetsPDFX4p
        The document XMP Metadata meets the requirements for PDF/X-4. Note that despite the name, this is an XMP check, not an Info Dictionary check. This is required for PDF/X-4
        Since:
        2.24.3
      • XMPMeetsPDFX5g

        public static final OutputProfile.Feature XMPMeetsPDFX5g
        The document XMP Metadata meets the requirements for PDF/X-5g
        Since:
        2.24.3
      • XMPMeetsPDFX5n

        public static final OutputProfile.Feature XMPMeetsPDFX5n
        The document XMP Metadata meets the requirements for PDF/X-5n
        Since:
        2.24.3
      • XMPMeetsPDFX5pg

        public static final OutputProfile.Feature XMPMeetsPDFX5pg
        The document XMP Metadata meets the requirements for PDF/X-5pg
        Since:
        2.24.3
      • XMPMeetsPDFX6

        public static final OutputProfile.Feature XMPMeetsPDFX6
        The document XMP Metadata meets the requirements for PDF/X-6
        Since:
        2.24.3
      • InfoHasPDFXConformance

        public static final OutputProfile.Feature InfoHasPDFXConformance
        The PDF Info Dictionary has the obsolete GTS_PDFXConformance key, which is not allowed in PDF/X-4 and later
        Since:
        2.24.3
      • InfoMeetsPDFA1b_2005

        public static final OutputProfile.Feature InfoMeetsPDFA1b_2005
        The document XMP Dictionary meets the requirements for PDF/A-1b:2005 Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.6.7
      • InfoMeetsPDFA1a_2005

        public static final OutputProfile.Feature InfoMeetsPDFA1a_2005
        The document XMP Metadata meets the requirements for PDF/A-1a:2005 Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.6.7
      • InfoMeetsPDFA2a

        public static final OutputProfile.Feature InfoMeetsPDFA2a
        The document XMP Metadata meets the requirements for PDF/A-2a. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.14.1
      • InfoMeetsPDFA2b

        public static final OutputProfile.Feature InfoMeetsPDFA2b
        The document XMP Metadata meets the requirements for PDF/A-2b. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.14.1
      • InfoMeetsPDFA2u

        public static final OutputProfile.Feature InfoMeetsPDFA2u
        The document XMP Metadata meets the requirements for PDF/A-2u. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.14.1
      • InfoMeetsPDFA3a

        public static final OutputProfile.Feature InfoMeetsPDFA3a
        The document XMP Metadata meets the requirements for PDF/A-3a. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.14.1
      • InfoMeetsPDFA3b

        public static final OutputProfile.Feature InfoMeetsPDFA3b
        The document XMP Metadata meets the requirements for PDF/A-3b. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.14.1
      • InfoMeetsPDFA3u

        public static final OutputProfile.Feature InfoMeetsPDFA3u
        The document XMP Metadata meets the requirements for PDF/A-3u. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.14.1
      • XMPMeetsPDFA4

        public static final OutputProfile.Feature XMPMeetsPDFA4
        The document XMP Metadata meets the requirements for PDF/A-4. (not part of basic profile).
        Since:
        2.25
      • XMPMeetsPDFA4e

        public static final OutputProfile.Feature XMPMeetsPDFA4e
        The document XMP Metadata meets the requirements for PDF/A-4e. (not part of basic profile).
        Since:
        2.25
      • XMPMeetsPDFA4f

        public static final OutputProfile.Feature XMPMeetsPDFA4f
        The document XMP Metadata meets the requirements for PDF/A-4f. (not part of basic profile).
        Since:
        2.25
      • XMPHasPDFARev

        public static final OutputProfile.Feature XMPHasPDFARev
        The document XMP Metadata has a "pdfaid:rev" key that is exactly four digits. This value represents the year of the revision to ISO19005 that the document adheres to; it's required to be valid for PDF/A-4 (not part of basic profile).
        Since:
        2.25
      • XMPHasPDFUARev

        public static final OutputProfile.Feature XMPHasPDFUARev
        The document XMP Metadata has a "pdfuaid:rev" key that is exactly four digits. This value represents the year of the revision to ISO14289 that the document adheres to; it's required to be valid for PDF/UA-2 (not part of basic profile).
        Since:
        2.28
      • ViewBoxNotMediaOrBleedBox

        public static final OutputProfile.Feature ViewBoxNotMediaOrBleedBox
        If BleedBox is present and if the ViewerPreferences dictionary contains the ViewArea, ViewClip, PrintArea or PrintClip keys, each of these keys present must be MediaBox or BleedBox for PDF/X-1:2003 and PDF/X-3:2003 (not part of basic profile)
      • ImagePluginHeader

        public static final OutputProfile.Feature ImagePluginHeader
        The PDF should be marked as "image only". This feature may be set as required, in which case if the image contains only a full-page image then Acrobat 6.0 and later will display various options which allow treating the image as a photo for printing.
      • RegularCompression

        public static final OutputProfile.Feature RegularCompression
        The PDF should be compressed. This feature is normally off, which means that new streams are compressed in the usual manner but existing streams are left untouched. This is typically the best setting. Setting this feature as Required means that all streams compressed with less-than-optimal compression will be recompressed, which may take longer but result in smaller files (depending on how compressed the original file was). On the other hand, setting this feature as Denied will cause all existing compressed streams to be uncompressed, which is useful for debugging PDFs but gives much larger files.
      • DoubleCompression

        public static final OutputProfile.Feature DoubleCompression
        The PDF contains at least one stream which has to forms of compression applied, e.g. both Flate and DCT compression. This particular combination can trigger a bug in Acrobat where the white in the document goes bright-pink. While attractive, this is not generally desired. Denying this feature will remove the double compression and avoid this bug.
        Since:
        2.24.2
      • MaximumCompression

        public static final OutputProfile.Feature MaximumCompression
        The PDF should be compressed using the maximum level of compression. This feature affects the parameters to the "Flate" compression stream, and setting it causes the Deflater.BEST_COMPRESSION setting to be used. This can slow things down a fair bit so is off by default. Setting it typically works best when recompressing a file using the RegularCompression feature as well.
        Since:
        2.7.8
      • MergeResources

        public static final OutputProfile.Feature MergeResources
        When merging multiple PDFs, if this feature is set then the PDF will be scanned on render and duplicate resources (such as fonts and images) merged if possible. This process may be time consuming but can reduce the size of the resulting PDF. Performing this action on a signed PDF will almost certainly invalidate the signature. Here's an example:
         PDF pdf1 = new PDF(new PDFReader(new File("file1.pdf")));
         pdf1.getOutputProfile().setRequired(OutputProfile.Feature.MergeResources);
         PDF pdf2 = new PDF(new PDFReader(new File("file2.pdf")));
         pdf1.getPages().addAll(pdf2.getPages());
         pdf1.render(new FileOutputStream("out.pdf"));
         
        As a result of this feature being set on "pdf1", when it's rendered it will be scanned looking for duplicate objects. If both PDFs embedded the same image, for example, these will be consolidated down to a single bitmap.
        Since:
        2.10.4
        See Also:
        MergeResourcesFast
      • MergeResourcesFast

        public static final OutputProfile.Feature MergeResourcesFast
        As for MergeResources, but skips most of the work and just picks off the items that are literally identical. This can have a big impact quite quickly for file that have been joined together from lots of smaller parts that contain identical information, for example colorspaces or images. However it will not be as effectice as the full, slower merge run with MergeResources is set.
        Since:
        2.19
      • PurgeResources

        public static final OutputProfile.Feature PurgeResources

        When saving a modified PDF, in general the PDF API will not include items that have been removed from the document. This feature can be set as "required" on a profile passed in to OutputProfiler#setProfile to force a rebuild of each content stream in the PDF - any unreferenced objects will be removed as part of that rebuild process.

        The actions described in the previous paragraph were added in version 2.28. Between versions 2.11.17 and 2.23 this feature could be set as "required" to remove unreferenced objects from the PDF when the file was saved, but from 2.23.1 on this happens automatically, so the feature became a no-op and was deprecated. Due to the new functionality we've undeprecated it in 2.28

        Since:
        2.11.17, but see not above
      • FileIsDamaged

        public static final OutputProfile.Feature FileIsDamaged
        The PDF structure was damaged but has been repaired. Depending on the extent of the damage, some data may theoretically have been lost (although typically this is unlikely).
      • DictionaryKeyDuplicated

        public static final OutputProfile.Feature DictionaryKeyDuplicated
        The PDF contains a duplicated dictionary key. This is disallowed in PDF and the behaviour is undefined - BFO will use the last value.
        Since:
        2.27.2
      • ContentIsDamaged

        public static final OutputProfile.Feature ContentIsDamaged
        The PDF contains a content stream which is damaged. This is one of the more serious types of file damage, as it indicates corruption in the page description itself. While it's possible that the damage is minimal, there's a good chance that this PDF cannot be fully recovered (not part of basic profile).
        Since:
        2.11.25
      • HintsAreDamaged

        public static final OutputProfile.Feature HintsAreDamaged
        The linearized PDF contains a hints table that is damaged. Fast Web View may not work correctly.
        Since:
        2.13.2
      • ImperfectWhitespace

        public static final OutputProfile.Feature ImperfectWhitespace
        The PDF contains whitespace which is valid, but does not meet the stricter requirements for PDF/A. Unless you're verifying against PDF/A this is unimportant.
        Since:
        2.11.5
      • StreamLengthIncorrect

        public static final OutputProfile.Feature StreamLengthIncorrect
        The PDF contains a Stream with an invalid Length. This is repairable and quite common, but it's explicitly disallowed in the PDF/A speciciation, and large differences between the posted and actual length may indicate damage to the PDF.
        Since:
        2.11.5
      • ImageLengthIncorrect

        public static final OutputProfile.Feature ImageLengthIncorrect
        The PDF contains an image which has less data than its width and height demand. This is not repairable, although for small differences the effect may be negligable, and documents featuring this flag may render unpredictably in different viewers.
        Since:
        2.11.24
      • NoEOLStream

        public static final OutputProfile.Feature NoEOLStream
        The PDF contains a Stream without a traling EOL character. This is perfectly legal and quite normal, but it's specifically disallowed in PDF/A.
        Since:
        2.11.5
      • OddHexString

        public static final OutputProfile.Feature OddHexString
        The PDF contains a Hex string with an odd length. This can always be repaired, but it may indicate slight damage to the PDF and is disallowed in PDF/A.
        Since:
        2.11.5
      • TextStringUTF8

        public static final OutputProfile.Feature TextStringUTF8
        The PDF contains a Text string with a UTF-8 byte marker. This is new in PDF2.0.
        Since:
        2.26.1
      • TextStringUTF16LE

        public static final OutputProfile.Feature TextStringUTF16LE
        The PDF contains a Text string with a UTF-16LE byte marker. This is not allowed in the spec, but supported in Acrobat.
        Since:
        2.26.1
      • HeaderNotAtStart

        public static final OutputProfile.Feature HeaderNotAtStart
        There is junk in the PDF file before the "%PDF-" marker
      • JunkAfterHeader

        public static final OutputProfile.Feature JunkAfterHeader
        There is junk in the PDF file immmediately after the header line. This is usually fine, but disallowed in PDF/A-2 and later.
        Since:
        2.14.1
      • TrailerNotAtEnd

        public static final OutputProfile.Feature TrailerNotAtEnd
        There is junk in the PDF file following the %%EOF marker
      • NoFourByteComment

        public static final OutputProfile.Feature NoFourByteComment
        The four-byte binary comment immediately after the "%PDF-" marker and recommended by Adobe is missing
      • ArrayOverflow

        public static final OutputProfile.Feature ArrayOverflow
        The PDF contains an Array with > 8191 elements. This is officially disallowed by the PDF specification, although many PDF processors will not have a problem with it. It's disallowed under PDF/A.
        Since:
        2.11.5
      • DictionaryOverflow

        public static final OutputProfile.Feature DictionaryOverflow
        The PDF contains a Dictionary with > 4095 entries. This is officially disallowed by the PDF specification, although many PDF processors will not have a problem with it. It's disallowed under PDF/A.
        Since:
        2.11.6
      • IntegerOverflow

        public static final OutputProfile.Feature IntegerOverflow
        The PDF contains an Integer > ±231-1. This is disallowed by the PDF specification and by PDF/A. If this is encountered in a context where floating point numbers are used it will be rounded to the nearest value. If it's in a location where only integers are acceptable it will be rounded to Integer.MAX_VALUE or Integer.MIN_VALUE. (not part of basic profile)
        Since:
        2.11.5
      • RealUnderflow

        public static final OutputProfile.Feature RealUnderflow
        The PDF contains a real number < ±1.175 × 10-38. This very small number will be rounded to zero by most implementations so is unlikely to cause an issue but is technically disallowed in PDF/A-2 and later. (not part of basic profile)

        Opinion

        There is no reason that we can see for this restriction, and it is not tested for in Acrobat or any other PDF/A implementation we're aware of.
        Since:
        2.14.1
        See Also:
        RealOverflow
      • RealOverflow

        public static final OutputProfile.Feature RealOverflow
        The PDF contains a real number > ±3.4028234 × 1038, which is the maximum size for a 32-bit float under IEEE754. This is not recommended in PDF but technically allowed in the PDF/A-2 specification, although it's unlikely to be correctly handled by most PDF readers. (not part of basic profile)

        Opinion

        The PDF specification recommends real numbers are "±3.403 x 1038 (approx)" but the PDF/A-2 and later specifications remove the "approx" from the text, so it's possible to create a number which fails this test but is still valid PDF/A. This is unlikely to be the intention of the specification, as numbers this large can only be represented by 64-bit doubles while Acrobat (and many other tools, including this one) use 32-bit floats internally. Consequently the chances of the the document being reliably reproducable are slim, and indeed Acrobat 9, X and XI will fail to display a PDF containing numbers like this.

        So while the specification only requires that we test for numbers that fail the less-demanding test RealOverflowPDFA, we recommend the condition defined by this feature to be met for any PDF/A documents, to ensure the document has a better chance of being reliably loaded on other environments.
        Since:
        2.14.1
        See Also:
        RealOverflowPDFA
      • RealOverflow14

        public static final OutputProfile.Feature RealOverflow14
        The PDF contains a real number greater than 32767 or less than -32767. This is beyond the architectural limits defined in PDF 1.4, which is what PDFA/1 is based on.
        Since:
        2.18
        See Also:
        RealOverflow
      • RealOverflowPDFA

        public static final OutputProfile.Feature RealOverflowPDFA
        The PDF contains a real number > ±3.403 × 1038 - this is not recommended in PDF and disallowed by PDF/A-2 and later. (not part of basic profile)

        Opinion

        See RealOverflow
        Since:
        2.14.1
        See Also:
        RealUnderflow, RealOverflow
      • NameOverflow

        public static final OutputProfile.Feature NameOverflow
        The PDF contains a Name > 127 bytes. This is disallowed by the PDF specification and by PDF/A.
        Since:
        2.11.5
      • StringOverflow64

        public static final OutputProfile.Feature StringOverflow64
        The PDF contains a String > 65535 bytes. This is disallowed by the PDF specification 1.4 and by PDF/A-1.
        Since:
        2.11.5
      • StringOverflow32

        public static final OutputProfile.Feature StringOverflow32
        The PDF contains a String > 32767 bytes. This is disallowed by ISO32000 and by PDF/A-2 and later.
        Since:
        2.11.5
      • IndirectObjectOverflow

        public static final OutputProfile.Feature IndirectObjectOverflow
        The PDF contains more than 8388607 indirect objects. This is disallowed by the PDF specification and by PDF/A-2.
        Since:
        2.14.1
      • Device9ColorSpace

        public static final OutputProfile.Feature Device9ColorSpace
        The PDF contains a DeviceN ColorSpace with more than 8 components. This is disallowed by the PDF specification 1.4 and PDF/A-1 (not part of basic profile).
        Since:
        2.11.6
      • Device33ColorSpace

        public static final OutputProfile.Feature Device33ColorSpace
        The PDF contains a DeviceN ColorSpace with more than 32 components. This is disallowed by the PDF specification 1.7 (not part of basic profile).
        Since:
        2.11.6
      • NestingOverflow

        public static final OutputProfile.Feature NestingOverflow
        The PDF contains q/Q operations that nest more than 28 deep. This is disallowed by the PDF/A-2 and later specifications
        Since:
        2.14.1
      • NestingUnbalanced

        public static final OutputProfile.Feature NestingUnbalanced
        The PDF contains q/Q operations that are unbalanced.
        Since:
        2.24
      • GraphicsWithinBT

        public static final OutputProfile.Feature GraphicsWithinBT
        The PDF contains graphical operations other than text within a BT/ET sequence. This is disallowed in the specification, but it's only a problem for Acrobat, and then only sometimes. (not part of basic profile)
        Since:
        2.24
      • TextUnbalanced

        public static final OutputProfile.Feature TextUnbalanced
        The PDF contains a BT that is not balanced with a following ET, or a BT that contains another BT. Both are disallowed and are likely to cause rendering problems with Acrobat, although no other viewers seem to be affected.
        Since:
        2.24
      • TagsUnbalanced

        public static final OutputProfile.Feature TagsUnbalanced
        The PDF contains BMC/EMC operations that are unbalanced. This will likely indicate a fault in the PDF StructureTree
        Since:
        2.24
      • TagsInterleavedWithBT

        public static final OutputProfile.Feature TagsInterleavedWithBT
        The PDF contains a sequence of BT/ET and BMC/EMC operators which are interleaved rather than nested. This is allowed in the PDF specification but can cause unpredictable results in Acrobat, so is not recommended. (not part of basic profile)
        Since:
        2.24
      • TagsNested

        public static final OutputProfile.Feature TagsNested
        The PDF contains nested Marked Content sequences. This is not allowed in the PDF specification - "A marked-content sequence corresponding to a structure content item shall not have another marked-content sequence for a structure content item nested within it".
        Since:
        2.24
      • Overprint

        public static final OutputProfile.Feature Overprint
        The PDF uses Overprinting, which usually requires special settings to reproduce correctly on a subtractive output device such as a screen. (not part of basic profile)
        Since:
        2.14.1
      • OverprintOff

        public static final OutputProfile.Feature OverprintOff

        The PDF sets the Overprint flag to off. Although this value is the default if none is set, explicitiy setting it to off means that this PDF cannot safely be composited over another PDF that uses Overprint without potentially knocking out some of the background. Setting this feature to "denied" before applying an OutputProfile will ensure that explicit "overprint=off" operations are removed without affecting the rendering.

        It does this by converting all non-separation colors to DeviceCMYK, and by ensuring that any separations are tracked. Graphics operations with overprint off are converted to overprint on, and modified to ensure they knock out any previously seen separations. The effect should be identical, but the resulting file is safe to overprint over any separation not seen in this file.

        (not part of basic profile)
        Since:
        2.24.2
      • OverprintCMYKMode

        public static final OutputProfile.Feature OverprintCMYKMode
        The PDF sets the Overprint flag to on and the overprint mode to 1, and it uses a DeviceCMYK color where one of the components is zero. The overprint mode is commonly set to 1, but it has no effect unless it encounters one of these components. If this flag is not set, the overprint mode has no impact on this document. (not part of basic profile)
        Since:
        2.24.2
      • OverprintInICCCMYK

        public static final OutputProfile.Feature OverprintInICCCMYK
        The PDF uses overprinting in an ICC-based CMYK profile. The results are ill-defined and this is disallowed in PDF/A-2 and PDF/X-4 and later. If denied, colors will be converted to the Output Intent CMYK profile (not part of basic profile).
        Since:
        2.14.1
      • ICCProfileInvalid

        public static final OutputProfile.Feature ICCProfileInvalid
        The PDF contains an invalid ICC ColorProfile. Typically this is OK, as the fallback ColorSpace will be used. However in PDF/A Documents this is not allowed. Renamed from ColorProfileInvalid in 2.26 (not part of basic profile).
        Since:
        2.11.5
      • SinglePixelImage

        public static final OutputProfile.Feature SinglePixelImage
        The PDF contains a 1x1 pixel bitmap image. This is sometimes used as a very inefficient way to draw lines.
        Since:
        2.11.7
      • SignatureHasMultipleSigners

        public static final OutputProfile.Feature SignatureHasMultipleSigners
        The PDF contains a digital signature with multiple signers. This is not allowed in PDF/A-2 and later (not part of basic profile)
        Since:
        2.14.1
      • SignatureCoverageIncomplete

        public static final OutputProfile.Feature SignatureCoverageIncomplete
        The PDF contains a digital signature which does not cover a full revision of the file. This is not allowed in PDF/A-2 and later (not part of basic profile)
        Since:
        2.14.1
      • SignaturePKCS7Invalid

        public static final OutputProfile.Feature SignaturePKCS7Invalid
        The PDF contains a digital signature which claims to be PKCS#7 but has either:
        • An invalid PKCS#7 object
        • A valid PKCS#7 object but with multiple SignerInfo objects
        • A valid PKCS#7 object but with the signer certificate not included
        This is not allowed in PDF/A-2 and later (not part of basic profile)
        Since:
        2.14.1
      • SignaturePAdES

        public static final OutputProfile.Feature SignaturePAdES
        The PDF contains a digital signature which matches the PAdES standards. Note that although PAdES was officially defined in PDF 2.0 it is very, very widely deployed before that. So this feature is specially allowed when verifying files that require only PDF 1.x feature, eg PDF/A-3
        Since:
        2.15.2
      • SignaturePAdESTimestamp

        public static final OutputProfile.Feature SignaturePAdESTimestamp
        The PDF contains an RFC3161 timestamp-only signature which matches the PAdES standards.
        Since:
        2.27.2
      • BlendingColorSpaceUndefined

        public static final OutputProfile.Feature BlendingColorSpaceUndefined
        The PDF contains a Page with transparent content, but doesn't define the ColorSpace in which that content is to be blended. The default space of the viewer is used, and the results are unpredicable as a consequence.
        Since:
        2.14.1
        See Also:
        BlendingColorSpaceUndefinedNoIntent
      • BlendingColorSpaceUndefinedNoIntent

        public static final OutputProfile.Feature BlendingColorSpaceUndefinedNoIntent
        As for BlendingColorSpaceUndefined and the GTS_PDFA1 OutputIntent is also not specified. This is disallowed in PDF/A-2 and later (not part of basic profile).
        Since:
        2.15.3
      • JPXContentMismatch

        public static final OutputProfile.Feature JPXContentMismatch
        The PDF contains a JPX stream where the external values (for width, height or colorspace) don't match the values defined by the stream. This makes the stream invalid. This is not allowed in PDF/A-2 and later (not part of basic profile).
        Since:
        2.14.1
      • PageDimensionsOutOfBounds

        public static final OutputProfile.Feature PageDimensionsOutOfBounds
        The PDF contains a PDFPage which has a box that has a width or height < 3 or > 14400. These limits are recommended in PDF and required in PDF/A (not part of basic profile).
        Since:
        2.14.1
      • TooManyCIDs

        public static final OutputProfile.Feature TooManyCIDs
        The PDF contains a CMap which has > 65535 CIDs. This is beyond the recommended maximum limit and is explicitly disallowed in PDF/A. (not part of basic profile).
        Since:
        2.14.1
      • SubPageNavigation

        public static final OutputProfile.Feature SubPageNavigation
        Ths PDF contains sub-page navigation on a Page, by means of the "PresSteps" key. This is not allowed in PDF/A-2 or later (not part of basic profile.
        Since:
        2.14.1
      • DocumentNeedsRendering

        public static final OutputProfile.Feature DocumentNeedsRendering
        The PDF Catalog has a "NeedsRendering" key. This is not allowed in PDF/A-2 or later (not part of basic profile).
        Since:
        2.14.1
      • CatalogRequirements

        public static final OutputProfile.Feature CatalogRequirements
        The PDF Catalog has a "Requirements" key. This is not allowed in PDF/A-2 or later (not part of basic profile).
        Since:
        2.14.1
      • Slideshow

        public static final OutputProfile.Feature Slideshow
        The PDF defines a Slideshow or another type of alternate presentation. This is not allowed in PDF/A-2 or later (not part of basic profile).
        Since:
        2.14.1
      • NoMediaBox

        public static final OutputProfile.Feature NoMediaBox
        The PDF contains a page with no media box. This is not allowed.
      • OptionalContentWithoutName

        public static final OutputProfile.Feature OptionalContentWithoutName
        The PDF contains an Optional Content Configuration Dictionary with no name. This is not allowed in PDF/UA1, PDF/A-2 and later (not part of basic profile).
        Since:
        2.14.1
      • OptionalContentWithEmptyName

        public static final OutputProfile.Feature OptionalContentWithEmptyName
        The PDF contains an Optional Content Configuration Dictionary with a zero-length name. This is probably not allowed in PDF/UA1, PDF/A-2 and later (not part of basic profile).
        Since:
        2.28.2
      • OptionalContentWithDuplicateName

        public static final OutputProfile.Feature OptionalContentWithDuplicateName
        The PDF contains an Optional Content Configuration Dictionary which duplicates the name of another dictionary. This is not allowed in PDF/A-2 and later (not part of basic profile).
        Since:
        2.14.1
      • OptionalContentUsageApplication

        public static final OutputProfile.Feature OptionalContentUsageApplication
        The PDF contains an Optional Content Configuration dictionary which specifies the AS (Usage Application) Dictionary. This is not allowed in PDF/UA-1, PDF/A-2 and later (not part of basic profile).
        Since:
        2.14.1
      • OptionalContentOrderComplete

        public static final OutputProfile.Feature OptionalContentOrderComplete
        The PDF contains an Optional Content Configuration dictionary which specifies an Order, and the Order lists every Optional Content Group in the PDF. This is not allowed in PDF/X-4:2007, although it is valid in PDF/X-4:2010 (not part of basic profile).
        Since:
        2.24.3
      • OptionalContentOrderIncomplete

        public static final OutputProfile.Feature OptionalContentOrderIncomplete
        The PDF contains an Optional Content Configuration dictionary which specifies an Order, but the Order doesn't list every Optional Content Group in the PDF. This is not allowed in PDF/A-2 or PDF/X-4 and later (not part of basic profile).
        Since:
        2.14.1
      • OptionalContentOrderEmpty

        public static final OutputProfile.Feature OptionalContentOrderEmpty
        The PDF contains an Optional Content Configuration dictionary which specifies an Order, and the Order is empty. This is not allowed in PDF/A-2 and later, but is allowed in PDF/X-4. (not part of basic profile).
        Since:
        2.24.3
      • MarkedContent

        public static final OutputProfile.Feature MarkedContent
        The PDF contains marked-content operators - a DP, BDC or BMC (renamed from MarkedProperty in 2.24; originally added in 2.6.1) (not part of basic profile)
        Since:
        2.24
      • CIDCompactFontNotCID

        public static final OutputProfile.Feature CIDCompactFontNotCID
        The PDF contains a Compact Font embedded as a CID font, but the font itself isn't a CID font. This may result in missing glyphs when the file is converted to PostScript (including for printing) on OS X by the default Preview.app PDF viewer.
        Since:
        2.18.2
      • InfoMeetsPDFUA1

        public static final OutputProfile.Feature InfoMeetsPDFUA1
        The PDF XMP Metadata meets the requirements for PDF/UA-1. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.19
      • InfoMeetsPDFUA2

        public static final OutputProfile.Feature InfoMeetsPDFUA2
        The PDF XMP Metadata meets the requirements for PDF/UA-2 (not part of basic profile). Note that PDF/UA-2 is still in draft. This feature is for testing only.
        Since:
        2.24.2
      • InfoHasPDFDeclaration

        public static final OutputProfile.Feature InfoHasPDFDeclaration
        The PDF XMP Metadata contains a PDF Declaration. Note that despite the name, this is an XMP check, not an Info Dictionary check.
        Since:
        2.24.2
      • InfoMeetsZUGFeRD1Basic

        public static final OutputProfile.Feature InfoMeetsZUGFeRD1Basic
        The PDF XMP Metadata meets the requirements for ZUGFeRD 1.0 (Basic conformance level). ZUGFeRD is the German standard for electronic invoice exchange. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.20.1
      • InfoMeetsZUGFeRD1Comfort

        public static final OutputProfile.Feature InfoMeetsZUGFeRD1Comfort
        The PDF XMP Metadata meets the requirements for ZUGFeRD 1.0 (Comfort conformance level). ZUGFeRD is the German standard for electronic invoice exchange. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.20.1
      • InfoMeetsZUGFeRD1Extended

        public static final OutputProfile.Feature InfoMeetsZUGFeRD1Extended
        The PDF XMP Metadata meets the requirements for ZUGFeRD 1.0 (Extended conformance level). ZUGFeRD is the German standard for electronic invoice exchange. Note that despite the name, this is an XMP check, not an Info Dictionary check. (not part of basic profile).
        Since:
        2.20.1
      • XMPMeetsZUGFeRD2_BASIC

        public static final OutputProfile.Feature XMPMeetsZUGFeRD2_BASIC
        The PDF XMP Metadata meets the requirements for ZUGFeRD 2.0 (BASIC conformance level). Factur-X is the cross-european rebrand of ZUGFeRD; this feature is considered legacy and should be replaced with XMPMeetsFacturX1_BASIC (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsZUGFeRD2_EN16931

        public static final OutputProfile.Feature XMPMeetsZUGFeRD2_EN16931
        The PDF XMP Metadata meets the requirements for ZUGFeRD 2.0 (EN16931, aka "Comfort" conformance level). Factur-X is the cross-european rebrand of ZUGFeRD; this feature is considered legacy and should be replaced with XMPMeetsFacturX1_EN16931 (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsZUGFeRD2_EXTENDED

        public static final OutputProfile.Feature XMPMeetsZUGFeRD2_EXTENDED
        The PDF XMP Metadata meets the requirements for ZUGFeRD 2.0 (EXTENDED conformance level). Factur-X is the cross-european rebrand of ZUGFeRD; this feature is considered legacy and should be replaced with XMPMeetsFacturX1_EXTENDED (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsZUGFeRD2_MINIMUM

        public static final OutputProfile.Feature XMPMeetsZUGFeRD2_MINIMUM
        The PDF XMP Metadata meets the requirements for ZUGFeRD 2.0 (MINIMUM conformance level). Factur-X is the cross-european rebrand of ZUGFeRD; this feature is considered legacy and should be replaced with XMPMeetsFacturX1_MINIMUM. MINIMUM conformance is not accepted in Germany, or in France after 2026. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsZUGFeRD2_BASICWS

        public static final OutputProfile.Feature XMPMeetsZUGFeRD2_BASICWS
        The PDF XMP Metadata meets the requirements for ZUGFeRD 2.0 ("BASIC WS" conformance level). Factur-X is the cross-european rebrand of ZUGFeRD; this feature is considered legacy and should be replaced with XMPMeetsFacturX1_BASICWS. "BASIC WS" conformance is not accepted in Germany, or in France after 2026. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsFacturX1_BASIC

        public static final OutputProfile.Feature XMPMeetsFacturX1_BASIC
        The PDF XMP Metadata meets the requirements for Factur-X 1.x (BASIC conformance level). Factur-X is the cross-european rebrand of ZUGFeRD. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsFacturX1_EN16931

        public static final OutputProfile.Feature XMPMeetsFacturX1_EN16931
        The PDF XMP Metadata meets the requirements for Factur-X 1.x (EN16931, aka "Comfort" conformance level). Factur-X is the cross-european rebrand of ZUGFeRD. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsFacturX1_EXTENDED

        public static final OutputProfile.Feature XMPMeetsFacturX1_EXTENDED
        The PDF XMP Metadata meets the requirements for Factur-X 1.x (EXTENDED conformance level). Factur-X is the cross-european rebrand of ZUGFeRD. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsFacturX1_MINIMUM

        public static final OutputProfile.Feature XMPMeetsFacturX1_MINIMUM
        The PDF XMP Metadata meets the requirements for Factur-X 1.x (MINIMUM conformance level). Factur-X is the cross-european rebrand of ZUGFeRD. MINIMUM conformance is not accepted in Germany, or in France after 2026. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsFacturX1_BASICWS

        public static final OutputProfile.Feature XMPMeetsFacturX1_BASICWS
        The PDF XMP Metadata meets the requirements for Factur-X 1.x (BASIC WS conformance level). Factur-X is the cross-european rebrand of ZUGFeRD. BASIC WS conformance is not accepted in Germany, or in France after 2026. (not part of basic profile)
        Since:
        2.28.3
      • XMPMeetsFacturX1_XRECHNUNG

        public static final OutputProfile.Feature XMPMeetsFacturX1_XRECHNUNG
        The PDF XMP Metadata meets the requirements for Factur-X 1.x (XRECHNUNG conformance). Factur-X is the cross-european rebrand of ZUGFeRD. (not part of basic profile)
        Since:
        2.28.3
      • InfoDeclaresWTPDF_Reuse10

        public static final OutputProfile.Feature InfoDeclaresWTPDF_Reuse10
        The XMP Metadata contains a PDF declaration for WTPDF reuse level 1.0
        Since:
        2.28.4
      • InfoDeclaresWTPDF_Accessibility10

        public static final OutputProfile.Feature InfoDeclaresWTPDF_Accessibility10
        The XMP Metadata contains a PDF declaration for WTPDF accessibility level 1.0
        Since:
        2.28.4
      • ZUGFeRD1InvoiceAttachment

        public static final OutputProfile.Feature ZUGFeRD1InvoiceAttachment
        The PDF has an XML file attachment called "ZUGFeRD-invoice.xml", as specified by the ZUGFeRD 1.0 specification. No attempt is made to verify the contents of the file, if present it is presumed to be correct. This feature only verifies that the PDF side of the attachment is correct. (not part of basic profile)
        Since:
        2.20.1
      • ZUGFeRD2InvoiceAttachment

        public static final OutputProfile.Feature ZUGFeRD2InvoiceAttachment
        The PDF has an XML file attachment called "zugferd-invoice.xml" with a relationship of "Alternative", "Source", or "Data", as specified by the Factur-X 1.0 specification. No attempt is made to verify the contents of the file, if present it is presumed to be correct. This feature only verifies that the PDF side of the attachment is correct. (not part of basic profile)
        Since:
        2.28.3
      • ZUGFeRD2InvoiceAttachmentNotAlternative

        public static final OutputProfile.Feature ZUGFeRD2InvoiceAttachmentNotAlternative
        The PDF has an XML file attachment called "zugferd-invoice.xml" with a relationship that is not "Alternative", This is disallowed in Germany, but allowed in France. (not part of basic profile)
        Since:
        2.28.3
      • FacturX1InvoiceAttachment

        public static final OutputProfile.Feature FacturX1InvoiceAttachment
        The PDF has an XML file attachment called "factur-x.xml" with a relationship of "Alternative", "Source" or "Data", as specified by the FacturX 1.0 specification. No attempt is made to verify the contents of the file, if present it is presumed to be correct. This feature only verifies that the PDF side of the attachment is correct. (not part of basic profile)
        Since:
        2.28.3
      • FacturX1InvoiceAttachmentNotAlternative

        public static final OutputProfile.Feature FacturX1InvoiceAttachmentNotAlternative
        The PDF has an XML file attachment called "factur-x.xml" with a relationship that is not "Alternative". This is disallowed in Germany, but allowed in France. (not part of basic profile)
        Since:
        2.28.3
      • FacturX1XrechnungAttachment

        public static final OutputProfile.Feature FacturX1XrechnungAttachment
        The PDF has an XML file attachment called "xrechnung.xml" with a relationship of "Alternative", as specified by the Factur-X 1.0.06 specification. No attempt is made to verify the contents of the file, if present it is presumed to be correct. This feature only verifies that the PDF side of the attachment is correct. (not part of basic profile)
        Since:
        2.28.3
      • DisplayDocTitle

        public static final OutputProfile.Feature DisplayDocTitle
        The PDF ViewerPreferences dictionary sets DisplayDocTitle to true. This is required for PDF/UA.
        Since:
        2.20
      • ToUnicodeValueInvalid

        public static final OutputProfile.Feature ToUnicodeValueInvalid
        A ToUnicode map in the PDF maps a value to 0, 0xFFFE or 0xFFFF. This is disallowed for PDF/A-2, PDF/A-3 and PDF/UA (not part of basic profile)
        Since:
        2.20
      • PageAnnotationsNotInStructureOrder

        public static final OutputProfile.Feature PageAnnotationsNotInStructureOrder
        A PDF has a Structure Tree and a PDFPage containing Annotations, but does not specify the Tab order for those annotations as Structure order This is disallowed for PDF/UA-1 (not part of basic profile)
        Since:
        2.20
      • PageAnnotationsNotInStructureOrArrayOrder

        public static final OutputProfile.Feature PageAnnotationsNotInStructureOrArrayOrder
        A PDF has a Structure Tree and a PDFPage containing Annotations, but does not specify the Tab order for those annotations as Structure, Array or Widget order This is disallowed for PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • EncryptionDeniesAccessibility

        public static final OutputProfile.Feature EncryptionDeniesAccessibility
        The PDF is encrypted and the encryption flags disallow extraction of text content for the purposes of accessibility. This is not allowed in PDF/UA
        Since:
        2.20
      • MediaClipWithoutContentType

        public static final OutputProfile.Feature MediaClipWithoutContentType
        The PDF contains a "Media Clip" object (a video) without a CT (Content-Type) key. This is not allowed in PDF/UA (not part of basic profile)
        Since:
        2.24.4
      • MediaClipWithInvalidContentType

        public static final OutputProfile.Feature MediaClipWithInvalidContentType
        The PDF contains a "Media Clip" object (a video) with a CT (Content-Type) key that it not a valid Content-Type This is not recommended in ISO32000, and therefore PDF/UA (not part of basic profile)
        Since:
        2.28.2
      • MediaClipWithoutAlt

        public static final OutputProfile.Feature MediaClipWithoutAlt
        The PDF contains a "Media Clip" object (a video) without valid Alternate text This is not allowed in PDF/UA-1 (not part of basic profile)
        Since:
        2.24.4
      • TagArtifactInStructureTree

        public static final OutputProfile.Feature TagArtifactInStructureTree
        The PDF contains an "Artifact" tag in the Structure Tree. This only has meaning in PDF 2.0, where it is an alternative method of specifying Artifacts. In PDF 1.0, "Artifact" is just an undefined Tag.
        Since:
        2.20
      • TagTaggedContentInsideArtifact

        public static final OutputProfile.Feature TagTaggedContentInsideArtifact
        The PDF contains a non-artifact tag which is a node in the StructureTree, but is also inside an "Artifact" tag. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.20
      • TagArtifactInsideTaggedContent

        public static final OutputProfile.Feature TagArtifactInsideTaggedContent
        The PDF contains an "Artifact" tag which is inside a non-artifact tag referenced from the Structure Tree. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24.4
      • TagUnmarkedContent

        public static final OutputProfile.Feature TagUnmarkedContent
        The PDF contains visible content that is unmarked - i.e. it is neither an Artifact or part of the Structure Tree. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.20
      • TagMismarkedContent

        public static final OutputProfile.Feature TagMismarkedContent
        The PDF contains visible content that is marked with an invalid id. This is also considered unmarked This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24
      • TaggedPDFHasSuspects

        public static final OutputProfile.Feature TaggedPDFHasSuspects
        The PDF contains a MarkInfo dictionary that sets "Suspects" to true. This is disallowed in PDF/UA.
        Since:
        2.20
      • TagNonStandard1x

        public static final OutputProfile.Feature TagNonStandard1x
        The PDF contains a Tag which is not one of the standard tags described in ISO32000-1, or it contains a standard tag that is mapped to a tag that meets this description. This is disallowed in PDF/UA, PDF/A-2a and PDF/A-3a. (Renamed from TagNonStandard in 2.24, which was added in 2.20) (not part of basic profile)
        Since:
        2.24
      • TagNonStandard14

        public static final OutputProfile.Feature TagNonStandard14
        The PDF contains a Tag which is not one of the standard tags described in PDF Reference 1.4, or it contains a standard tag that is mapped to a tag that meets this description. This feature is the "PDF 1.4" version of TagNonStandard1x. It is disallowed in PDF/A-1a (not part of basic profile)
        Since:
        2.20
      • TagNonStandard2x

        public static final OutputProfile.Feature TagNonStandard2x
        The PDF contains a Tag which is not one of the standard tags described in PDFReference 2.0, or it contains a stndard tag whtat is mapped to a tag that meets this description.
        Since:
        2.24
      • TagCircularMapping

        public static final OutputProfile.Feature TagCircularMapping
        The PDF contains Tag RoleMap which forms a circular mappping. For PDF 1.x, this means the tag rolemaps to itself. For PDF 2.x, it means the tag rolemaps to another tag in the same namespace. This is disallowed in PDF/UA-1 (PDF 1.x) and UA-2 (PDF 2.x). (not part of basic profile)
        Since:
        2.20
      • TagRemappedStandard1x

        public static final OutputProfile.Feature TagRemappedStandard1x

        The PDF contains Tag RoleMap which remaps a tag that is considered standard in PDF 1.x. This is disallowed in PDF/UA, but is allowed in PDF/A-1 to PDF/A-3.

        Specifically, the requirement in PDF/UA-1 is that ""Standard tags defined in ISO 32000-1:2008, 14.8.4, shall not be remapped.".

        (renamed from TagRemappedStandardType in 2.24; original in 2.20) (not part of basic profile)
        Since:
        2.24
      • TagRemappedStandard1xToUnknown

        public static final OutputProfile.Feature TagRemappedStandard1xToUnknown

        The PDF contains Tag RoleMap which remaps a tag that is considered standard in PDF 1.x to a tag that is not. This is disallowed in PDF/A-1 to PDF/A-3 and PDF/UA-1.

        Since:
        2.26.1
      • TagRemappedInvalidValue

        public static final OutputProfile.Feature TagRemappedInvalidValue
        The PDF contains Tag RoleMap which maps to an empty String, or an item that's not a String. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24.4
      • TagRemappedStandard2x

        public static final OutputProfile.Feature TagRemappedStandard2x
        The PDF contains a Tag RoleMap which remaps a tag defined as standard in PDF 2.0. (renamed from TagRemappedStandardTypePDF20 in 2.24; original in 2.20.1) (not part of basic profile)
        Since:
        2.24
      • TagInvalidRoot1x

        public static final OutputProfile.Feature TagInvalidRoot1x
        The PDF contains a StructureTree where the root element is not a single Document, Part, Art, Sect or Div element. This is disallowed in PDF 1.x and PDF/UA (not part of basic profile)
        Since:
        2.24.
      • TagInvalidRoot2x

        public static final OutputProfile.Feature TagInvalidRoot2x
        The PDF contains a StructureTree where the root element is not a single Document. This is disallowed in PDF 2.x (not part of basic profile)
        Since:
        2.24.
      • TagMultipleRoots

        public static final OutputProfile.Feature TagMultipleRoots
        The PDF contains a StructureTree which has multipe root elements. This is disallowed in PDF 2.0 and PDF/UA (not part of basic profile)
        Since:
        2.24.
      • TagInvalidDocumentHierarchy

        public static final OutputProfile.Feature TagInvalidDocumentHierarchy
        A Document tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidDocumentHierarchyText

        public static final OutputProfile.Feature TagInvalidDocumentHierarchyText
        A Document tag is used in a way that does not conform to the nesting rules in ISO32000; specifically, it contains text content.
        Since:
        2.24.4
      • TagInvalidDocumentHierarchyInline

        public static final OutputProfile.Feature TagInvalidDocumentHierarchyInline
        A Document tag contains Inline tags. This is not allowed in the ISO32000:2 nesting rules, but is not spoken of in ISO32000:1 so we allow it in PDF/UA-1
        Since:
        2.24.4
      • TagInvalidGroupHierarchy

        public static final OutputProfile.Feature TagInvalidGroupHierarchy
        A Grouping structure tag is used in a way that does not conform to the nesting rules in ISO32000-1.
        Since:
        2.24
      • TagInvalidBlockHierarchy

        public static final OutputProfile.Feature TagInvalidBlockHierarchy
        A Block structure tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidInlineHierarchy

        public static final OutputProfile.Feature TagInvalidInlineHierarchy
        An Inline structure tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidTableHierarchy

        public static final OutputProfile.Feature TagInvalidTableHierarchy
        A Table structure tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidListHierarchy

        public static final OutputProfile.Feature TagInvalidListHierarchy
        A List structure tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidListHierarchyNoLBody

        public static final OutputProfile.Feature TagInvalidListHierarchyNoLBody
        A LI structure tag contains real content directly, rather than within an LBody element. This is allowed in ISO32000 but is not allowed in PDF/UA-2
        Since:
        2.28.5
      • TagInvalidRubyHierarchy

        public static final OutputProfile.Feature TagInvalidRubyHierarchy
        A Ruby structure tag is used in a way that does not conform to the nesting rules in ISO32000. This is not allowed in PDF1, PDF2 or PDF/UA (not part of basic profile)
        Since:
        2.24
      • TagInvalidWarichuHierarchy

        public static final OutputProfile.Feature TagInvalidWarichuHierarchy
        A Warichu structure tag is used in a way that does not conform to the nesting rules in ISO32000 (split from InvalidRubyHierarchy in 2.28.2). This is not allowed in PDF2 or PDF/UA2, but is only a recommentation to avoid in PDF1 and PDF/UA1 (not part of basic profile)
        Since:
        2.28.2
      • TagInvalidAnnotationHierarchy

        public static final OutputProfile.Feature TagInvalidAnnotationHierarchy
        A Link, Form or Annot tag is used in a way that does not conform to the nesting rules in ISO32000. This feature is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.20
      • TagInvalidAnnotationParent

        public static final OutputProfile.Feature TagInvalidAnnotationParent

        An annotation is not wrapped in an appropriate Annot, Link or Form tag, where appropriate means the rules from PDF/UA-1 or PDF/UA2, depending on the document: if the Document element is in the PDF2 namespace, the UA/2 rules apply.

        Generally, a Widget must be in "Form", a Link must be in "Link" and everything else must be in "Annot" although the latter rule is slightly relaxed for PDF/UA.2

        Prior to 2.28.2 this rule was combined with TagInvalidAnnotationHierarchy

        This feature is disallowed in PDF/UA-1 and PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • AnnotationNotInStructureTree

        public static final OutputProfile.Feature AnnotationNotInStructureTree

        An annotation is not referenced from the Structure Tree at all. This is only permissable in PDF/UA-2 if the annotation is considered by the author to be an artifact (ie. not "real content"). This is not allowed at all in PDF/UA-1. Prior to 2.28.4 this rule was combined with TagInvalidAnnotationParent (not part of basic profile)

        Since:
        2.28.4
      • TagInvalidTOCHierarchy

        public static final OutputProfile.Feature TagInvalidTOCHierarchy
        A TOC structure tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidHierarchy

        public static final OutputProfile.Feature TagInvalidHierarchy
        A general structure tag is used in a way that does not conform to the nesting rules in ISO32000.
        Since:
        2.24
      • TagInvalidMathMLHierarchy

        public static final OutputProfile.Feature TagInvalidMathMLHierarchy
        A MathML tag has a parent element that is not Formula. This is disallowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • TagInvalidDocumentHierarchy2

        public static final OutputProfile.Feature TagInvalidDocumentHierarchy2
        A Document tag has children that don't match the nesting rules in ISO32005. This is not allowed in PDF/UA-2
        Since:
        2.28.2
      • TagInvalidGroupHierarchy2

        public static final OutputProfile.Feature TagInvalidGroupHierarchy2
        A Grouping tag has children that don't match the nesting rules in ISO32005. This is not allowed in PDF/UA-2
        Since:
        2.28.2
      • TagInvalidBlockHierarchy2

        public static final OutputProfile.Feature TagInvalidBlockHierarchy2
        A Block tag has children that don't match the nesting rules in ISO32005. This is not allowed in PDF/UA-2
        Since:
        2.28.2
      • TagInvalidInlineHierarchy2

        public static final OutputProfile.Feature TagInvalidInlineHierarchy2
        An Inline tag has children that don't match the nesting rules in ISO32005. This is not allowed in PDF/UA-2
        Since:
        2.28.2
      • TagRootIsDocument2

        public static final OutputProfile.Feature TagRootIsDocument2
        The root element of the Structure Tree is "Document" in the PDF 2.0 namespace. This is not required in PDF/UA-2
        Since:
        2.28.4
      • TagArtNested

        public static final OutputProfile.Feature TagArtNested
        An Art structure tag contains another Art structure tag. This is not recommended in ISO32000-1
        Since:
        2.28.2
      • TagGruesomeTable

        public static final OutputProfile.Feature TagGruesomeTable
        The PDF contains a Table with a TBody, but no THead or TFoot. This is technically allowed in PDF 1.x, but unnecessary and the TBody could be removed. The PAC tool recommends its removal. (not part of basic profile)
        Since:
        2.24
      • TagCaptionInMiddleOfList

        public static final OutputProfile.Feature TagCaptionInMiddleOfList
        The PDF contains an L or TOC tag that contains a Caption tag which is not the first or last child. This is not recommended in PDF 1.x and disallowed in PDF 2.x and PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • TagCaptionInMiddleOfTable

        public static final OutputProfile.Feature TagCaptionInMiddleOfTable
        The PDF contains a Table tag that contains a Caption tag which is not the first or last child. This is not recommended in PDF 1.x and disallowed in PDF 2.x and PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • TagCaptionInMiddle

        public static final OutputProfile.Feature TagCaptionInMiddle
        The PDF contains a tag (other than L, TOC or Table) that contains a Caption tag which is not the first or last child. This disallowed in PDF 2.x and PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • TagCaptionAtEndOfList

        public static final OutputProfile.Feature TagCaptionAtEndOfList
        The PDF contains an L or TOC tag that contains a Caption tag as the last child. This is not recommended in PDF 1.x (not part of basic profile)
        Since:
        2.28.2
      • TagListWithoutListNumbering

        public static final OutputProfile.Feature TagListWithoutListNumbering
        The PDF contains a L (List) tag which does not have the recommended "ListNumbering" attribute set. This is not recommended in PDF or PDF/UA-1 (not part of basic profile)
        Since:
        2.28.2
      • TagListLblWithoutListNumbering

        public static final OutputProfile.Feature TagListLblWithoutListNumbering
        The PDF contains a L (List) tag which contains List items that have labels (Lbl tags), however the "ListNumbering" attribute is not set on the List or it is set to "None". This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • TagListContinuedFromWithIncompleteRef

        public static final OutputProfile.Feature TagListContinuedFromWithIncompleteRef
        The PDF contains a L (List) tag with a "ContinuedFrom" attribute referrring to a previous part of the List. It also contains a "Refs" attribute which is supposed to refer to the other parts of the list if present, but the two do not match. This is disallowed in PDF/UA-2 (not part of basic profile)
        Since:
        2.28.2
      • TagTOCIWithoutRef

        public static final OutputProfile.Feature TagTOCIWithoutRef
        A TOCI structure tag does not contain a Ref pointing to the entry. This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • TagFENoteWithoutRef

        public static final OutputProfile.Feature TagFENoteWithoutRef
        A FENote structure tag does not have a Ref attribute set This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • TagFENoteWithoutReverseRef

        public static final OutputProfile.Feature TagFENoteWithoutReverseRef
        A FENote structure tag has a Ref pointing to an element that does not have a Ref back to the original FENote. This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • TagNote

        public static final OutputProfile.Feature TagNote
        The PDF contains a Note tag. This is not allowed in PDF/UA-2
        Since:
        2.28.2
      • TagTableHeadersInMiddle

        public static final OutputProfile.Feature TagTableHeadersInMiddle
        The PDF contains a Table with a THead not as it's first tabular element, or a TFoot not as it's last tabular element. This is invalid in PDF 1.x and in PDF/UA-1, but allowed in PDF 2.x (not part of basic profile)
        Since:
        2.24
      • TagTableNeedsTRxorTBody

        public static final OutputProfile.Feature TagTableNeedsTRxorTBody
        The PDF contains a Table which has either no TR or TBody children, or both TR and TBody children. PDF 1.x requires either one or the other. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24
      • TagTableIrregular

        public static final OutputProfile.Feature TagTableIrregular

        The PDF StructureTree contains a Table which is Irregular, in that it has cells that are overlapping or missing. This is not explicitly disallowed in PDF/UA-1, although the Matterhorn Protocol document has this to say: "irregular tables are almost always a strong indicator of improper table structure. It may be a good idea to raise a warning when such tables are encountered, but it is not required by the Matterhorn Protocol.

        Consequently we've chosen to add "Irregular Tables" to our PDF/UA-1 profile, as we think this is the most useful approach. They will certainly be disallowed in all future editions of PDF/UA

        Since:
        2.24.4
      • TagTableGroupIrregular

        public static final OutputProfile.Feature TagTableGroupIrregular
        The PDF StructureTree contains a THead, TBody or TFoot which is Irregular, in that it has cells that are overlapping or missing. This is not allowed in PDF/UA-1 or UA-2
        Since:
        2.24.4
      • TagFormulaAlternateMissing

        public static final OutputProfile.Feature TagFormulaAlternateMissing
        The PDF contains a Formula Tag missing both an Alt attribute and replacement text, This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24.4
      • TagFormulaAlternateEmpty

        public static final OutputProfile.Feature TagFormulaAlternateEmpty
        The PDF contains a Formula Tag that requires an Alt attribute or replacement text, and the Alt attribute is there bit it's zero-length. This is arguably disallowed in PDF/UA.
        Since:
        2.24.4
      • TagMathFormulaAlternateMissing

        public static final OutputProfile.Feature TagMathFormulaAlternateMissing
        The PDF contains a MathML Formula Tag missing both an Alt attribute and replacement text. This is not disallowed in PDF/UA, unlike non-mathematical formulae. (not part of basic profile)
        Since:
        2.28.2
      • TagMathFormulaAlternateEmpty

        public static final OutputProfile.Feature TagMathFormulaAlternateEmpty
        The PDF contains a Formula tag containing MathML, that requires an Alt attribute or replacement text, and the Alt attribute is there bit it's zero-length. This is not disallowed in PDF/UA, unlike non-mathematical formulae. (not part of basic profile)
        Since:
        2.28.2
      • TagFigureAlternateMissing

        public static final OutputProfile.Feature TagFigureAlternateMissing
        The PDF contains a Figure Tag that is missing both the Alt and ActualText attributes. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24.4
      • TagFigureAlternateEmpty

        public static final OutputProfile.Feature TagFigureAlternateEmpty
        The PDF contains a Figure Tag that has at best an empty Alt and ActualText attributes. This is arguably disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24.4
      • TagNestedAlternates

        public static final OutputProfile.Feature TagNestedAlternates
        The PDF contains a Tag with "alt" text that contains another tag with "alt" text. It's unclear what the best way to handle thsi is; although not disallowed in PDF/UA, it's best avoided.
        Since:
        2.24
      • TagAnnot

        public static final OutputProfile.Feature TagAnnot
        The PDF contains an Annot Tag in the Structure tree. This is not allowed in PDF 1.4
        Since:
        2.26
      • TagAnnotAlternateEmpty

        public static final OutputProfile.Feature TagAnnotAlternateEmpty
        The PDF contains an Annot Tag that has a zero-length alt attribute and its Annotation has no Contents key. This is arguably disallowed in PDF/UA. (not part of basic profile)
        Since:
        2.24.4
        See Also:
        TagAnnotAlternateMissing
      • TagLinkAlternateEmpty

        public static final OutputProfile.Feature TagLinkAlternateEmpty
        The PDF contains a Link Tag that has an empty alt attribute and its Annotation has no Contents key. This is arguably disallowed in PDF/UA. (not part of basic profile)
        Since:
        2.24.4
        See Also:
        TagLinkAlternateMissing
      • TagFormAlternateEmpty

        public static final OutputProfile.Feature TagFormAlternateEmpty
        The PDF contains a Form Tag with an empty "alt" attribute, and it contains a Widget with no "Contents" on a field with no Description. This is arguably disallowed in PDF/UA
        Since:
        2.24.4
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnTag

        public static final OutputProfile.Feature TagFormAlternateOnTag
        The PDF contains a Form Tag with an "alt" attribute, and it contains a Widget with no "Contents" on a field with no Description. This is currently incorrectly disallowed in Acrobat's PDF/UA profile.
        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnAnnot

        public static final OutputProfile.Feature TagFormAlternateOnAnnot

        The PDF contains a Form Tag with no "Alt" attribute, but the Widget it contains has a "Contents" and its field has no Description.

        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnAnnotAndTag

        public static final OutputProfile.Feature TagFormAlternateOnAnnotAndTag
        The PDF contains a Form Tag with an "alt" attribute, and it contains a Widget with a "Contents" on a field with no Description". This is currently incorrectly disallowed in Acrobat's PDF/UA profile.
        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnField

        public static final OutputProfile.Feature TagFormAlternateOnField
        The PDF contains a Form Tag with no "alt" attribute, and it contains a Widget with no "Contents" on a field with a Description".
        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnFieldAndTag

        public static final OutputProfile.Feature TagFormAlternateOnFieldAndTag
        The PDF contains a Form Tag with an "alt" attribute, and it contains a Widget with no "Contents" on a field with a Description". This is currently incorrectly disallowed in Acrobat's PDF/UA profile.
        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnFieldAndAnnot

        public static final OutputProfile.Feature TagFormAlternateOnFieldAndAnnot

        The PDF contains a Form Tag with no "Alt" attribute, but the Widget it contains has a "Contents" and its field has a Description.

        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnFieldAnnotAndTag

        public static final OutputProfile.Feature TagFormAlternateOnFieldAnnotAndTag
        The PDF contains a Form Tag with an "alt" attribute, and it contains a Widget with a "Contents" on a field with a Description".
        Since:
        2.24.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLbl

        public static final OutputProfile.Feature TagFormAlternateOnLbl
        The PDF contains a Form Tag with a Lbl child but no "alt" attribute, and it contains a Widget with no "Contents" on a field with no Description.
        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblAndTag

        public static final OutputProfile.Feature TagFormAlternateOnLblAndTag
        The PDF contains a Form Tag with a Lbl child and an "alt" attribute, and it contains a Widget with no "Contents" on a field with no Description. This is currently incorrectly disallowed in Acrobat's PDF/UA profile.
        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblAndAnnot

        public static final OutputProfile.Feature TagFormAlternateOnLblAndAnnot

        The PDF contains a Form Tag with a Lbl child and no "Alt" attribute, but the Widget it contains has a "Contents" and its field has no Description.

        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblAnnotAndTag

        public static final OutputProfile.Feature TagFormAlternateOnLblAnnotAndTag
        The PDF contains a Form Tag with a Lbl child, an "alt" attribute, and it contains a Widget with a "Contents" on a field with no Description". This is currently incorrectly disallowed in Acrobat's PDF/UA profile.
        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblAndField

        public static final OutputProfile.Feature TagFormAlternateOnLblAndField
        The PDF contains a Form Tag with a Lbl child, no "alt" attribute, and it contains a Widget with no "Contents" on a field with a Description".
        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblFieldAndTag

        public static final OutputProfile.Feature TagFormAlternateOnLblFieldAndTag
        The PDF contains a Form Tag with a Lbl child and an "alt" attribute, and it contains a Widget with no "Contents" on a field with a Description". This is currently incorrectly disallowed in Acrobat's PDF/UA profile.
        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblFieldAndAnnot

        public static final OutputProfile.Feature TagFormAlternateOnLblFieldAndAnnot

        The PDF contains a Form Tag with a Lbl child and no "Alt" attribute, but the Widget it contains has a "Contents" and its field has a Description.

        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormAlternateOnLblFieldAnnotAndTag

        public static final OutputProfile.Feature TagFormAlternateOnLblFieldAnnotAndTag
        The PDF contains a Form Tag with a Lbl child and an "alt" attribute, and it contains a Widget with a "Contents" on a field with a Description".
        Since:
        2.28.2
        See Also:
        TagFormAlternateMissing
      • TagFormActionsNoContents

        public static final OutputProfile.Feature TagFormActionsNoContents
        The PDF contains a Form Tag with a widget that contains Additional Actions, but has no Content specified. This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • TagAnnotAltContentsMismatch

        public static final OutputProfile.Feature TagAnnotAltContentsMismatch
        The PDF contains a Tag that contains an annotation. The "alt" attribute is set on the Tag, and the Contents property is set on the annotation, but the two values mismatch. This is disallowed in PDF/UA-2. (not part of basic profile)
        Since:
        2.28.2
      • TagFigureBBoxMissing

        public static final OutputProfile.Feature TagFigureBBoxMissing
        The PDF contains a Figure Tag with no BBox attribute. This is disallowed in PDF/UA (not part of basic profile)
        Since:
        2.24
      • TagFormulaBBoxMissing

        public static final OutputProfile.Feature TagFormulaBBoxMissing
        The PDF contains a Formula Tag with no BBox attribute. This should proabbly lbe is disallowed in PDF/UA, but isn't (not part of basic profile)
        Since:
        2.28.2
      • TagFigureNoContent

        public static final OutputProfile.Feature TagFigureNoContent
        The PDF contains a Figure Tag with no content descendants. This is perfectly valid, but Acrobat's PDF/UA validation complains about it as invalid. (not part of basic profile)
        Since:
        2.24
      • TagFigureOrFormulaInsideBT

        public static final OutputProfile.Feature TagFigureOrFormulaInsideBT
        The Figure tag appears between BT and ET operators delimiting a text object. This is not allowed in ISO32000, so is not allowed in PDF/UA (not part of basic profile)
        Since:
        2.28.2
      • TagNoContent

        public static final OutputProfile.Feature TagNoContent
        The PDF contains a Tag with no content children. This is valid, but possibly not very useful as it means at least part of the Document Structure is divorced from the content on the page. It could indicate Structure remains after the pages it refer to have been deleted. (not part of basic profile)
        Since:
        2.24
      • TagWeakHeadingNotConsecutive

        public static final OutputProfile.Feature TagWeakHeadingNotConsecutive
        The PDF contains a "weak" heading Tag (H1..H6) that do not descend consecutively, so (for example) an H3 follow an H1. This is disallowed in PDF/UA-1 "if the document semantics require it", which is usally presumed to be always. (split from TagWeakHeadingStartsAfterOne in 2.28.2; combined from TagBadHeadingNumber and TagSkippedHeadingNuber in 2.24, both originally added in 2.20.) (not part of basic profile)
        Since:
        2.24
      • TagWeakHeadingStartsAfterOne

        public static final OutputProfile.Feature TagWeakHeadingStartsAfterOne
        The first "weak" heading (H1...H6) found in the PDF structure tree is not an H1. This is disallowed in PDF/UA-1. (not part of basic profile)
        Since:
        2.24
      • TagWeakHeadingAdditional

        public static final OutputProfile.Feature TagWeakHeadingAdditional
        The PDF structure tree contains a "weak" heading tag of the form Hn where n > 6 - for example, H7. These are not defined in ISO32000-1 but are defined in PDF/UA-1 and ISO32000-2 (not part of basic profile)
        Since:
        2.28.2
      • TagStrongAndWeakHeadings

        public static final OutputProfile.Feature TagStrongAndWeakHeadings
        The PDF contains both "strong" headings (the "H" Tag) and "weak" headings (H1..H6). This is not allowed in PDF/uA-1 (not part of basic profile)
        Since:
        2.24.4
      • TagStrongHeading

        public static final OutputProfile.Feature TagStrongHeading
        The PDF contains an "H" element in the structure tree.
        Since:
        2.24.4
      • TagStrongHeadingNotFirst

        public static final OutputProfile.Feature TagStrongHeadingNotFirst
        The PDF contains an "H" element in the structure tree that is not the first child of its parent. This is not recommended in PDF 1.x or PDF 2.x
        Since:
        2.28.2
      • TagMultipleHeadings

        public static final OutputProfile.Feature TagMultipleHeadings
        The PDF contains an element in the structure tree which contains an H element and at least one other H or Hn element. This is not allowed in PDF 2.x
        Since:
        2.28.1
      • TagTHWithoutScope

        public static final OutputProfile.Feature TagTHWithoutScope
        The PDF contains at least one TD cell that doesn't contain a valid "headers" attribute, and at least one TH cell that doesn't have a "Scope" set. This is the literal requirement of PDF/UA-1 section 7.5, so is disallowed in PDF/UA-1. Note the exact meaning of this test changed slightly in 2.24.4 - it was previously set even if all cells had a valid "headers". (renamed from TagNoScope in 2.24; originally added in 2.20) (not part of basic profile)
        Since:
        2.24
      • TagTDWithInferredHeaders

        public static final OutputProfile.Feature TagTDWithInferredHeaders
        The PDF contains a TD element in a Table which can be mapped to at least one corresponding TH cell using a standard algorithm, but the mapping is not explicitly stated (with a "Headers" attribute on the cell or a "Scope" attribute on the header). This is allowed in PDF/UA-2. Denying this feature will cause the relationships to be made explicit (not part of basic profile)
        Since:
        2.24
      • TagTDWithIndeterminateHeaders

        public static final OutputProfile.Feature TagTDWithIndeterminateHeaders
        The PDF contains a TD element in a Table which cannot be mapped to at least one corresponding TH cell using a standard algorithm, and has no explicitly stated mapping (with a "Headers" attribute on the cell or a "Scope" attribute on the header). This is not allowed in PDF/UA-2. Denying this feature will cause the relationships to be made explicit (not part of basic profile)
        Since:
        2.24
      • TagNoteIDNotUnique

        public static final OutputProfile.Feature TagNoteIDNotUnique
        The PDF contains a Note Tag which has an ID that is used elsewhere, or it has no ID at all. This is disallowed in PDF/UA (not part of basic profile) (rename from TagAnnotationNoteIDNotUnique in 2.24; originally added in 2.20)
        Since:
        2.24
      • TagLinkActionMixed

        public static final OutputProfile.Feature TagLinkActionMixed
        The PDF contains a Link element that contains multiple Link annotations, and at least two of those differ in their action. This is disallowed in PDF2.0 and strongly advised against in PDF/UA. (not part of basic profile)
        Since:
        2.24
      • TagLinkActionDuplicate

        public static final OutputProfile.Feature TagLinkActionDuplicate
        The PDF contains a Link element that contains multiple Link annotations, all of which perform the same action. This is disallowed in PDF2.0, and allowed but deprecated in PDF1.7+ (not part of basic profile)
        Since:
        2.24.2
      • TagLinkActionDuplicateSamePage

        public static final OutputProfile.Feature TagLinkActionDuplicateSamePage
        The PDF contains a Link element that contains multiple Link annotations, all of which perform the same action, and the links are on the same page. This is disallowed in PDF2.0, and allowed but deprecated in PDF1.7+ (not part of basic profile)
        Since:
        2.24.2
      • LinkIsImageMap

        public static final OutputProfile.Feature LinkIsImageMap
        The PDF contains an AnnotationLink that contains a PDFAction which is an ImageMap. This is only allowed in PDF/UA if alternatives to the ImageMap are avaiable.
        Since:
        2.24
      • StructureTreeDamaged

        public static final OutputProfile.Feature StructureTreeDamaged
        The StructureTree is invalid in some way
        Since:
        2.24
      • StructureTreeNamespace

        public static final OutputProfile.Feature StructureTreeNamespace
        The StructureTree has Namespaces specified, which is a PDF 2.0 feature (not part of basic profile)
        Since:
        2.24
      • StructureTreeParentTreeMismatch

        public static final OutputProfile.Feature StructureTreeParentTreeMismatch
        The StructureTree references some marked content nodes in the "ParentTree" list which are not accessible from the root of the tree. Effectively these nodes are "orphaned", but as they're not reachable from the root of the structure tree they're ignored by many PDF/UA tools. We don't consider these invalid, but do warn about them as it indicates the PDF may be larger than it needs to be. (not part of basic profile)
        Since:
        2.24.3
      • StructureTreeByIdMismatch

        public static final OutputProfile.Feature StructureTreeByIdMismatch
        The StructureTree "IDTree" map should serve as a lookup for each item in the tree with an ID, but if this feature is set there's a mismatch: either an item is in the map that has no ID, or an item with an ID is not in the tree. While technically a violation of the requirements in ISO32000, it's probably safe to allow and is not included in the PDF/UA requirements.
        Since:
        2.24
      • StructParentsUnresolvable

        public static final OutputProfile.Feature StructParentsUnresolvable
        A page or stream in the PDF has a "StructParent" or "StructParents" entry, but there is no StructTreeRoot.ParentTree to resolve this. This is an extremely common and fairly harmless form of damage; on its own, it usually indicates the StructureTree was removed but the pages not cleaned up (not part of basic profile)
        Since:
        2.24;
      • TagActualText

        public static final OutputProfile.Feature TagActualText
        The PDF contains page content which is marked with the "ActualText" tag. Uniquely, this tag and TagReversedChars can be used without a full structure tree being present. The purpose is to identify the logical value of a block of text in the PDF, which is useful when trying to discern this from the glyphs will be difficult; in particular, if the text is in Arabic or Hebrew, or has been heavily stylized with OpenType features. (not part of basic profile)
        Since:
        2.20.1
        See Also:
        TagReversedChars, TagActualTextPUA, TagActualTextInTree
      • TagActualTextInTree

        public static final OutputProfile.Feature TagActualTextInTree
        The PDF contains page content which is in an element that has an ActualText attribute. This is similar to TagActualText but while that indicates the text is in the page stream, this indicates the ActualText is present in the tree. Both are perfectly valid, but Acrobat seems to ignore this usage if specified.
        Since:
        2.26.1
      • TagActualTextPUA

        public static final OutputProfile.Feature TagActualTextPUA
        The PDF contains page content marked with an "ActuaText" tag, as defined in TagActualText. However that content maps to private-use area Unicode values, which means they have no real meaning. This is not allowed in PDF/A-4
        Since:
        2.24.3
        See Also:
        TagActualText
      • TagAltPUA

        public static final OutputProfile.Feature TagAltPUA
        The PDF contains page content marked with an "Alt" attribute, however it contains private-use area Unicode values, which means they have no real meaning. This is not allowed in PDF/A-4
        Since:
        2.28.4
        See Also:
        TagActualText
      • TagReversedChars

        public static final OutputProfile.Feature TagReversedChars
        The PDF contains page content which is marked with the "ReversedChars" tag. Uniquely, this tag and TagActualText can be used without a full structure tree being present. The purpose is to idenfity when a run of glyphs is in a right-to-left language such as Hebrew or Arabic, allowing text extraction algorithms to adjust alternatively. (not part of basic profile)
        Since:
        2.20.1
        See Also:
        TagActualText
      • SignatureWithUnknownHash

        public static final OutputProfile.Feature SignatureWithUnknownHash
        The PDF contains a Digital Signature that makes use of an unrecognised algorithm somewhere. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. This is a catch-all feature which includes MD2 and MD4, both long sing deprecated, and the veracity of any Digital Signatures with this property should be doubted.
        Since:
        2.20
      • SignatureWithMD5

        public static final OutputProfile.Feature SignatureWithMD5
        The PDF contains a Digital Signature that makes use of the MD5 algorithm somewhere. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. The MD5 algorithm has been considered ineffective for any sort cryptographic purpose since about 2005 but has lingered on, typically in root certificates.
        Since:
        2.20
      • SignatureWithRIPEMD160

        public static final OutputProfile.Feature SignatureWithRIPEMD160
        The PDF contains a Digital Signature that makes use of the RIPEMD-160 algorithm somewhere. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. RIPEMD-160 is a rarely-seen hash algorithm of lesser strength than SHA1, and is not recommended for any sort cryptographic purpose.
        Since:
        2.20
      • SignatureWithSHA1

        public static final OutputProfile.Feature SignatureWithSHA1
        The PDF contains a Digital Signature that makes use of the SHA1 algorithm somewhere. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. The SHA1 algorithm is being slowly deprecated and at the time of writing (March 2017) is considered insecure for any sort of crytographic purposes. Unless there is a specific requirement to target Acrobat 7 or earlier, SHA1 should not be used.
        Since:
        2.20
      • SignatureWithSHA256

        public static final OutputProfile.Feature SignatureWithSHA256
        The PDF contains a Digital Signature that makes use of the SHA-256 (more properly, SHA-2 256bit) algorithm. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. Hash algorithms from the SHA-2 family are currently (March 2017) the recommended hash algorithm for cryptographic purposes.
        Since:
        2.20
      • SignatureWithSHA384

        public static final OutputProfile.Feature SignatureWithSHA384
        The PDF contains a Digital Signature that makes use of the SHA-384 (more properly, SHA-2 384bit) algorithm. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. Hash algorithms from the SHA-2 family are currently (March 2017) the recommended hash algorithm for cryptographic purposes.
        Since:
        2.20
      • SignatureWithSHA512

        public static final OutputProfile.Feature SignatureWithSHA512
        The PDF contains a Digital Signature that makes use of the SHA-512 (more properly, SHA-2 512bit) algorithm. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. Hash algorithms from the SHA-2 family are currently (March 2017) the recommended hash algorithm for cryptographic purposes.
        Since:
        2.20
      • SignatureWithSHA3_256

        public static final OutputProfile.Feature SignatureWithSHA3_256
        The PDF contains a Digital Signature that makes use of the SHA3-256 digest algorithm. This was added to PDF 2.0 in the ISO32001 extension.
        Since:
        2.27.2
      • SignatureWithSHA3_384

        public static final OutputProfile.Feature SignatureWithSHA3_384
        The PDF contains a Digital Signature that makes use of the SHA3-384 digest algorithm. This was added to PDF 2.0 in the ISO32001 extension.
        Since:
        2.27.2
      • SignatureWithSHA3_512

        public static final OutputProfile.Feature SignatureWithSHA3_512
        The PDF contains a Digital Signature that makes use of the SHA3-512 digest algorithm. This was added to PDF 2.0 in the ISO32001 extension.
        Since:
        2.27.2
      • SignatureWithSHAKE256

        public static final OutputProfile.Feature SignatureWithSHAKE256
        The PDF contains a Digital Signature that makes use of the SHAKE256 digest algorithm. This was added to PDF 2.0 in the ISO32001 extension.
        Since:
        2.27.2
      • SignatureWithRSA

        public static final OutputProfile.Feature SignatureWithRSA
        The PDF contains a Digital Signature that makes use of the RSA encryption algorithm somewhere. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. The vast majority of digital signatures use RSA of varying key lengths.
        Since:
        2.20
      • SignatureWithECDSA

        public static final OutputProfile.Feature SignatureWithECDSA
        The PDF contains a Digital Signature that makes use of the ECDSA (elliptic curve) algorithm somewhere. This could be in the signer certificate, the certifying certificates, the timestamp certificates or in the signature itself. Elliptic curve cryotography is supported by Acrobat DC, and accepted without error (although the signature will be unverifiable) in Acrobat 9 or later.
        Since:
        2.20
      • SignatureWithECDSA_brainpool

        public static final OutputProfile.Feature SignatureWithECDSA_brainpool
        The PDF contains a Digital Signature with an elliptic curve that makes use of one of the "brainpool" curves. This was added to PDF 2.0 in the ISO32002 extension.
        Since:
        2.27.2
      • SignatureWithEd448

        public static final OutputProfile.Feature SignatureWithEd448
        The PDF contains a Digital Signature with an "Ed448" Edwards Curve. This was added to PDF 2.0 in the ISO32002 extension.
        Since:
        2.27.2
      • SignatureWithEd25519

        public static final OutputProfile.Feature SignatureWithEd25519
        The PDF contains a Digital Signature with an "Ed25519" Edwards Curve. This was added to PDF 2.0 in the ISO32002 extension.
        Since:
        2.27.2
      • SignatureWithRSASSAPSS

        public static final OutputProfile.Feature SignatureWithRSASSAPSS
        The PDF contains a Digital Signature that makes use of the RSASSA-PSS probabilistic signature scheme as define in RFC8017. This seems to be supported by Acrobat but levels of support elsewhere is unknown.
        Since:
        2.26.1
      • SignatureWithUnknownEncryption

        public static final OutputProfile.Feature SignatureWithUnknownEncryption
        The PDF contains a Digital Signature that makes use of an encryption scheme that is not recognised by the API. There's a reasonable chance this is because the OID is simply unknown to the API rather than being anything exotic, feel free to email support with the file if you see this.
        Since:
        2.26.1
      • PDFXNamespaceNonStandardPrefix

        public static final OutputProfile.Feature PDFXNamespaceNonStandardPrefix
        The XMP metadata contains namespaces that should be prefixed dc, pdf, xmp, xmpMM and pdfix, but aren't. This is not allowed in PDF/X-4 (not part of basic profile).
        Since:
        2.24.3
      • PDFUANamespaceNonStandardPrefix

        public static final OutputProfile.Feature PDFUANamespaceNonStandardPrefix
        The XMP metadata contains a PDF/UA namespaces that should be prefixed pdfuaid, but isn't. This is not allowed in PDF/UA-2. (not part of basic profile).
        Since:
        2.28.4
      • PDFANamespaceNonStandardPrefix

        public static final OutputProfile.Feature PDFANamespaceNonStandardPrefix
        The XMP metadata contains a PDF/A namespaces that should be prefixed pdfaid, but isn't. This is not allowed in PDF/A-4. (not part of basic profile).
        Since:
        2.28.4
      • XMPHasDocumentID

        public static final OutputProfile.Feature XMPHasDocumentID
        The document XMP metadata defines the xmpMM:DocumentID entry. This is required in PDF/X-4. As of 2.25 it it always set on documents written by the PDF Library. (not part of basic profile).
        Since:
        2.24.3
      • XMPHasInstanceID

        public static final OutputProfile.Feature XMPHasInstanceID
        The document XMP metadata defines the xmpMM:InstanceID entry. This is required in PDF/X-4. As of 2.25 it it always set on documents written by the PDF Library. (not part of basic profile).
        Since:
        2.24.4
      • XMPHasVersionID

        public static final OutputProfile.Feature XMPHasVersionID
        The document XMP metadata defines the xmpMM:VersionID entry. This is required in PDF/X-4 (not part of basic profile).
        Since:
        2.24.3
      • XMPHasRenditionClass

        public static final OutputProfile.Feature XMPHasRenditionClass
        The document XMP metadata defines the xmpMM:RenditionClass entry. This is required in PDF/X-4 (not part of basic profile).
        Since:
        2.24.3
      • XMPHasTitle

        public static final OutputProfile.Feature XMPHasTitle
        The document XMP Metadata defines the dc:title entry. This is required in PDF/X-4 (not part of basic profile).
        Since:
        2.25
        See Also:
        HasTitle
      • XMPHasEmptyTitle

        public static final OutputProfile.Feature XMPHasEmptyTitle
        The XMP Metadata defines the dc:title entry, but it's an empty string. This is not allowed in PDF/X-4 (not part of basic profile).
        Since:
        2.25
        See Also:
        XMPHasTitle
      • XMPHasTrapped

        public static final OutputProfile.Feature XMPHasTrapped
        The XMP Metadata defines the pdf:Trapped entry, and it's value is true or false. This is required in PDF/X-4 (not part of basic profile).
        See Also:
        HasTrapped
      • XMPHasCreateDate

        public static final OutputProfile.Feature XMPHasCreateDate
        The document XMP Metadata defines a valid xmp:CreateDate entry. This is required in PDF/X-4 (not part of basic profile).
        Since:
        2.25
        See Also:
        HasCreationDate
      • XMPHasModifyDate

        public static final OutputProfile.Feature XMPHasModifyDate
        The XMP Metadata defines a valid xmp:ModifyDate entry. This is required in PDF/X-4 (not part of basic profile).
        Since:
        2.25
        See Also:
        HasModDate
      • XMPDateWithoutTimezone

        public static final OutputProfile.Feature XMPDateWithoutTimezone

        The XMP Metadata defines a date value which includes a time but does not describe a TimeZone. This is technically invalid under PDF/A-1 but was generally ignored, although recently (2022) it appears Acrobat is now testing for this (although it is doing so incorrectly for PDF/A-2 and PDF/A-3 as well, where it is allowed). As of August 2022 it remains an open question as to whether it is disallowed in any or all versions of PDF/A.

        If denied, we will repair the dates by trying to match the TimeZone to the dates used in the Info dictionary, if possible, or the current TimeZone of the PDF Library if not

        Since:
        2.26.3
      • XMPUnknownPDFXIDkey

        public static final OutputProfile.Feature XMPUnknownPDFXIDkey
        The XMP metadata has an unknown key in the pdfxid namespace. This is not allowed in PDF/X-4 (not part of basic profile).
        Since:
        2.24.3
      • XMPListItemNotResource

        public static final OutputProfile.Feature XMPListItemNotResource
        The XMP metadata has an rdf:li entry which is not a resource. To be valid an rdf:li must be <rdf:li parseType="resource"> or <rdf:li><rdf:Resource>, i.e. it must be or contain a resource. However this wasn't checked for in the older version of the PDF API, and it seems to be a relatively common error. This feature is set if its encountered - although it is not allowed in PDF/A as the XMP is technically malformed, it can be removed from the required list of PDF/A for compatibility with older versions of the PDF API
        Since:
        2.25
      • ViewBoxBleedBoxPagesMissing

        public static final OutputProfile.Feature ViewBoxBleedBoxPagesMissing
        The ViewerPreferences dictionary contains a ViewArea, ViewClip, PrintArea or PrintClip which is set to "BleedBox", but one or more of the pages in the PDF does not define BleedBox. This is not allowed in PDF/X-4 (not part of basic profile)
        Since:
        2.24.3
      • AlternatePresentations

        public static final OutputProfile.Feature AlternatePresentations
        At least one page in the PDF specifies the "AlternatePresentations" key. This is not allowed in PDF/X-4 (not part of basic profile)
        Since:
        2.24.3
      • XMPMetaDataInfoMismatchPDFX

        public static final OutputProfile.Feature XMPMetaDataInfoMismatchPDFX
        The PDF contains entries in its information dictionary that do not match the corresponding entries in its XMP metadata. This test is specific to keys required by PDF/X-4 (not part of basic profile).
        Since:
        2.24.3
      • HasEmptyTitle

        public static final OutputProfile.Feature HasEmptyTitle
        The PDF Info dictionary has a Title set, but it's empty
        Since:
        2.24.3
      • FontNameNotUTF8

        public static final OutputProfile.Feature FontNameNotUTF8
        The PDF contains a Name representing the name of a font which is not a valid UTF-8 byte sequence. This is disallowed for PDF/X-4 and PDF/A-2 and later
        Since:
        2.14.1
        See Also:
        NameNotUTF8
      • SeparationNameNotUTF8

        public static final OutputProfile.Feature SeparationNameNotUTF8
        The PDF contains a Name representing the name of a color separation which is not a valid UTF-8 byte sequence. This is disallowed for PDF/X-4 and PDF/A-2 and later
        Since:
        2.14.1
        See Also:
        NameNotUTF8
      • StructureNameNotUTF8

        public static final OutputProfile.Feature StructureNameNotUTF8
        The PDF contains a Name representing the name of an element in the Structure Tree which is not a valid UTF-8 byte sequence. This is disallowed for PDF/X-4 and PDF/A-2 and later
        Since:
        2.14.1
        See Also:
        NameNotUTF8
      • RoleMapNameNotUTF8

        public static final OutputProfile.Feature RoleMapNameNotUTF8
        The PDF contains a Name representing the rolemapped name of an element in the Structure Tree which is not a valid UTF-8 byet sequence.
        Since:
        2.26.1
      • XMPMetadataDate

        public static final OutputProfile.Feature XMPMetadataDate
        The document XMP Metadata contains an "xmp:MetadataDate" field. This is normal, and required in PDF/X-4 (not part of basic profile)
        Since:
        2.24.3
      • NChannelPrintingOrder

        public static final OutputProfile.Feature NChannelPrintingOrder
        The PDF contains at least one N-CHannel color-space that specifies a printing order for its components. The order of components returned from OutputProfile.getColorSeparations() is significant.
        Since:
        2.24.3
      • NChannelPrintingOrderInconsistent

        public static final OutputProfile.Feature NChannelPrintingOrderInconsistent
        The PDF contains more than one N-Channel color-space which specifies a printing order for their components, but the printing-orders on at least two of the color-spaces is inconsistent, and they cannot both be reconciled. This is not allowed in PDF/X-4 or later (not part of basic profile)
        Since:
        2.24.3
      • NChannelSolidityInconsistent

        public static final OutputProfile.Feature NChannelSolidityInconsistent
        The PDF contains more than one N-Channel color-space which specify solidities for ther components, but the solidities for a particular component are specified differently in the two spaces. This is not allowed in PDF/X-4 or later (not part of basic profile)
        Since:
        2.24.3
      • NChannelSolidityNotOne

        public static final OutputProfile.Feature NChannelSolidityNotOne
        The PDF contains an N-Channel colorspace which specifies a component solidity value other than 1
        Since:
        2.24.3
      • NChannelProcessDeviceGray

        public static final OutputProfile.Feature NChannelProcessDeviceGray
        The PDF contains an N-Channel color-space that specifies process color, and the process color-space is DeviceGray (not part of basic profile).
        Since:
        2.24.3
      • NChannelProcessDeviceRGB

        public static final OutputProfile.Feature NChannelProcessDeviceRGB
        The PDF contains an N-Channel color-space that specifies process color, and the process color-space is DeviceRGB (not part of basic profile).
        Since:
        2.24.3
      • NChannelProcessDeviceCMYK

        public static final OutputProfile.Feature NChannelProcessDeviceCMYK
        The PDF contains an N-Channel color-space that specifies process color, and the process color-space is DeviceCMYK (not part of basic profile).
        Since:
        2.24.3
      • NChannelProcessCalibrated

        public static final OutputProfile.Feature NChannelProcessCalibrated
        The PDF contains an N-Channel color-space that specifies process color, and the process color-space is a calibrated (ICC or Lab) color-space. This is not allowed in PDF/X-4 or later. (not part of basic profile)
        Since:
        2.24.3
      • NChannelDotGain

        public static final OutputProfile.Feature NChannelDotGain
        The PDF contains an N-Channel color-space that specifies a dot-gain function. This is not allowed in PDF/X-4 or later. (not part of basic profile)
        Since:
        2.24.3
      • NChannelDotGainInconsistent

        public static final OutputProfile.Feature NChannelDotGainInconsistent
        The PDF contains more than one N-Channel color-space which specify dot-gain functions for ther components, but the functions for a particular component are specified differently in the two spaces. (not part of basic profile)
        Since:
        2.24.3
      • UnknownColorOrgIdentifier

        public static final OutputProfile.Feature UnknownColorOrgIdentifier
        The PDF contains an Output Intent that claims to be in the registry at http://www.color.org, but the name is not in that registry. This is not allowed in PDF/X, but everyone seems to tolerate it so we do too. (not part of basic profile)
        Since:
        2.24.3
      • PDFRaster10

        public static final OutputProfile.Feature PDFRaster10
        The PDF claims to conform to PDF Raster 1.0 (ISO23504-1:2020).
        Since:
        2.24.4
      • DocumentParts

        public static final OutputProfile.Feature DocumentParts
        The PDF contains a Document Parts structure. This is defined in ISO32000-2, and also in ISO16612-2.
        Since:
        2.24.3
      • DocumentPartsIncomplete

        public static final OutputProfile.Feature DocumentPartsIncomplete
        The PDF contains a Document Parts structure, but at least one page is not in a part.
        Since:
        2.28.3
      • DocumentPartsOverlap

        public static final OutputProfile.Feature DocumentPartsOverlap
        The PDF contains a Document Parts structure, but at least one page is in more than one part.
        Since:
        2.28.3
      • DocumentPartsInvalid

        public static final OutputProfile.Feature DocumentPartsInvalid
        The PDF contains a Document Parts structure, but there is a problem with the structure
        Since:
        2.28.3
      • NameTreeMixedEncoding

        public static final OutputProfile.Feature NameTreeMixedEncoding
        The PDF contains a NameTree with keys in a mixture of UCS (unicode-based) and non-UCS keys. This may cause unpredictable results in some PDF processors, and is generally a bad idea. Setting this feature to denied will repair it on write
        Since:
        2.28.4
    • Method Detail

      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getFieldName

        public java.lang.String getFieldName()
        Return the name of the field this feature is declared as in this class, eg "PDFVersion15" for PDFVersion15
        Since:
        2.13.2
      • getDescription

        public final java.lang.String getDescription()
        Get a brief textual description of the Feature
        Since:
        2.8.1