# Container Class

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

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

```csharp
class Container : Element
```

**Namespace:** `Datalogics::PDFL`

**Inherits from:** [`Element`](https://docs.datalogics.com/apdfl18/DotNet/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/DotNet/APDFL18.0.5PlusP2e/class/Container.md)

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

## Constructors

### Container

```csharp
Datalogics.PDFL.Container.Container()
```

*constructor*

Create a new Container.

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

### Container

```csharp
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

```csharp
Datalogics.PDFL.Container.Container(string mcTag, PDFDict propertyList, bool isInline)
```

*constructor*

**Parameters**

- `mcTag` (`string`): The tag name for the Container.
- `propertyList` ([`PDFDict`](https://docs.datalogics.com/apdfl18/DotNet/APDFL18.0.5PlusP2e/class/PDFDict.md)): The dictionary representing the Property List to associate with the Container.
- `isInline` (`bool`): 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.

## Properties

### BoundingBox

```csharp
Rect Datalogics.PDFL.Element.BoundingBox { get; }
```

### Clip

```csharp
Clip Datalogics.PDFL.Element.Clip { get; set; }
```

### Content

```csharp
Content Datalogics.PDFL.Container.Content { get; set; }
```

### MarkedContentTag

```csharp
string Datalogics.PDFL.Container.MarkedContentTag { get; set; }
```

### Matrix

```csharp
Matrix Datalogics.PDFL.Element.Matrix { get; set; }
```

### OptionalContentMembershipDict

```csharp
OptionalContentMembershipDict Datalogics.PDFL.Container.OptionalContentMembershipDict { get; set; }
```

### PDFDict

```csharp
PDFDict Datalogics.PDFL.Container.PDFDict { get; }
```

## Methods

### Clone

```csharp
new Container Datalogics.PDFL.Container.Clone()
```

**Returns:** `new Container`

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

```csharp
new Container Datalogics.PDFL.Container.Clone(ElementCloneFlags cloneFlags)
```

**Parameters**

- `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl18/DotNet/APDFL18.0.5PlusP2e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation.

**Returns:** `new Container`

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

```csharp
Container Datalogics.PDFL.Container.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/DotNet/APDFL18.0.5PlusP2e/class/Document.md)): The document the element belongs to.
- `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl18/DotNet/APDFL18.0.5PlusP2e/enum/ColorProfile.md)): The ICC ColorProfile to be applied.
- `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl18/DotNet/APDFL18.0.5PlusP2e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile
- `embed` (`bool`): 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/DotNet/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

### Dispose

```csharp
void Datalogics.PDFL.Element.Dispose()
```

**Returns:** `void`

### IsCurrentlyVisible

```csharp
bool Datalogics.PDFL.Container.IsCurrentlyVisible(OptionalContentContext occ)
```

**Parameters**

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

**Returns:** `bool`

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

```csharp
bool Datalogics.PDFL.Container.IsCurrentlyVisible(OptionalContentContext occ, Content content)
```

**Parameters**

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

**Returns:** `bool`

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

```csharp
bool Datalogics.PDFL.Container.MakeVisible(OptionalContentContext occ, Content content)
```

**Parameters**

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

**Returns:** `bool`

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

```csharp
void 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

```csharp
void 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 ].

### Translate

```csharp
void 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 ].
