org.apache.fop.pdf

## Class PDFProfile

- java.lang.Object
- - org.apache.fop.pdf.PDFProfile

    public class PDFProfile
    extends Object

This class allows tracks the enabled PDF profiles (PDF/A and PDF/X) and provides methods to the libarary and its users to enable the generation of PDFs conforming to the enabled PDF profiles.

Some profile from PDF/X and PDF/A can be active simultaneously (example: PDF/A-1 and PDF/X-3:2003).

### Field Summary

Fields
`protected PDFAMode` `pdfAMode` Indicates the PDF/A mode currently active.
`protected PDFUAMode` `pdfUAMode`
`protected PDFVTMode` `pdfVTMode`
`protected PDFXMode` `pdfXMode` Indicates the PDF/X mode currently active.

### Constructor Summary

Constructors
Constructor and Description
`PDFProfile(PDFDocument doc)` Main constructor

### Method Summary

All Methods Instance Methods Concrete Methods
`PDFDocument` `getDocument()`
`PDFAMode` `getPDFAMode()`
`PDFUAMode` `getPDFUAMode()`
`PDFVTMode` `getPDFVTMode()`
`PDFXMode` `getPDFXMode()`
`boolean` `isAnnotationAllowed()`
`boolean` `isFontEmbeddingRequired()`
`boolean` `isIDEntryRequired()`
`boolean` `isModDateRequired()`
`boolean` `isPDFAActive()`
`boolean` `isPDFVTActive()`
`boolean` `isPDFXActive()`
`Object` `isTransparencyAllowed()` Returns `null` if transparency is allowed, otherwise returns the profile that prevents it.
`boolean` `isTrappedEntryRequired()`
`void` `setPDFAMode(PDFAMode mode)` Sets the PDF/A mode
`void` `setPDFUAMode(PDFUAMode mode)`
`void` `setPDFVTMode(PDFVTMode mode)` Sets the PDF/X mode
`void` `setPDFXMode(PDFXMode mode)` Sets the PDF/X mode
`String` `toString()`
`protected void` `validateProfileCombination()` Validates if the requested profile combination is compatible.
`void` `verifyActionAllowed()` Checks if Actions are allowed.
`void` `verifyAnnotAllowed()` Checks if annotations are allowed.
`void` `verifyEmbeddedFilesAllowed()` Checks if embedded files are allowed.
`void` `verifyEncryptionAllowed()` Checks if encryption is allowed.
`void` `verifyPDFVersion()` Checks if the right PDF version is set.
`void` `verifyPSXObjectsAllowed()` Checks if PostScript XObjects are allowed.
`void` `verifyTaggedPDF()` Checks a few things required for tagged PDF.
`void` `verifyTitleAbsent()` Checks if a title may be absent.
`void` `verifyTransparencyAllowed(String context)` Checks if the use of transparency is allowed.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### pdfAMode

    protected PDFAMode pdfAMode

Indicates the PDF/A mode currently active. Defaults to "no restrictions", i.e. PDF/A not active.

#### pdfUAMode

    protected PDFUAMode pdfUAMode

#### pdfXMode

    protected PDFXMode pdfXMode

Indicates the PDF/X mode currently active. Defaults to "no restrictions", i.e. PDF/X not active.

#### pdfVTMode

    protected PDFVTMode pdfVTMode

### Constructor Detail

#### PDFProfile

    public PDFProfile(PDFDocument doc)

Main constructor

Parameters:
  `doc` - the PDF document

### Method Detail

#### validateProfileCombination

    protected void validateProfileCombination()

Validates if the requested profile combination is compatible.

#### getDocument

    public PDFDocument getDocument()

Returns:
  the PDFDocument this profile is attached to

#### getPDFAMode

    public PDFAMode getPDFAMode()

Returns:
  the PDF/A mode

#### getPDFUAMode

    public PDFUAMode getPDFUAMode()

#### isPDFAActive

    public boolean isPDFAActive()

Returns:
  true if any PDF/A mode is active

#### setPDFAMode

    public void setPDFAMode(PDFAMode mode)

Sets the PDF/A mode

Parameters:
  `mode` - the PDF/A mode

#### setPDFUAMode

    public void setPDFUAMode(PDFUAMode mode)

#### getPDFXMode

    public PDFXMode getPDFXMode()

Returns:
  the PDF/X mode

#### getPDFVTMode

    public PDFVTMode getPDFVTMode()

#### isPDFXActive

    public boolean isPDFXActive()

Returns:
  true if any PDF/X mode is active

#### isPDFVTActive

    public boolean isPDFVTActive()

#### setPDFXMode

    public void setPDFXMode(PDFXMode mode)

Sets the PDF/X mode

Parameters:
  `mode` - the PDF/X mode

#### setPDFVTMode

    public void setPDFVTMode(PDFVTMode mode)

Sets the PDF/X mode

Parameters:
  `mode` - the PDF/X mode

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### verifyEncryptionAllowed

    public void verifyEncryptionAllowed()

Checks if encryption is allowed.

#### verifyPSXObjectsAllowed

    public void verifyPSXObjectsAllowed()

Checks if PostScript XObjects are allowed.

#### verifyTransparencyAllowed

    public void verifyTransparencyAllowed(String context)

Checks if the use of transparency is allowed.

Parameters:
  `context` - Context information for the user to identify the problem spot

#### isTransparencyAllowed

    public Object isTransparencyAllowed()

Returns `null` if transparency is allowed, otherwise returns the profile that prevents it.

Returns:
  `null`, or an object whose `toString` method returns the name of the profile that disallows transparency

#### verifyPDFVersion

    public void verifyPDFVersion()

Checks if the right PDF version is set.

#### verifyTaggedPDF

    public void verifyTaggedPDF()

Checks a few things required for tagged PDF.

#### isIDEntryRequired

    public boolean isIDEntryRequired()

Returns:
  true if the ID entry must be present in the trailer.

#### isFontEmbeddingRequired

    public boolean isFontEmbeddingRequired()

Returns:
  true if all fonts need to be embedded.

#### verifyTitleAbsent

    public void verifyTitleAbsent()

Checks if a title may be absent.

#### isModDateRequired

    public boolean isModDateRequired()

Returns:
  true if the ModDate Info entry must be present.

#### isTrappedEntryRequired

    public boolean isTrappedEntryRequired()

Returns:
  true if the Trapped Info entry must be present.

#### isAnnotationAllowed

    public boolean isAnnotationAllowed()

Returns:
  true if annotations are allowed

#### verifyAnnotAllowed

    public void verifyAnnotAllowed()

Checks if annotations are allowed.

#### verifyActionAllowed

    public void verifyActionAllowed()

Checks if Actions are allowed.

#### verifyEmbeddedFilesAllowed

    public void verifyEmbeddedFilesAllowed()

Checks if embedded files are allowed.