Link Search Menu Expand Document

Get Selection Points with PDF Viewer UI Application - VB.NET

PDF Viewer SDK sample in VB.NET demonstrating ‘Get Selection Points with PDF Viewer UI Application’

Form1.Designer.vb
��Partial Class Form1

	''' <summary>

	''' Required designer variable.

	''' </summary>

	Private components As System.ComponentModel.IContainer = Nothing



	''' <summary>

	''' Clean up any resources being used.

	''' </summary>

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

	Protected Overrides Sub Dispose(disposing As Boolean)

		If disposing AndAlso (components IsNot Nothing) Then

			components.Dispose()

		End If

		MyBase.Dispose(disposing)

	End Sub



	#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 Sub InitializeComponent()

        Me.tsbOpen = New System.Windows.Forms.ToolStripButton()

        Me.toolStrip1 = New System.Windows.Forms.ToolStrip()

        Me.pdfViewerControl1 = New Bytescout.PDFViewer.PDFViewerControl()

        Me.txtSelectionPixel = New System.Windows.Forms.TextBox()

        Me.txtSelectionPDFUnit = New System.Windows.Forms.TextBox()

        Me.label2 = New System.Windows.Forms.Label()

        Me.label1 = New System.Windows.Forms.Label()

        Me.btnGetSelectionPoints = New System.Windows.Forms.Button()

        Me.toolStrip1.SuspendLayout()

        Me.SuspendLayout()

        '

        'tsbOpen

        '

        Me.tsbOpen.Image = Global.Sample_UI_Application.My.Resources.Resources.folder_page

        Me.tsbOpen.ImageTransparentColor = System.Drawing.Color.Magenta

        Me.tsbOpen.Name = "tsbOpen"

        Me.tsbOpen.Size = New System.Drawing.Size(99, 24)

        Me.tsbOpen.Text = "&Open PDF"

        '

        'toolStrip1

        '

        Me.toolStrip1.ImageScalingSize = New System.Drawing.Size(20, 20)

        Me.toolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbOpen})

        Me.toolStrip1.Location = New System.Drawing.Point(0, 0)

        Me.toolStrip1.Name = "toolStrip1"

        Me.toolStrip1.Size = New System.Drawing.Size(1240, 27)

        Me.toolStrip1.TabIndex = 1

        Me.toolStrip1.Text = "toolStrip1"

        '

        'pdfViewerControl1

        '

        Me.pdfViewerControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _

            Or System.Windows.Forms.AnchorStyles.Left) _

            Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)

        Me.pdfViewerControl1.BackColor = System.Drawing.SystemColors.ButtonShadow

        Me.pdfViewerControl1.Location = New System.Drawing.Point(0, 129)

        Me.pdfViewerControl1.Margin = New System.Windows.Forms.Padding(4)

        Me.pdfViewerControl1.MouseMode = Bytescout.PDFViewer.MouseMode.Selection

        Me.pdfViewerControl1.Name = "pdfViewerControl1"

        Me.pdfViewerControl1.RegistrationKey = Nothing

        Me.pdfViewerControl1.RegistrationName = Nothing

        Me.pdfViewerControl1.ResetRotationOnPageChange = False

        Me.pdfViewerControl1.Scale = 100

        Me.pdfViewerControl1.SelectionColor = System.Drawing.Color.Red

        Me.pdfViewerControl1.ShowImageObjects = True

        Me.pdfViewerControl1.ShowTextObjects = True

        Me.pdfViewerControl1.ShowVectorObjects = True

        Me.pdfViewerControl1.Size = New System.Drawing.Size(1240, 532)

        Me.pdfViewerControl1.TabIndex = 0

        '

        'txtSelectionPixel

        '

        Me.txtSelectionPixel.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.2!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.txtSelectionPixel.Location = New System.Drawing.Point(470, 84)

        Me.txtSelectionPixel.Multiline = True

        Me.txtSelectionPixel.Name = "txtSelectionPixel"

        Me.txtSelectionPixel.ReadOnly = True

        Me.txtSelectionPixel.Size = New System.Drawing.Size(761, 25)

        Me.txtSelectionPixel.TabIndex = 11

        '

        'txtSelectionPDFUnit

        '

        Me.txtSelectionPDFUnit.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.2!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.txtSelectionPDFUnit.Location = New System.Drawing.Point(470, 40)

        Me.txtSelectionPDFUnit.Multiline = True

        Me.txtSelectionPDFUnit.Name = "txtSelectionPDFUnit"

        Me.txtSelectionPDFUnit.ReadOnly = True

        Me.txtSelectionPDFUnit.Size = New System.Drawing.Size(761, 25)

        Me.txtSelectionPDFUnit.TabIndex = 10

        '

        'label2

        '

        Me.label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.label2.Location = New System.Drawing.Point(187, 84)

        Me.label2.Name = "label2"

        Me.label2.RightToLeft = System.Windows.Forms.RightToLeft.Yes

        Me.label2.Size = New System.Drawing.Size(277, 25)

        Me.label2.TabIndex = 9

        Me.label2.Text = "Selection in Pixels"

        '

        'label1

        '

        Me.label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.label1.Location = New System.Drawing.Point(187, 40)

        Me.label1.Name = "label1"

        Me.label1.RightToLeft = System.Windows.Forms.RightToLeft.Yes

        Me.label1.Size = New System.Drawing.Size(277, 25)

        Me.label1.TabIndex = 8

        Me.label1.Text = "Selection in PDF Units"

        '

        'btnGetSelectionPoints

        '

        Me.btnGetSelectionPoints.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

        Me.btnGetSelectionPoints.Location = New System.Drawing.Point(9, 40)

        Me.btnGetSelectionPoints.Name = "btnGetSelectionPoints"

        Me.btnGetSelectionPoints.Size = New System.Drawing.Size(172, 69)

        Me.btnGetSelectionPoints.TabIndex = 7

        Me.btnGetSelectionPoints.Text = "Get Selection Points"

        Me.btnGetSelectionPoints.UseVisualStyleBackColor = True

        '

        'Form1

        '

        Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!)

        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font

        Me.ClientSize = New System.Drawing.Size(1240, 663)

        Me.Controls.Add(Me.txtSelectionPixel)

        Me.Controls.Add(Me.txtSelectionPDFUnit)

        Me.Controls.Add(Me.label2)

        Me.Controls.Add(Me.label1)

        Me.Controls.Add(Me.btnGetSelectionPoints)

        Me.Controls.Add(Me.pdfViewerControl1)

        Me.Controls.Add(Me.toolStrip1)

        Me.Margin = New System.Windows.Forms.Padding(4)

        Me.Name = "Form1"

        Me.Text = "Form1"

        Me.toolStrip1.ResumeLayout(False)

        Me.toolStrip1.PerformLayout()

        Me.ResumeLayout(False)

        Me.PerformLayout()



    End Sub



    Private WithEvents tsbOpen As Windows.Forms.ToolStripButton

    Private WithEvents toolStrip1 As Windows.Forms.ToolStrip

    Private WithEvents pdfViewerControl1 As Bytescout.PDFViewer.PDFViewerControl

    Private WithEvents txtSelectionPixel As Windows.Forms.TextBox

    Private WithEvents txtSelectionPDFUnit As Windows.Forms.TextBox

    Private WithEvents label2 As Windows.Forms.Label

    Private WithEvents label1 As Windows.Forms.Label

    Private WithEvents btnGetSelectionPoints As Windows.Forms.Button



#End Region

End Class




Form1.vb
Imports System.Drawing
Imports System.Windows.Forms

Partial Public Class Form1
    Inherits Form

    Public Sub New()
        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()

    End Sub

    Private Sub tsbOpen_Click(ByVal sender As Object, ByVal e As EventArgs) Handles tsbOpen.Click

        Using openFileDialog As New OpenFileDialog()

            openFileDialog.Title = "Open PDF Document"
            openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf|All Files|*.*"

            If openFileDialog.ShowDialog() = DialogResult.OK Then

                Me.Text = openFileDialog.FileName

                Cursor = Cursors.WaitCursor

                Try
                    pdfViewerControl1.InputFile = openFileDialog.FileName
                Catch exception As Exception
                    MessageBox.Show(exception.Message)
                Finally
                    Cursor = Cursors.[Default]
                End Try

            End If

        End Using

    End Sub

    Private Sub btnGetSelectionPoints_Click(sender As Object, e As EventArgs) Handles btnGetSelectionPoints.Click
        GetSelectionInformation()
    End Sub

    Private Sub GetSelectionInformation()
        If pdfViewerControl1.SelectionInPoints.Length > 0 Then

            ' 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.
            Dim selectionInPoints As RectangleF = 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. 
            Dim selectionInPixels As RectangleF = 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.")
        End If
    End Sub


End Class

Program.vb
Imports System.Collections.Generic
Imports System.Windows.Forms

NotInheritable Class Program
	Private Sub New()
	End Sub
	''' <summary>
	''' The main entry point for the application.
	''' </summary>
	<STAThread> _
	Friend Shared Sub Main()
		Application.EnableVisualStyles()
		Application.SetCompatibleTextRenderingDefault(False)
		Application.Run(New Form1())
	End Sub
End Class

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

' <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>

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



Option Strict On

Option Explicit On



Imports System



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", "2.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("Sample_UI_Application.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

                resourceCulture = value

            End Set

        End Property

        

        Friend ReadOnly Property folder_page() As System.Drawing.Bitmap

            Get

                Dim obj As Object = ResourceManager.GetObject("folder_page", resourceCulture)

                Return CType(obj,System.Drawing.Bitmap)

            End Get

        End Property

    End Module

End Namespace


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

' <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 Properties





	<System.Runtime.CompilerServices.CompilerGeneratedAttribute> _

	<System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")> _

	Friend NotInheritable Partial Class Settings

		Inherits Global.System.Configuration.ApplicationSettingsBase



		Private Shared defaultInstance As Settings = DirectCast(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()), Settings)



		Public Shared ReadOnly Property [Default]() As Settings

			Get

				Return defaultInstance

			End Get

		End Property

	End Class

End Namespace


Download Source Code (.zip)

Return to the previous page Explore PDF Viewer SDK


Copyright © 2016 - 2021 ByteScout