Link Search Menu Expand Document

Use PDF Layers - VB.NET

PDF SDK sample in VB.NET demonstrating ‘Use PDF Layers’

Program.vb
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"

        ' If you wish to load an existing document uncomment the line below And comment the Add page section instead
        ' pdfDocument.Load(".\existing_document.pdf")

        ' 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

Resources.Designer.vb
��'------------------------------------------------------------------------------

' <auto-generated>

'     This code was generated by a tool.

'     Runtime Version:4.0.30319.42000

'

'     Changes to this file may cause incorrect behavior and will be lost if

'     the code is regenerated.

' </auto-generated>

'------------------------------------------------------------------------------



Option Strict On

Option Explicit On





Namespace My.Resources

    

    'This class was auto-generated by the StronglyTypedResourceBuilder

    'class via a tool like ResGen or Visual Studio.

    'To add or remove a member, edit your .ResX file then rerun ResGen

    'with the /str option, or rebuild your VS project.

    '''<summary>

    '''  A strongly-typed resource class, for looking up localized strings, etc.

    '''</summary>

    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _

     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _

     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _

     Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _

    Friend Module Resources



        Private resourceMan As Global.System.Resources.ResourceManager



        Private resourceCulture As Global.System.Globalization.CultureInfo



        '''<summary>

        '''  Returns the cached ResourceManager instance used by this class.

        '''</summary>

        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager

            Get

                If Object.ReferenceEquals(resourceMan, Nothing) Then

                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Layers.Resources", GetType(Resources).Assembly)

                    resourceMan = temp

                End If

                Return resourceMan

            End Get

        End Property



        '''<summary>

        '''  Overrides the current thread's CurrentUICulture property for all

        '''  resource lookups using this strongly typed resource class.

        '''</summary>

        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

        Friend Property Culture() As Global.System.Globalization.CultureInfo

            Get

                Return resourceCulture

            End Get

            Set(ByVal value As Global.System.Globalization.CultureInfo)

                resourceCulture = value

            End Set

        End Property

    End Module

End Namespace


Settings.Designer.vb
��'------------------------------------------------------------------------------

' <auto-generated>

'     This code was generated by a tool.

'     Runtime Version:4.0.30319.42000

'

'     Changes to this file may cause incorrect behavior and will be lost if

'     the code is regenerated.

' </auto-generated>

'------------------------------------------------------------------------------



Option Strict On

Option Explicit On





Namespace My



    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _

     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _

     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

    Partial Friend NotInheritable Class MySettings

        Inherits Global.System.Configuration.ApplicationSettingsBase



        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)



#Region "My.Settings Auto-Save Functionality"

#If _MyType = "WindowsForms" Then

        Private Shared addedHandler As Boolean



        Private Shared addedHandlerLockObject As New Object



        <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

        Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)

            If My.Application.SaveMySettingsOnExit Then

                My.Settings.Save()

            End If

        End Sub

#End If

#End Region



        Public Shared ReadOnly Property [Default]() As MySettings

            Get



#If _MyType = "WindowsForms" Then

                   If Not addedHandler Then

                        SyncLock addedHandlerLockObject

                            If Not addedHandler Then

                                AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings

                                addedHandler = True

                            End If

                        End SyncLock

                    End If

#End If

                Return defaultInstance

            End Get

        End Property

    End Class

End Namespace



Namespace My

    

    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _

     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _

     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _

    Friend Module MySettingsProperty

        

        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _

        Friend ReadOnly Property Settings() As Global.Layers.My.MySettings

            Get

                Return Global.Layers.My.MySettings.Default

            End Get

        End Property

    End Module

End Namespace


Download Source Code (.zip)

Return to the previous page Explore PDF SDK