ByteScout PDF SDK - C# - Layers - ByteScout
Announcement
Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More Open modal
Close modal
Announcement Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions. Thank you for being part of our journey, and we look forward to supporting you in this next chapter!

ByteScout PDF SDK – C# – Layers

ByteScout PDF SDK – C# – Layers

Program.cs

using System.Diagnostics;
using System.Drawing;
using Bytescout.PDF;
using SolidBrush = Bytescout.PDF.SolidBrush;

namespace Layers
{
    /// <summary>
    /// This example demonstrates how to add layers with optional content.
    /// </summary>
    class Program
    {
        static void Main()
        {
            // Create new document
            Document pdfDocument = new Document();
            pdfDocument.RegistrationName = "demo";
            pdfDocument.RegistrationKey = "demo";
            // Add page
            Page page = new Page(PaperFormat.A4);
            pdfDocument.Pages.Add(page);

            Canvas canvas = page.Canvas;

            // Add main layer
            Layer allContents = new Layer("Main Layer");
            canvas.BeginMarkedContent(allContents);

            // Add sub-layer
            Layer layer1 = new Layer("Square");
            canvas.BeginMarkedContent(layer1);
            canvas.DrawRectangle(new SolidBrush(new ColorRGB(0, 255, 0)), 20, 20, 100, 100);
            canvas.EndMarkedContent();

            // Add second sub-layer
            Layer layer2 = new Layer("Circle");
            canvas.BeginMarkedContent(layer2);
            canvas.DrawCircle(new SolidBrush(new ColorRGB(255, 0, 0)), 70, 180, 50);
            canvas.EndMarkedContent();

            // Add third sub-layer
            Layer layer3 = new Layer("Triangle");
            canvas.BeginMarkedContent(layer3);
            canvas.DrawPolygon(new SolidBrush(new ColorRGB(0, 0, 255)), new PointF[] { new PointF(20, 340), new PointF(70, 240), new PointF(120, 340) });
            canvas.EndMarkedContent();

            canvas.EndMarkedContent();

            pdfDocument.OptionalContents.Layers.Add(layer1);
            pdfDocument.OptionalContents.Layers.Add(layer2);
            pdfDocument.OptionalContents.Layers.Add(layer3);
            pdfDocument.OptionalContents.Layers.Add(allContents);

            // Configure layers

            // Group sub-layers
            OptionalContentGroup group = new OptionalContentGroup();
            group.Add(new OptionalContentGroupLayer(layer1));
            group.Add(new OptionalContentGroupLayer(layer2));
            group.Add(new OptionalContentGroupLayer(layer3));

            // Order sub-layers
            pdfDocument.OptionalContents.Configuration.Order.Add(new OptionalContentGroupLayer(allContents));
            pdfDocument.OptionalContents.Configuration.Order.Add(group);

            // Make the third layer invisible by default (for example)
            pdfDocument.OptionalContents.Configuration.OFF.Add(layer3);

            // Force the PDF viewer to show the layers panel initially
            pdfDocument.PageMode = PageMode.OptionalContent;
            
            // Save document to file
            pdfDocument.Save("result.pdf");

            // Cleanup 
            pdfDocument.Dispose();

            // Open result document in default associated application (for demo purpose)
            ProcessStartInfo processStartInfo = new ProcessStartInfo("result.pdf");
            processStartInfo.UseShellExecute = true;
            Process.Start(processStartInfo);
        }
    }
}


  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next