CreateDocumentViewer Method (original) (raw)

Summary

Creates a new instance of DocumentViewer from the specified options.

Syntax

Parameters

createOptions

Options to use when creating DocumentViewer. This parameter cannot be null.

Return Value

The new DocumentViewer object.

Example

using Leadtools; using Leadtools.Controls; using Leadtools.Document; using Leadtools.Document.Viewer; using Leadtools.Codecs; using Leadtools.Caching; using Leadtools.Annotations.Engine; using Leadtools.Ocr; public void DocumentViewer_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 OCR. This is optional and not required for the PDF document we are loading. // But if image documents are loaded and text functionality is used, then we need OCR _ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD); _ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime"); Init(); } base.OnLoad(e); } // Our document viewer instance private DocumentViewer _documentViewer; // Optional OCR engine to use in the example private IOcrEngine _ocrEngine; 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], // The right panel is for bookmarks BookmarksContainer = this.Controls.Find("rightPanel", false)[0], // Not using annotations for now UseAnnotations = false }; // Create the document viewer _documentViewer = DocumentViewerFactory.CreateDocumentViewer(createOptions); // We prefer SVG viewing _documentViewer.View.PreferredItemType = DocumentViewerItemType.Svg; // Load a document var fileName = @"C:\LEADTOOLS22\Resources\Images\Leadtools.pdf"; var document = DocumentFactory.LoadFromFile( fileName, new LoadDocumentOptions { UseCache = DocumentFactory.Cache != null }); _documentViewer.Operation += (sender, e) => { if (e.Operation == DocumentViewerOperation.LoadingBookmarks) { // Disable the bookmarks when we are loading, enable when we are done var rightPanel = this.Controls.Find("rightPanel", true)[0]; if (rightPanel.InvokeRequired) { rightPanel.Invoke((MethodInvoker)delegate { rightPanel.Enabled = e.IsPostOperation; }); } else { rightPanel.Enabled = e.IsPostOperation; } } }; // If we have an OCR engine, use it document.Text.OcrEngine = _ocrEngine; // 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 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"); } }