---
title: "Enum Container Elements"
canonical: https://www.graphicsmill.com/samples/Codecs/VectorFormats/EnumContainerElements_cs
product: "Graphics Mill"
source: "Codecs/VectorFormats/EnumContainerElements.cs"
---

# Enum Container Elements

Enumerates the elements of a graphics container.

## Instruction

Enumerate and print the content of a graphics container extracted from a PDF file.

## Usings

```csharp
using System;
using System.Linq;
using Aurigma.GraphicsMill.Codecs;
using Aurigma.GraphicsMill.Drawing;
```

## Code Snippet

```csharp
public static class Extensions
{
    public static void PrintContent(this GraphicsContainer container)
    {
        foreach (var shapeItem in container.Items.OfType<ShapeItem>())
        {
            Console.WriteLine("Shape:");

            if (shapeItem.Brush != null)
            {
                Console.WriteLine($"  {shapeItem.Brush.ToString()}");
            }

            if (shapeItem.Pen != null)
            {
                Console.WriteLine($"  {shapeItem.Pen.ToString()}");
            }
        }

        foreach (var imageItem in container.Items.OfType<ImageItem>())
        {
            Console.WriteLine($"Image: {imageItem.Image.Width}x{imageItem.Image.Height}");
        }

        foreach (var textItem in container.Items.OfType<TextItem>())
        {
            Console.WriteLine($"Text: {textItem.Text.String}");
        }

        foreach (var containerItem in container.Items.OfType<ContainerItem>())
        {
            containerItem.GraphicsContainer.PrintContent();
        }
    }
}

internal class EnumGraphicsContainerContent
{
    public static void Run()
    {
        using (var reader = new PdfReader("GraphicsContainer.pdf"))
        using (var gc = reader.Frames[0].GetContent())
        {
            gc.PrintContent();
        }
    }
}
```

## Explanation

The following code:

- Defines an extension method `PrintContent` for `GraphicsContainer`.
- Iterates over the container’s items, printing info about shapes, images, and text.
- Recursively enumerates nested `ContainerItem` instances.
- The `Run()` method reads a PDF file and prints the contents of the first frame’s graphics container to the console.

## Tags

- [Graphics Container](<https://www.graphicsmill.com/samples/tags/container_md>): Using graphics containers for grouped items
- [PDF](<https://www.graphicsmill.com/samples/tags/pdf_md>): Importing and exporting PDF documents
- [Read](<https://www.graphicsmill.com/samples/tags/read_md>): Reading images with codecs

## Input

- [GraphicsContainer.pdf](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/GraphicsContainer_pdf>) (download)

## Output

- [EnumGraphicsContainerContent.txt](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/EnumGraphicsContainerContent_txt>) (preview)

## Used APIs

- [Aurigma.GraphicsMill.Codecs.PdfFrame.GetContent](<https://www.graphicsmill.com/docs/gm/M_Aurigma_GraphicsMill_Codecs_PdfFrame_GetContent.htm.md>)
- [Aurigma.GraphicsMill.Codecs.PdfReader](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_PdfReader.htm.md>)
- [Aurigma.GraphicsMill.Codecs.PdfReader.Frames](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_PdfReader_Frames.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ContainerItem](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Drawing_ContainerItem.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ContainerItem.GraphicsContainer](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_ContainerItem_GraphicsContainer.htm.md>)
- [Aurigma.GraphicsMill.Drawing.GraphicsContainer](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Drawing_GraphicsContainer.htm.md>)
- [Aurigma.GraphicsMill.Drawing.GraphicsContainer.Items](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_GraphicsContainer_Items.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ImageItem](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Drawing_ImageItem.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ImageItem.Image](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_ImageItem_Image.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ShapeItem](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Drawing_ShapeItem.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ShapeItem.Brush](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_ShapeItem_Brush.htm.md>)
- [Aurigma.GraphicsMill.Drawing.ShapeItem.Pen](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_ShapeItem_Pen.htm.md>)
- [Aurigma.GraphicsMill.Drawing.Text.String](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_Text_String.htm.md>)
- [Aurigma.GraphicsMill.Drawing.TextItem](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Drawing_TextItem.htm.md>)
- [Aurigma.GraphicsMill.Drawing.TextItem.Text](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Drawing_TextItem_Text.htm.md>)
