←Select platform

Annotations Property

Summary

Manages the annotations support in this document viewer.

Syntax
C#
C++/CLI
public DocumentViewerAnnotations Annotations { get; } 
public:  
   property DocumentViewerAnnotations^ Annotations 
   { 
      DocumentViewerAnnotations^ get() 
   } 

Property Value

The DocumentViewerAnnotations object that manages the annotations support in this document viewer.

Remarks

This class manages the automation support of the annotation containers in the LEADDocument set in the document viewer. The annotations are obtained from the document using DocumentPage.GetAnnotations.

Refer to DocumentViewerAnnotations for more information.

Example
C#
using Leadtools; 
using Leadtools.Controls; 
using Leadtools.Document; 
using Leadtools.Document.Viewer; 
using Leadtools.Document.Converter; 
using Leadtools.Codecs; 
using Leadtools.Caching; 
using Leadtools.Annotations.Engine; 
using Leadtools.Annotations.Automation; 
using Leadtools.Annotations.WinForms; 
using Leadtools.Annotations.Designers; 
using Leadtools.Document.Writer; 
using Leadtools.Ocr; 
 
 
public void DocumentViewerWithAnnotations_Example() 
{ 
   // New Form to be used as our application 
   var form = new MyForm(); 
   form.ShowDialog(); 
} 
 
class MyForm : Form 
{ 
   public MyForm() 
   { 
      this.Size = new Size(800, 800); 
      this.Text = "LEADTOOLS Document Viewer Example"; 
   } 
 
   protected override void OnLoad(EventArgs e) 
   { 
      if (!DesignMode) 
         Init(); 
 
      base.OnLoad(e); 
   } 
 
   // Our document viewer instance 
   private DocumentViewer _documentViewer; 
 
   private void Init() 
   { 
      // Initialize the user interface 
      InitUI(); 
 
      // Init the cache. This is optional, but it can speed up viewing of large documents 
      // if not needed, remove this section 
      DocumentFactory.Cache = new FileCache(); 
 
      // Init the document viewer, pass along the panels 
      var createOptions = new DocumentViewerCreateOptions 
      { 
         // The middle panel for the view 
         ViewContainer = this.Controls.Find("middlePanel", false)[0], 
         // The left panel for the thumbnails 
         ThumbnailsContainer = this.Controls.Find("leftPanel", false)[0], 
         // Using annotations in this example 
         UseAnnotations = true 
      }; 
 
      // Create the document viewer 
      _documentViewer = DocumentViewerFactory.CreateDocumentViewer(createOptions); 
 
      // We prefer SVG viewing 
      _documentViewer.View.PreferredItemType = DocumentViewerItemType.Svg; 
 
      // Initalize the annotations 
      InitAnnotations(); 
 
      // Load a document 
      var fileName = @"C:\LEADTOOLS22\Resources\Images\Leadtools.pdf"; 
      var document = DocumentFactory.LoadFromFile( 
         fileName, 
         new LoadDocumentOptions { UseCache = DocumentFactory.Cache != null }); 
 
      // Set it in the viewer 
      _documentViewer.SetDocument(document); 
 
      // Run pan/zoom 
      var interactiveComboBox = this.Controls.Find("interactiveComboBox", true)[0] as ComboBox; 
      interactiveComboBox.SelectedItem = DocumentViewerCommands.InteractivePanZoom; 
   } 
 
   private void InitAnnotations() 
   { 
      // The annotations toolbar will be added here 
      var rightPanel = this.Controls.Find("rightPanel", true)[0]; 
 
      // Get the automation manager from the document viewer 
      var automationManager = _documentViewer.Annotations.AutomationManager; 
      // Create the manager helper. This sets the rendering engine 
      var automationManagerHelper = new AutomationManagerHelper(automationManager); 
      // Tell the document viewer that automation manager helper is created 
      _documentViewer.Annotations.Initialize(); 
 
      // Craete the toolbar 
      automationManagerHelper.ModifyToolBarParentVisiblity = true; 
      automationManagerHelper.CreateToolBar(); 
      var toolBar = automationManagerHelper.ToolBar; 
      toolBar.Dock = DockStyle.Fill; 
      toolBar.AutoSize = true; 
      toolBar.BorderStyle = BorderStyle.None; 
      toolBar.Appearance = ToolBarAppearance.Flat; 
      rightPanel.Controls.Add(toolBar); 
      toolBar.BringToFront(); 
 
      // Handler for showing the context menu when the user right clicks on an annotation object 
      EventHandler<AnnAutomationEventArgs> onShowContextMenu = (sender, e) => 
      { 
         // Get the object type 
         var automationObject = e.Object as AnnAutomationObject; 
         if (automationObject == null) 
            return; 
 
         // Convert the point to client coordinates 
         var imageViewer = _documentViewer.View.ImageViewer; 
         var position = imageViewer.PointToClient(Cursor.Position); 
         var automation = _documentViewer.Annotations.Automation; 
 
         // Show its context menu 
         var contextMenu = automationObject.ContextMenu as ObjectContextMenu; 
         if (contextMenu != null) 
         { 
            contextMenu.Automation = automation; 
            contextMenu.Show(imageViewer, position); 
         } 
      }; 
 
      // Handler for show the object properties dialog 
      EventHandler<AnnAutomationEventArgs> onShowObjectProperties = (sender, e) => 
      { 
         // Get the automation object from the document viewer 
         using (var dlg = new AutomationUpdateObjectDialog()) 
         { 
            dlg.UserName = _documentViewer.UserName; 
            dlg.Automation = sender as AnnAutomation; 
            dlg.ShowDialog(this); 
            e.Cancel = !dlg.IsModified; 
         } 
      }; 
 
      // Handle extra annotations using the Operation event 
      _documentViewer.Operation += (sender, e) => 
      { 
         switch (e.Operation) 
         { 
            case DocumentViewerOperation.LoadingAnnotations: 
               // Disable the panel where we put the toolbar when we are loading, enable when we are done 
               rightPanel.Enabled = e.IsPostOperation; 
               break; 
 
            case DocumentViewerOperation.CreateAutomation: 
               if (e.IsPostOperation) 
               { 
                  // Automation object has been created, use it to perform any extra task not handled by the 
                  // document viewer by default 
                  // We will handle showing the context menu when the user right clicks on an object and when they 
                  // select properties 
                  _documentViewer.Annotations.Automation.OnShowContextMenu += onShowContextMenu; 
                  _documentViewer.Annotations.Automation.OnShowObjectProperties += onShowObjectProperties; 
               } 
               break; 
 
            case DocumentViewerOperation.DestroyAutomation: 
               if (!e.IsPostOperation) 
               { 
                  // Automation is about to be destroyed, remove any events we used 
                  _documentViewer.Annotations.Automation.OnShowContextMenu -= onShowContextMenu; 
                  _documentViewer.Annotations.Automation.OnShowObjectProperties -= onShowObjectProperties; 
               } 
               break; 
 
            default: 
               break; 
         } 
      }; 
   } 
 
   private void InitUI() 
   { 
      // Add a panel on the left for the document viewer thumbnails part 
      var leftPanel = new Panel(); 
      leftPanel.Name = "leftPanel"; 
      leftPanel.Width = 200; 
      leftPanel.Dock = DockStyle.Left; 
      leftPanel.BackColor = Color.Gray; 
      leftPanel.BorderStyle = BorderStyle.FixedSingle; 
      this.Controls.Add(leftPanel); 
 
      // Add a panel to the right, this will work for the bookmarks or annotations part 
      var rightPanel = new Panel(); 
      rightPanel.Name = "rightPanel"; 
      rightPanel.Width = 200; 
      rightPanel.Dock = DockStyle.Right; 
      rightPanel.BackColor = Color.LightBlue; 
      rightPanel.BorderStyle = BorderStyle.FixedSingle; 
      this.Controls.Add(rightPanel); 
 
      // Add a panel to fill the rest, for the document viewer 
      var middlePanel = new Panel(); 
      middlePanel.Name = "middlePanel"; 
      middlePanel.BackColor = Color.DarkGray; 
      middlePanel.BorderStyle = BorderStyle.None; 
      middlePanel.Dock = DockStyle.Fill; 
      this.Controls.Add(middlePanel); 
 
      // Add a top panel to host our application controls 
      var topPanel = new Panel(); 
      topPanel.Name = "topPanel"; 
      topPanel.Height = 100; 
      topPanel.Dock = DockStyle.Top; 
      topPanel.BorderStyle = BorderStyle.FixedSingle; 
      this.Controls.Add(topPanel); 
 
      middlePanel.BringToFront(); 
 
      // Add buttons for the UI 
 
      // Combo box for interactive modes 
      var interactiveComboBox = new ComboBox(); 
      interactiveComboBox.Name = "interactiveComboBox"; 
      interactiveComboBox.DropDownStyle = ComboBoxStyle.DropDownList; 
      // The command names for the items so we can just run them 
      interactiveComboBox.Items.Add(DocumentViewerCommands.InteractivePanZoom); 
      interactiveComboBox.Items.Add(DocumentViewerCommands.InteractiveSelectText); 
      interactiveComboBox.SelectedIndexChanged += (sender, e) => 
      { 
         var commandName = interactiveComboBox.SelectedItem as string; 
         _documentViewer.Commands.Run(commandName); 
      }; 
      topPanel.Controls.Add(interactiveComboBox); 
 
      // Generic label for information used by the examples 
      var infoLabel = new Label(); 
      infoLabel.Name = "infoLabel"; 
      infoLabel.Text = "Info..."; 
      infoLabel.AutoSize = false; 
      infoLabel.Width = 400; 
      infoLabel.Left = interactiveComboBox.Right + 20; 
      topPanel.Controls.Add(infoLabel); 
 
      var exampleButton = new Button(); 
      exampleButton.Top = interactiveComboBox.Bottom + 2; 
      exampleButton.Name = "exampleButton"; 
      exampleButton.Text = "&Example"; 
      exampleButton.Click += (sender, e) => Example(exampleButton); 
      topPanel.Controls.Add(exampleButton); 
   } 
 
   private void Example(Button exampleButton) 
   { 
      // Add the example code here 
      Console.WriteLine(this + " Ready"); 
   } 
Requirements

Target Platforms

Help Version 22.0.2023.1.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document.Viewer.WinForms Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.