The example demonstrates how to add layers with optional content using ByteScout PDF SDK.
Program.vb:
VB
'*******************************************************************
' ByteScout PDF SDK
'
' Copyright © 2016 Bytescout, https://bytescout.com
' ALL RIGHTS RESERVED
'
'*******************************************************************
Imports System.Drawing
Imports Bytescout.PDF
''' <summary>
''' This example demonstrates how to add layers with optional content.
''' </summary>
Class Program
Shared Sub Main()
' Create new document
Dim pdfDocument = New Document()
pdfDocument.RegistrationName = "demo"
pdfDocument.RegistrationKey = "demo"
' Add page
Dim page = New Page(PaperFormat.A4)
pdfDocument.Pages.Add(page)
Dim canvas = page.Canvas
' Add main layer
Dim allContents = New Layer("Main Layer")
canvas.BeginMarkedContent(allContents)
' Add sub-layer
Dim layer1 = New Layer("Square")
canvas.BeginMarkedContent(layer1)
canvas.DrawRectangle(New Bytescout.PDF.SolidBrush(New ColorRGB(0, 255, 0)), 20, 20, 100, 100)
canvas.EndMarkedContent()
' Add second sub-layer
Dim layer2 = New Layer("Circle")
canvas.BeginMarkedContent(layer2)
canvas.DrawCircle(New Bytescout.PDF.SolidBrush(New ColorRGB(255, 0, 0)), 70, 180, 50)
canvas.EndMarkedContent()
' Add third sub-layer
Dim layer3 = New Layer("Triangle")
canvas.BeginMarkedContent(layer3)
canvas.DrawPolygon(New Bytescout.PDF.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
Dim 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 document in default PDF viewer app
Process.Start("result.pdf")
End Sub
End Class
Program.cs:
C#
//*******************************************************************
// ByteScout PDF SDK
//
// Copyright © 2016 ByteScout - https://bytescout.com
// ALL RIGHTS RESERVED
//
//*******************************************************************
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 document in default PDF viewer app
Process.Start("result.pdf");
}
}
}