com.lowagie.text.pdf.internal

## Class PdfVersionImp

- java.lang.Object
- - com.lowagie.text.pdf.internal.PdfVersionImp

All Implemented Interfaces:
  PdfVersion

    public class PdfVersionImp
    extends java.lang.Object
    implements PdfVersion

Stores the PDF version information, knows how to write a PDF Header, and how to add the version to the catalog (if necessary).

### Field Summary

Fields
`protected boolean` `appendmode` Indicates if we are working in append mode.
`protected PdfName` `catalog_version` The version that will be written to the catalog.
`protected PdfDictionary` `extensions` The extensions dictionary.
`static byte[][]` `HEADER` Contains different strings that are part of the header.
`protected char` `header_version` The version that was or will be written to the header.
`protected boolean` `headerWasWritten` Indicates if the header was already written.

### Constructor Summary

Constructors
Constructor and Description
`PdfVersionImp()`

### Method Summary

Methods
`void` `addDeveloperExtension(PdfDeveloperExtension de)` Adds a developer extension to the Extensions dictionary in the Catalog.
`void` `addToCatalog(PdfDictionary catalog)` Adds the version to the Catalog dictionary.
`byte[]` `getVersionAsByteArray(char version)` Returns the version as a byte[].
`PdfName` `getVersionAsName(char version)` Returns the PDF version as a name.
`void` `setAppendmode(boolean appendmode)` Sets the append mode.
`void` `setAtLeastPdfVersion(char version)` If the PDF Header hasn't been written yet, this changes the version as it will appear in the PDF Header, but only if the parameter refers to a higher version.
`void` `setPdfVersion(char version)` If the PDF Header hasn't been written yet, this changes the version as it will appear in the PDF Header.
`void` `setPdfVersion(PdfName version)` Sets the PDF version as it will appear in the Catalog.
`void` `writeHeader(OutputStreamCounter os)` Writes the header to the OutputStreamCounter.

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

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

### Field Detail

#### HEADER

    public static final byte[][] HEADER

Contains different strings that are part of the header.

#### headerWasWritten

    protected boolean headerWasWritten

Indicates if the header was already written.

#### appendmode

    protected boolean appendmode

Indicates if we are working in append mode.

#### header_version

    protected char header_version

The version that was or will be written to the header.

#### catalog_version

    protected PdfName catalog_version

The version that will be written to the catalog.

#### extensions

    protected PdfDictionary extensions

The extensions dictionary.

Since:
  2.1.6

### Constructor Detail

#### PdfVersionImp

    public PdfVersionImp()

### Method Detail

#### setPdfVersion

    public void setPdfVersion(char version)

Description copied from interface: `PdfVersion`
If the PDF Header hasn't been written yet, this changes the version as it will appear in the PDF Header. If the PDF header was already written to the OutputStream, this changes the version as it will appear in the Catalog.

Specified by:
  `setPdfVersion` in interface `PdfVersion`
Parameters:
  `version` - a character representing the PDF version
See Also:
  `PdfVersion.setPdfVersion(char)`

#### setAtLeastPdfVersion

    public void setAtLeastPdfVersion(char version)

Description copied from interface: `PdfVersion`
If the PDF Header hasn't been written yet, this changes the version as it will appear in the PDF Header, but only if the parameter refers to a higher version. If the PDF header was already written to the OutputStream, this changes the version as it will appear in the Catalog.

Specified by:
  `setAtLeastPdfVersion` in interface `PdfVersion`
Parameters:
  `version` - a character representing the PDF version
See Also:
  `PdfVersion.setAtLeastPdfVersion(char)`

#### setPdfVersion

    public void setPdfVersion(PdfName version)

Description copied from interface: `PdfVersion`
Sets the PDF version as it will appear in the Catalog. Note that this only has effect if you use a later version than the one that appears in the header; this method ignores the parameter if you try to set a lower version.

Specified by:
  `setPdfVersion` in interface `PdfVersion`
Parameters:
  `version` - the PDF name that will be used for the Version key in the catalog
See Also:
  `PdfVersion.setPdfVersion(com.lowagie.text.pdf.PdfName)`

#### setAppendmode

    public void setAppendmode(boolean appendmode)

Sets the append mode.

#### writeHeader

    public void writeHeader(OutputStreamCounter os)
                     throws java.io.IOException

Writes the header to the OutputStreamCounter.

Throws:
  `java.io.IOException`

#### getVersionAsName

    public PdfName getVersionAsName(char version)

Returns the PDF version as a name.

Parameters:
  `version` - the version character.

#### getVersionAsByteArray

    public byte[] getVersionAsByteArray(char version)

Returns the version as a byte[].

Parameters:
  `version` - the version character

#### addToCatalog

    public void addToCatalog(PdfDictionary catalog)

Adds the version to the Catalog dictionary.

#### addDeveloperExtension

    public void addDeveloperExtension(PdfDeveloperExtension de)

Description copied from interface: `PdfVersion`
Adds a developer extension to the Extensions dictionary in the Catalog.

Specified by:
  `addDeveloperExtension` in interface `PdfVersion`
Parameters:
  `de` - an object that contains the extensions prefix and dictionary
Since:
  2.1.6
See Also:
  `PdfVersion.addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension)`