VintaSoft Imaging .NET SDK v8.6
Vintasoft.Imaging.Pdf Namespace / PdfDocument Class / OptionalContentProperties Property
Example



In This Topic
    OptionalContentProperties Property
    In This Topic
    Gets or sets the properties of document optional content.
    Syntax
    'Declaration
     
    Public Property OptionalContentProperties As PdfOptionalContentProperties
    public PdfOptionalContentProperties OptionalContentProperties {get; set;}
    public: __property PdfOptionalContentProperties* get_OptionalContentProperties();
    public: __property void set_OptionalContentProperties( 
       PdfOptionalContentProperties* value
    );
    public:
    property PdfOptionalContentProperties^ OptionalContentProperties {
       PdfOptionalContentProperties^ get();
       void set (    PdfOptionalContentProperties^ value);
    }
    Example
    This example shows how to create a PDF document with optional content.
    ''' <summary>
    ''' Creates PDF document with the optional content.
    ''' </summary>
    ''' <param name="pdfFilename">The PDF filename.</param>
    Public Shared Sub CreateDocumentWithOptionalContent(pdfFilename As String)
        ' create new PDF document
        Using document As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename, Vintasoft.Imaging.Pdf.PdfFormat.Pdf_16)
            ' add empty page (A4 size)
            Dim page As Vintasoft.Imaging.Pdf.Tree.PdfPage = document.Pages.Add(Vintasoft.Imaging.PaperSizeKind.A4)
                
            ' create two optional content groups
            Dim layer1 As New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentGroup(document, "Layer1")
            Dim layer2 As New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentGroup(document, "Layer2")
                
            ' add optional content groups to OptionalContentProperties
            document.OptionalContentProperties = New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentProperties(document)
            document.OptionalContentProperties.OptionalContentGroups.Add(layer1)
            document.OptionalContentProperties.OptionalContentGroups.Add(layer2)
                
            ' get PdfGraphics for PDF page
            Using g As Vintasoft.Imaging.Pdf.Drawing.PdfGraphics = page.GetGraphics()
                Dim font As Vintasoft.Imaging.Pdf.Tree.Fonts.PdfFont = document.FontManager.GetStandardFont(Vintasoft.Imaging.Pdf.Tree.Fonts.PdfStandardFontType.TimesRoman)
                Dim brush As New Vintasoft.Imaging.Pdf.Drawing.PdfBrush(System.Drawing.Color.Black)
                Dim brush1 As New Vintasoft.Imaging.Pdf.Drawing.PdfBrush(System.Drawing.Color.Green)
                Dim brush2 As New Vintasoft.Imaging.Pdf.Drawing.PdfBrush(System.Drawing.Color.Red)
                
                ' draw not optional content 
                g.DrawString("Not optional content", font, 20, brush, New System.Drawing.PointF(50, 650))
                
                ' draw optional content "Layer1"
                g.BeginOptionalContent(layer1)
                g.DrawString(String.Format("Optional content '{0}'", layer1.Name), font, 25, brush1, New System.Drawing.PointF(50, 550))
                g.EndOptionalContent()
                
                ' draw not optional content
                g.DrawString("Not optional content", font, 30, brush, New System.Drawing.PointF(50, 450))
                
                ' draw optional content "Layer2"
                g.BeginOptionalContent(layer2)
                g.DrawString(String.Format("Optional content '{0}'", layer2.Name), font, 35, brush2, New System.Drawing.PointF(50, 350))
                g.EndOptionalContent()
                
                ' draw not optional content
                g.DrawString("Not optional content", font, 40, brush, New System.Drawing.PointF(50, 250))
            End Using
                
            ' create optional content configurations
            Dim configuration1 As New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "Layer1 and Layer2")
            configuration1.SetGroupVisibility(layer1, True)
            configuration1.SetGroupVisibility(layer2, True)
            Dim configuration2 As New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "Layer1")
            configuration2.SetGroupVisibility(layer1, True)
            configuration2.SetGroupVisibility(layer2, False)
            Dim configuration3 As New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "Layer2")
            configuration3.SetGroupVisibility(layer1, False)
            configuration3.SetGroupVisibility(layer2, True)
            Dim configuration4 As New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "No Layers")
            configuration4.SetGroupVisibility(layer1, False)
            configuration4.SetGroupVisibility(layer2, False)
                
            ' create list of optional content configuration 
            document.OptionalContentProperties.Configurations = New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfigurationList(document)
                
            ' add configurations to list
            document.OptionalContentProperties.Configurations.Add(configuration1)
            document.OptionalContentProperties.Configurations.Add(configuration2)
            document.OptionalContentProperties.Configurations.Add(configuration3)
            document.OptionalContentProperties.Configurations.Add(configuration4)
                
            ' set default configuration
            document.OptionalContentProperties.DefaultConfiguration = configuration1
                
            ' set presentation order
            configuration1.PresentationOrder = New Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentPresentationOrder(document, layer1, layer2)
                
            ' optional content panel is visible
            document.DocumentViewMode = Vintasoft.Imaging.Pdf.PdfDocumentViewMode.UseOC
                
            ' save changes in PDF document
            document.SaveChanges()
        End Using
    End Sub
    /// <summary>
    /// Creates PDF document with the optional content.
    /// </summary>
    /// <param name="pdfFilename">The PDF filename.</param>
    public static void CreateDocumentWithOptionalContent(string pdfFilename)
    {
        // create new PDF document
        using (Vintasoft.Imaging.Pdf.PdfDocument document = 
            new Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename, Vintasoft.Imaging.Pdf.PdfFormat.Pdf_16))
        {
            // add empty page (A4 size)
            Vintasoft.Imaging.Pdf.Tree.PdfPage page = document.Pages.Add(
                Vintasoft.Imaging.PaperSizeKind.A4);
                
            // create two optional content groups
            Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentGroup layer1 = 
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentGroup(document, "Layer1");
            Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentGroup layer2 = 
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentGroup(document, "Layer2");
                
            // add optional content groups to OptionalContentProperties
            document.OptionalContentProperties = 
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentProperties(document);
            document.OptionalContentProperties.OptionalContentGroups.Add(layer1);
            document.OptionalContentProperties.OptionalContentGroups.Add(layer2);
                
            // get PdfGraphics for PDF page
            using (Vintasoft.Imaging.Pdf.Drawing.PdfGraphics g = page.GetGraphics())
            {
                Vintasoft.Imaging.Pdf.Tree.Fonts.PdfFont font = document.FontManager.GetStandardFont(
                    Vintasoft.Imaging.Pdf.Tree.Fonts.PdfStandardFontType.TimesRoman);
                Vintasoft.Imaging.Pdf.Drawing.PdfBrush brush = new Vintasoft.Imaging.Pdf.Drawing.PdfBrush(
                    System.Drawing.Color.Black);
                Vintasoft.Imaging.Pdf.Drawing.PdfBrush brush1 = new Vintasoft.Imaging.Pdf.Drawing.PdfBrush(
                    System.Drawing.Color.Green);
                Vintasoft.Imaging.Pdf.Drawing.PdfBrush brush2 = new Vintasoft.Imaging.Pdf.Drawing.PdfBrush(
                    System.Drawing.Color.Red);
                
                // draw not optional content 
                g.DrawString("Not optional content", font, 20, brush, new System.Drawing.PointF(50, 650));
                
                // draw optional content "Layer1"
                g.BeginOptionalContent(layer1);
                g.DrawString(string.Format("Optional content '{0}'", layer1.Name),
                    font, 25, brush1, new System.Drawing.PointF(50, 550));
                g.EndOptionalContent();
                
                // draw not optional content
                g.DrawString("Not optional content", font, 30, brush, new System.Drawing.PointF(50, 450));
                
                // draw optional content "Layer2"
                g.BeginOptionalContent(layer2);
                g.DrawString(string.Format("Optional content '{0}'", layer2.Name),
                    font, 35, brush2, new System.Drawing.PointF(50, 350));
                g.EndOptionalContent();
                
                // draw not optional content
                g.DrawString("Not optional content", font, 40, brush, new System.Drawing.PointF(50, 250));
            }
                
            // create optional content configurations
            Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration configuration1 =
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "Layer1 and Layer2");
            configuration1.SetGroupVisibility(layer1, true);
            configuration1.SetGroupVisibility(layer2, true);
            Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration configuration2 =
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "Layer1");
            configuration2.SetGroupVisibility(layer1, true);
            configuration2.SetGroupVisibility(layer2, false);
            Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration configuration3 =
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "Layer2");
            configuration3.SetGroupVisibility(layer1, false);
            configuration3.SetGroupVisibility(layer2, true);
            Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration configuration4 =
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfiguration(document, "No Layers");
            configuration4.SetGroupVisibility(layer1, false);
            configuration4.SetGroupVisibility(layer2, false);
                
            // create list of optional content configuration 
            document.OptionalContentProperties.Configurations =
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentConfigurationList(document);
                
            // add configurations to list
            document.OptionalContentProperties.Configurations.Add(configuration1);
            document.OptionalContentProperties.Configurations.Add(configuration2);
            document.OptionalContentProperties.Configurations.Add(configuration3);
            document.OptionalContentProperties.Configurations.Add(configuration4);
                
            // set default configuration
            document.OptionalContentProperties.DefaultConfiguration = configuration1;
                
            // set presentation order
            configuration1.PresentationOrder =
                new Vintasoft.Imaging.Pdf.Tree.PdfOptionalContentPresentationOrder(document, layer1, layer2);
                
            // optional content panel is visible
            document.DocumentViewMode = Vintasoft.Imaging.Pdf.PdfDocumentViewMode.UseOC;
                
            // save changes in PDF document
            document.SaveChanges();
        }
    }
    Requirements

    Target Platforms: Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP, Windows Server 2012, Windows Server 2008, Windows Server 2003

    See Also