Link Search Menu Expand Document

Get Selection Points with PDF Viewer UI Application - C#

PDF Viewer SDK sample in C# demonstrating ‘Get Selection Points with PDF Viewer UI Application’

Form1.Designer.cs
��namespace Sample_UI_Application

{

	partial class Form1

	{

		/// <summary>

		/// Required designer variable.

		/// </summary>

		private System.ComponentModel.IContainer components = null;



		/// <summary>

		/// Clean up any resources being used.

		/// </summary>

		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

		protected override void Dispose(bool disposing)

		{

			if (disposing && (components != null))

			{

				components.Dispose();

			}

			base.Dispose(disposing);

		}



		#region Windows Form Designer generated code



		/// <summary>

		/// Required method for Designer support - do not modify

		/// the contents of this method with the code editor.

		/// </summary>

		private void InitializeComponent()

		{

            this.pdfViewerControl1 = new Bytescout.PDFViewer.PDFViewerControl();

            this.toolStrip1 = new System.Windows.Forms.ToolStrip();

            this.tsbOpen = new System.Windows.Forms.ToolStripButton();

            this.btnGetSelectionPoints = new System.Windows.Forms.Button();

            this.label1 = new System.Windows.Forms.Label();

            this.label2 = new System.Windows.Forms.Label();

            this.txtSelectionPDFUnit = new System.Windows.Forms.TextBox();

            this.txtSelectionPixel = new System.Windows.Forms.TextBox();

            this.toolStrip1.SuspendLayout();

            this.SuspendLayout();

            // 

            // pdfViewerControl1

            // 

            this.pdfViewerControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 

            | System.Windows.Forms.AnchorStyles.Left) 

            | System.Windows.Forms.AnchorStyles.Right)));

            this.pdfViewerControl1.BackColor = System.Drawing.SystemColors.ButtonShadow;

            this.pdfViewerControl1.Location = new System.Drawing.Point(-13, 127);

            this.pdfViewerControl1.Margin = new System.Windows.Forms.Padding(4);

            this.pdfViewerControl1.MouseMode = Bytescout.PDFViewer.MouseMode.Selection;

            this.pdfViewerControl1.Name = "pdfViewerControl1";

            this.pdfViewerControl1.RegistrationKey = null;

            this.pdfViewerControl1.RegistrationName = null;

            this.pdfViewerControl1.ResetRotationOnPageChange = false;

            this.pdfViewerControl1.Scale = 100;

            this.pdfViewerControl1.SelectionColor = System.Drawing.Color.Red;

            this.pdfViewerControl1.ShowImageObjects = true;

            this.pdfViewerControl1.ShowTextObjects = true;

            this.pdfViewerControl1.ShowVectorObjects = true;

            this.pdfViewerControl1.Size = new System.Drawing.Size(1240, 605);

            this.pdfViewerControl1.TabIndex = 0;

            // 

            // toolStrip1

            // 

            this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);

            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {

            this.tsbOpen});

            this.toolStrip1.Location = new System.Drawing.Point(0, 0);

            this.toolStrip1.Name = "toolStrip1";

            this.toolStrip1.Size = new System.Drawing.Size(1240, 27);

            this.toolStrip1.TabIndex = 1;

            this.toolStrip1.Text = "toolStrip1";

            // 

            // tsbOpen

            // 

            this.tsbOpen.Image = global::Sample_UI_Application.Properties.Resources.folder_page;

            this.tsbOpen.ImageTransparentColor = System.Drawing.Color.Magenta;

            this.tsbOpen.Name = "tsbOpen";

            this.tsbOpen.Size = new System.Drawing.Size(99, 24);

            this.tsbOpen.Text = "&Open PDF";

            this.tsbOpen.Click += new System.EventHandler(this.tsbOpen_Click);

            // 

            // btnGetSelectionPoints

            // 

            this.btnGetSelectionPoints.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.btnGetSelectionPoints.Location = new System.Drawing.Point(5, 41);

            this.btnGetSelectionPoints.Name = "btnGetSelectionPoints";

            this.btnGetSelectionPoints.Size = new System.Drawing.Size(172, 69);

            this.btnGetSelectionPoints.TabIndex = 2;

            this.btnGetSelectionPoints.Text = "Get Selection Points";

            this.btnGetSelectionPoints.UseVisualStyleBackColor = true;

            this.btnGetSelectionPoints.Click += new System.EventHandler(this.btnGetSelectionPoints_Click);

            // 

            // label1

            // 

            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.label1.Location = new System.Drawing.Point(183, 41);

            this.label1.Name = "label1";

            this.label1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;

            this.label1.Size = new System.Drawing.Size(277, 25);

            this.label1.TabIndex = 3;

            this.label1.Text = "Selection in PDF Units";

            // 

            // label2

            // 

            this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.label2.Location = new System.Drawing.Point(183, 85);

            this.label2.Name = "label2";

            this.label2.RightToLeft = System.Windows.Forms.RightToLeft.Yes;

            this.label2.Size = new System.Drawing.Size(277, 25);

            this.label2.TabIndex = 4;

            this.label2.Text = "Selection in Pixels";

            // 

            // txtSelectionPDFUnit

            // 

            this.txtSelectionPDFUnit.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.txtSelectionPDFUnit.Location = new System.Drawing.Point(466, 41);

            this.txtSelectionPDFUnit.Multiline = true;

            this.txtSelectionPDFUnit.Name = "txtSelectionPDFUnit";

            this.txtSelectionPDFUnit.ReadOnly = true;

            this.txtSelectionPDFUnit.Size = new System.Drawing.Size(761, 25);

            this.txtSelectionPDFUnit.TabIndex = 5;

            // 

            // txtSelectionPixel

            // 

            this.txtSelectionPixel.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.txtSelectionPixel.Location = new System.Drawing.Point(466, 85);

            this.txtSelectionPixel.Multiline = true;

            this.txtSelectionPixel.Name = "txtSelectionPixel";

            this.txtSelectionPixel.ReadOnly = true;

            this.txtSelectionPixel.Size = new System.Drawing.Size(761, 25);

            this.txtSelectionPixel.TabIndex = 6;

            // 

            // Form1

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(1240, 663);

            this.Controls.Add(this.txtSelectionPixel);

            this.Controls.Add(this.txtSelectionPDFUnit);

            this.Controls.Add(this.label2);

            this.Controls.Add(this.label1);

            this.Controls.Add(this.btnGetSelectionPoints);

            this.Controls.Add(this.pdfViewerControl1);

            this.Controls.Add(this.toolStrip1);

            this.Margin = new System.Windows.Forms.Padding(4);

            this.Name = "Form1";

            this.Text = "Form1";

            this.toolStrip1.ResumeLayout(false);

            this.toolStrip1.PerformLayout();

            this.ResumeLayout(false);

            this.PerformLayout();



		}



		#endregion



		private Bytescout.PDFViewer.PDFViewerControl pdfViewerControl1;

		private System.Windows.Forms.ToolStrip toolStrip1;

		private System.Windows.Forms.ToolStripButton tsbOpen;

        private System.Windows.Forms.Button btnGetSelectionPoints;

        private System.Windows.Forms.Label label1;

        private System.Windows.Forms.Label label2;

        private System.Windows.Forms.TextBox txtSelectionPDFUnit;

        private System.Windows.Forms.TextBox txtSelectionPixel;

    }

}




Form1.cs
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Sample_UI_Application
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // Assign default document
            pdfViewerControl1.InputFile = "sample.pdf";

            // Initially set selection
            pdfViewerControl1.Selection = new Rectangle[] { new Rectangle(20, 20, 100, 100) };

            // Get Selection Information
            GetSelectionInformation();

        }

        private void tsbOpen_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                openFileDialog.Title = @"Open PDF Document";
                openFileDialog.Filter = @"PDF Files (*.pdf)|*.pdf|All Files|*.*";

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    this.Text = openFileDialog.FileName;

                    Cursor = Cursors.WaitCursor;

                    try
                    {
                        pdfViewerControl1.InputFile = openFileDialog.FileName;
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.Message);
                    }
                    finally
                    {
                        Cursor = Cursors.Default;
                    }
                }
            }
        }

        private void btnGetSelectionPoints_Click(object sender, EventArgs e)
        {
            GetSelectionInformation();
        }


        private void GetSelectionInformation()
        {
            if (pdfViewerControl1.SelectionInPoints.Length > 0)
            {

                // If need to get selection in PDF format then use .SelectionInPoints that returns coordinates in PDF points. 
                // PDF points can be used with other SDK to extract text, draw on pdf, add text, images etc. 
                // These PDF points coordinates are staying the same with any rendering resolution for PDF because resolution affects only how pdf is converted into displaying image.
                RectangleF selectionInPoints = pdfViewerControl1.SelectionInPoints[0];
                txtSelectionPDFUnit.Text = string.Format("Top={0}, Left={1}, Bottom={2}, Right={3}, Width={4}, Height={5}",
                    selectionInPoints.Top,
                    selectionInPoints.Left,
                    selectionInPoints.Bottom,
                    selectionInPoints.Right,
                    selectionInPoints.Width,
                    selectionInPoints.Height);

                // If you need to draw on screen on the control then please use .Selection property to get coordinates. 
                RectangleF selectionInPixels = pdfViewerControl1.Selection[0];
                txtSelectionPixel.Text = string.Format("Top={0}, Left={1}, Bottom={2}, Right={3}, Width={4}, Height={5}",
                    selectionInPixels.Top.ToString(),
                    selectionInPixels.Left.ToString(),
                    selectionInPixels.Bottom.ToString(),
                    selectionInPixels.Right.ToString(),
                    selectionInPixels.Width,
                    selectionInPixels.Height);
            }
            else
            {
                MessageBox.Show("Selection not available.");
            }
        }

        
    }
}

Program.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace Sample_UI_Application
{
	static class Program
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main()
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new Form1());
		}
	}
}

Resources.Designer.cs
��//------------------------------------------------------------------------------

// <auto-generated>

//     This code was generated by a tool.

//     Runtime Version:2.0.50727.5448

//

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

//     the code is regenerated.

// </auto-generated>

//------------------------------------------------------------------------------



namespace Sample_UI_Application.Properties {

    using System;

    

    

    /// <summary>

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

    /// </summary>

    // 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.

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]

    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

    internal class Resources {

        

        private static global::System.Resources.ResourceManager resourceMan;

        

        private static global::System.Globalization.CultureInfo resourceCulture;

        

        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]

        internal Resources() {

        }

        

        /// <summary>

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

        /// </summary>

        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]

        internal static global::System.Resources.ResourceManager ResourceManager {

            get {

                if (object.ReferenceEquals(resourceMan, null)) {

                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Sample_UI_Application.Properties.Resources", typeof(Resources).Assembly);

                    resourceMan = temp;

                }

                return resourceMan;

            }

        }

        

        /// <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)]

        internal static global::System.Globalization.CultureInfo Culture {

            get {

                return resourceCulture;

            }

            set {

                resourceCulture = value;

            }

        }

        

        internal static System.Drawing.Bitmap folder_page {

            get {

                object obj = ResourceManager.GetObject("folder_page", resourceCulture);

                return ((System.Drawing.Bitmap)(obj));

            }

        }

    }

}


Settings.Designer.cs
��//------------------------------------------------------------------------------

// <auto-generated>

//     This code was generated by a tool.

//     Runtime Version:2.0.50727.5448

//

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

//     the code is regenerated.

// </auto-generated>

//------------------------------------------------------------------------------



namespace Sample_UI_Application.Properties

{





	[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]

	internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase

	{



		private static Settings defaultInstance = ((Settings) (global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));



		public static Settings Default

		{

			get

			{

				return defaultInstance;

			}

		}

	}

}


Download Source Code (.zip)

Return to the previous page Explore PDF Viewer SDK