# FileSpecification

## Content

[**DsPdfJS API v9.1.3**](../README)

***

[DsPdfJS API](../globals) / FileSpecification

# Class: FileSpecification

Represents a PDF File Specification.

The complex architecture of this class is based on the PDF Specification,
for full details please consult that spec.

## See

[FileSpecificationProperties](../type-aliases/FileSpecificationProperties)

## Extends

- [`ObjectBase`](ObjectBase)

## Constructors

### Constructor

> **new FileSpecification**(`om`, `properties`): `FileSpecification`

Creates a FileSpecification object on the base of properties specified by the
[FileSpecificationProperties](../type-aliases/FileSpecificationProperties).

#### Parameters

##### om

[`ObjectManager`](ObjectManager)

[ObjectManager](ObjectManager) that controls the lifetime of the FileSpecification.

##### properties

[`FileSpecificationProperties`](../type-aliases/FileSpecificationProperties)

The properties of created object.

#### Returns

`FileSpecification`

#### Overrides

`ObjectBase.constructor`

### Constructor

> **new FileSpecification**(`properties`): `FileSpecification`

Creates a FileSpecification object on the base of properties specified by the
[FileSpecificationProperties](../type-aliases/FileSpecificationProperties).

#### Parameters

##### properties

[`FileSpecificationProperties`](../type-aliases/FileSpecificationProperties)

The properties of created object.

#### Returns

`FileSpecification`

#### Overrides

`ObjectBase.constructor`

### Constructor

> **new FileSpecification**(`om`, `fileName`, `stream`, `desc?`): `FileSpecification`

Creates a FileSpecification associated with the specified [EmbeddedFileStream](EmbeddedFileStream) object.

#### Parameters

##### om

[`ObjectManager`](ObjectManager)

[ObjectManager](ObjectManager) that controls the lifetime of the FileSpecification.

##### fileName

`string`

The file name used as a name for embedded file.

##### stream

[`EmbeddedFileStream`](EmbeddedFileStream)

The [EmbeddedFileStream](EmbeddedFileStream) associated with created file specification.

##### desc?

`string`

The optional description.

#### Returns

`FileSpecification`

#### Overrides

`ObjectBase.constructor`

### Constructor

> **new FileSpecification**(`fileName`, `stream`, `desc?`): `FileSpecification`

Creates a FileSpecification associated with the specified [EmbeddedFileStream](EmbeddedFileStream) object.

#### Parameters

##### fileName

`string`

The file name used as a name for embedded file.

##### stream

[`EmbeddedFileStream`](EmbeddedFileStream)

The [EmbeddedFileStream](EmbeddedFileStream) associated with created file specification.

##### desc?

`string`

The optional description.

#### Returns

`FileSpecification`

#### Overrides

`ObjectBase.constructor`

## Accessors

### desc

#### Get Signature

> **get** **desc**(): `string` \| `null`

Gets or sets the description of this File Specification.

##### Returns

`string` \| `null`

#### Set Signature

> **set** **desc**(`value`): `void`

Gets or sets the description of this File Specification.

##### Parameters

###### value

`string` | `null`

##### Returns

`void`

***

### fileSystem

#### Get Signature

> **get** **fileSystem**(): `string` \| `null`

Gets or sets the file system to be used to interpret this file specification.

If this property is present, all other properties are interpreted by the designated file system.
PDF defines only one standard file system name, URL;
an application or plug-in extension can register other names.

##### Returns

`string` \| `null`

#### Set Signature

> **set** **fileSystem**(`value`): `void`

Gets or sets the file system to be used to interpret this file specification.

If this property is present, all other properties are interpreted by the designated file system.
PDF defines only one standard file system name, URL;
an application or plug-in extension can register other names.

##### Parameters

###### value

`string` | `null`

##### Returns

`void`

***

### hasEmbeddedFileStream

#### Get Signature

> **get** **hasEmbeddedFileStream**(): `boolean`

Gets a value indicating that this file specification has at least one
[EmbeddedFileStream](EmbeddedFileStream) associated with it.

##### Returns

`boolean`

***

### id

#### Get Signature

> **get** **id**(): `number`

Gets the reference to the object.

##### Returns

`number`

#### Inherited from

[`ObjectBase`](ObjectBase).[`id`](ObjectBase#id)

***

### ID

#### Get Signature

> **get** **ID**(): [`FileID`](../type-aliases/FileID) \| `null`

Gets or sets the [FileID](../type-aliases/FileID) object specifying the ID of the referenced file.

This property improves an application's chances of finding the intended file and allows it to warn
the user if the file has changed since the link was made.

##### Returns

[`FileID`](../type-aliases/FileID) \| `null`

#### Set Signature

> **set** **ID**(`value`): `void`

Gets or sets the [FileID](../type-aliases/FileID) object specifying the ID of the referenced file.

This property improves an application's chances of finding the intended file and allows it to warn
the user if the file has changed since the link was made.

##### Parameters

###### value

[`FileID`](../type-aliases/FileID) | `null`

##### Returns

`void`

***

### om

#### Get Signature

> **get** **om**(): [`ObjectManager`](ObjectManager)

Gets the owner [ObjectManager](ObjectManager) instance.

##### Returns

[`ObjectManager`](ObjectManager)

#### Inherited from

[`ObjectBase`](ObjectBase).[`om`](ObjectBase#om)

***

### relationship

#### Get Signature

> **get** **relationship**(): `string` \| `null`

Gets or sets a value that represents the relationship of this object
to the source that points to it.

Predefined values are **Source**, **Data**, **Alternative**,
**Supplement** and **Unspecified**.

##### Returns

`string` \| `null`

#### Set Signature

> **set** **relationship**(`value`): `void`

Gets or sets a value that represents the relationship of this object
to the source that points to it.

Predefined values are **Source**, **Data**, **Alternative**,
**Supplement** and **Unspecified**.

##### Parameters

###### value

`string` | `null`

##### Returns

`void`

***

### volatile

#### Get Signature

> **get** **volatile**(): `boolean`

Gets or sets a value indicating whether the file referenced by the file specification is volatile
(changes frequently with time). If the value is true, applications should never cache a copy of the file.

##### Returns

`boolean`

#### Set Signature

> **set** **volatile**(`value`): `void`

Gets or sets a value indicating whether the file referenced by the file specification is volatile
(changes frequently with time). If the value is true, applications should never cache a copy of the file.

##### Parameters

###### value

`boolean`

##### Returns

`void`

## Methods

### free()

> **free**(): `void`

Detaches the object from the [ObjectManager](ObjectManager) and deallocates its memory, if possible.

#### Returns

`void`

#### Inherited from

[`ObjectBase`](ObjectBase).[`free`](ObjectBase#free)

***

### getStream()

> **getStream**(): `Uint8Array`\<`ArrayBufferLike`\> \| `null`

Gets a value indicating that this file specification has at least one
[EmbeddedFileStream](EmbeddedFileStream) associated with it.

#### Returns

`Uint8Array`\<`ArrayBufferLike`\> \| `null`

***

### rebind()

> **rebind**(`omTo`): `void`

Rebinds the object from the current [ObjectManager](ObjectManager) to the specified one.

#### Parameters

##### omTo

[`ObjectManager`](ObjectManager)

The new [ObjectManager](ObjectManager) for the object.

#### Returns

`void`

#### Inherited from

[`ObjectBase`](ObjectBase).[`rebind`](ObjectBase#rebind)
