# Container Class

> A container class represents a group of elements on a page in a PDF file.

- Product: Adobe PDF Library 18
- Language: Java
- Version: APDFL18.0.5PlusP2e
- HTML page: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container
- Version index: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/llms.txt

```java
class Container : Element
```

**Namespace:** `com::datalogics::PDFL`

**Inherits from:** [`Element`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Element.md)

## Description

A container class represents a group of elements on a page in a PDF file. In the PDF file, every container has a set of Marked Content tags, starting with Begin Marked Content (BMC or BDC) and ending with End Marked Content (EMC), so each container has a BMC/EMC or BDC/EMC pair of tags. These tags can be used to define the beginning and end of metadata around objects, providing information about the text and shapes within a PDF file. Containers can be nested within other containers.

**Referenced by:** [`Container`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container.md)

**Uses types:** [`Clip`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Clip.md), [`Container`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md), [`Matrix`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Matrix.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PDFDict.md), [`Rect`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Rect.md)

## Constructors

### Container

```java
com.datalogics.PDFL.Container.Container()
```

*constructor*

Create a new Container.

The new Container has no tag and is not associated with a dictionary.

### Container

```java
com.datalogics.PDFL.Container.Container(String mcTag)
```

*constructor*

**Parameters**

- `mcTag` (`String`): The tag name for the Container.

Create a new Container with a given Marked Content Tag.

The new Container has a Marked Content tag but is not associated with a dictionary.

### Container

```java
com.datalogics.PDFL.Container.Container(String mcTag, PDFDict propertyList, boolean isInline)
```

*constructor*

**Parameters**

- `mcTag` (`String`): The tag name for the Container.
- `propertyList` ([`PDFDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PDFDict.md)): The dictionary representing the Property List to associate with the Container.
- `isInline` (`boolean`): If true, it's part of content stream. If false, its emitted outside of the content stream and referenced by name.

Create a new Container with a given Marked Content Tag and Property list.

The new Container has a Marked Content tag and is associated with a dictionary.

## Methods

### clone

```java
Container com.datalogics.PDFL.Container.clone()
```

**Returns:** [`Container`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container.md)

The copied container.

Makes a copy of the container.

Make a copy of an container to obtain a new container that has a distinct set of attributes.

### clone

```java
Container com.datalogics.PDFL.Container.clone(java.util.EnumSet< ElementCloneFlags > cloneFlags)
```

**Parameters**

- `cloneFlags` (`java.util.EnumSet< ElementCloneFlags >`): Flags that modify the cloning operation.

**Returns:** [`Container`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container.md)

The copied container.

Makes a copy of the container.

Make a copy of an container to obtain a new container that has a distinct set of attributes.

### colorConvert

```java
Container com.datalogics.PDFL.Container.colorConvert(Document document, ColorProfile prof, RenderIntent intent, boolean embed)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md)): The document the element belongs to.
- `prof` (`ColorProfile`): The ICC ColorProfile to be applied.
- `intent` (`RenderIntent`): The ICC Rendering Intent for the ColorProfile
- `embed` (`boolean`): If true, embed the color space and make the objects calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting objects, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively.

**Returns:** [`Container`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container.md)

A new Container with the applied ICC ColorProfile.

Applies the specified ICC ColorProfile to the objects in the Container

### delete

```java
synchronized void com.datalogics.PDFL.Container.delete(Boolean disposing)
```

*protected*

**Parameters**

- `disposing` (`Boolean`)

**Returns:** `synchronized void`

### delete

```java
synchronized void com.datalogics.PDFL.Container.delete()
```

**Returns:** `synchronized void`

### finalize

```java
void com.datalogics.PDFL.Container.finalize()
```

*protected*

**Returns:** `void`

### getBoundingBox

```java
Rect com.datalogics.PDFL.Element.getBoundingBox()
```

**Returns:** [`Rect`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Rect.md)

The bounding box for this element. The coordinates of the bounding box are specified in user space coordinates, relative to the element's Content. Note that user space coordinates correspond to unrotated pages; any rotation specified in the page dictionary is not taken into account.

The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself.

### getClip

```java
Clip com.datalogics.PDFL.Element.getClip()
```

**Returns:** [`Clip`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Clip.md)

The current Clip for this Element, or NULL if no clip is set.

Gets the current Clip for an Element.

### getContent

```java
Content com.datalogics.PDFL.Container.getContent()
```

**Returns:** [`Content`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Content.md)

Obtain the content of a container.

### getMarkedContentTag

```java
String com.datalogics.PDFL.Container.getMarkedContentTag()
```

**Returns:** `String`

The container's Marked Content Tag.

### getMatrix

```java
Matrix com.datalogics.PDFL.Element.getMatrix()
```

**Returns:** [`Matrix`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Matrix.md)

The current transformation matrix applied to this element.

The transformation matrix for the element.

### getOptionalContentMembershipDict

```java
OptionalContentMembershipDict com.datalogics.PDFL.Container.getOptionalContentMembershipDict()
```

**Returns:** [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentMembershipDict.md)

the OptionalContentMembershipDict

The OptionalContentMembershipDict property for this Container.

Setting this property will attach the Container to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict.

By setting this property to null, the Container is detached from any OptionalContentMembershipDict.

### getPDFDict

```java
PDFDict com.datalogics.PDFL.Container.getPDFDict()
```

**Returns:** [`PDFDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PDFDict.md)

Retrieve the PDFObject representation of this object

### isCurrentlyVisible

```java
boolean com.datalogics.PDFL.Container.isCurrentlyVisible(OptionalContentContext occ)
```

**Parameters**

- `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md)): The optional content context to check visibility against.

**Returns:** `boolean`

true if the container is currently visible.

Tests whether a container is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy.

If the container occurs more than once within the content, this method only checks the visibility of the first occurrence of the container.

This method determines visibility without considering the visbility of the Content object that the container belongs to. To determine the visibility of a container while taking the Content's visibility into consideration, use the alternate version of this method.

### isCurrentlyVisible

```java
boolean com.datalogics.PDFL.Container.isCurrentlyVisible(OptionalContentContext occ, Content content)
```

**Parameters**

- `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md)): The optional content context to check visibility against.
- `content` ([`Content`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Content.md)): The Content containing the container, used to determine container visibility within the content hierarchy.

**Returns:** `boolean`

true if the container is currently visible.

Tests whether a container is visible in a given optional content context and content.

If the container occurs more than once within the content, this method only checks the visibility of the first occurrence of the container.

### makeVisible

```java
boolean com.datalogics.PDFL.Container.makeVisible(OptionalContentContext occ, Content content)
```

**Parameters**

- `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md)): The optional content context in which the container is made visible.
- `content` ([`Content`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Content.md)): The content containing the container.

**Returns:** `boolean`

true if the container is successfully made visible in the given context and content, false otherwise

Makes a container visible in a given optional content context and content by manipulating the ON-OFF states of the optional content groups.

### rotate

```java
void com.datalogics.PDFL.Element.rotate(double theta)
```

**Parameters**

- `theta` (`double`): The rotation angle in degrees.

**Returns:** `void`

Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ].

### scale

```java
void com.datalogics.PDFL.Element.scale(double sx, double sy)
```

**Parameters**

- `sx` (`double`): The horizontal scale factor.
- `sy` (`double`): The vertical scale factor.

**Returns:** `void`

Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ].

### setClip

```java
void com.datalogics.PDFL.Element.setClip(Clip clip)
```

**Parameters**

- `clip` ([`Clip`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Clip.md)): The clip to set as the current clip for this element, or NULL to remove clipping.

**Returns:** `void`

Sets the current Clip for an Element.

### setContent

```java
void com.datalogics.PDFL.Container.setContent(Content content)
```

**Parameters**

- `content` ([`Content`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Content.md)): The new Content of the container.

**Returns:** `void`

Set the content of a container.

### setMarkedContentTag

```java
void com.datalogics.PDFL.Container.setMarkedContentTag(String mcTag)
```

**Parameters**

- `mcTag` (`String`)

**Returns:** `void`

The container's Marked Content Tag.

### setMatrix

```java
void com.datalogics.PDFL.Element.setMatrix(Matrix matrix)
```

**Parameters**

- `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Matrix.md)): The transformation matrix for the element.

**Returns:** `void`

Set the transformation matrix for the element.

### setOptionalContentMembershipDict

```java
void com.datalogics.PDFL.Container.setOptionalContentMembershipDict(OptionalContentMembershipDict ocmd)
```

**Parameters**

- `ocmd` ([`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentMembershipDict.md)): the OptionalContentMembershipDict

**Returns:** `void`

The OptionalContentMembershipDict property for this Container.

Setting this property will attach the Container to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict.

By setting this property to null, the Container is detached from any OptionalContentMembershipDict.

### translate

```java
void com.datalogics.PDFL.Element.translate(double tx, double ty)
```

**Parameters**

- `tx` (`double`): The horizontal translation distance in user space units.
- `ty` (`double`): The vertical translation distance in user space units.

**Returns:** `void`

Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ].
