diff --git a/Controls.DocumentViewer/Annotations.vb b/Controls.DocumentViewer/Annotations.vb new file mode 100644 index 00000000..9bdc1aab --- /dev/null +++ b/Controls.DocumentViewer/Annotations.vb @@ -0,0 +1,68 @@ +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging +Imports GdPicture14 +Imports GdPicture14.Annotations + +Public Class Annotations + Inherits BaseClass + + Private Const DEFAULT_LEFT = 10 + Private Const DEFAULT_TOP = 10 + Private Const DEFAULT_WIDTH = 200 + Private Const DEFAULT_HEIGHT = 50 + + Public Sub New(pLogConfig As LogConfig) + MyBase.New(pLogConfig) + End Sub + + Public Function AddAnnotationInteractive(pGDViewer As GdViewer, pText As String) As Boolean + pGDViewer.AddTextAnnotationInteractive(pText, Color.Black, "Arial", Drawing.FontStyle.Bold Or Drawing.FontStyle.Underline, 12, True, Color.Red, Color.White, 1, 0) + If pGDViewer.GetStat = GdPictureStatus.OK Then + Return True + Else + Return False + End If + End Function + + Public Function AddAnnotation(pGDViewer As GdViewer, pText As String) As Boolean + Try + Dim oStatus As GdPictureStatus = GdPictureStatus.OK + Using oManager As AnnotationManager = pGDViewer.GetAnnotationManager() + If oManager.InitFromGdViewer(pGDViewer) = GdPictureStatus.OK AndAlso oManager.PageCount > 0 AndAlso oManager.SelectPage(1) = GdPictureStatus.OK Then + Using oAnnotation As AnnotationText = oManager.AddTextAnnot(0, 0, 0, 0, pText) + If oManager.GetStat = GdPictureStatus.OK AndAlso oAnnotation IsNot Nothing Then + oAnnotation.Alignment = StringAlignment.Near + oAnnotation.Author = Environment.UserName + oAnnotation.Fill = True + oAnnotation.FillColor = Color.LightYellow + oAnnotation.FontSize = 16 + oAnnotation.ForeColor = Color.Black + oAnnotation.Opacity = 0.7F + oAnnotation.StrokeColor = Color.Yellow + oAnnotation.Top = DEFAULT_TOP + oAnnotation.Left = DEFAULT_LEFT + oAnnotation.Width = DEFAULT_WIDTH + oAnnotation.Height = DEFAULT_HEIGHT + oAnnotation.Text = pText + + If oManager.SaveAnnotationsToPage() = GdPictureStatus.OK Then + oManager.BurnAnnotationsToPage(True) + End If + End If + End Using + End If + oStatus = oManager.GetStat() + End Using + + If oStatus = GdPictureStatus.OK Then + Return True + Else + Return False + End If + Catch ex As Exception + Return False + End Try + End Function + + +End Class diff --git a/Controls.DocumentViewer/DocumentViewer.vb b/Controls.DocumentViewer/DocumentViewer.vb index 1935397d..9a9350ff 100644 --- a/Controls.DocumentViewer/DocumentViewer.vb +++ b/Controls.DocumentViewer/DocumentViewer.vb @@ -39,6 +39,7 @@ Public Class DocumentViewer Private _logger As Logger Private _email As Email2 Private _Config As ConfigManager(Of Config) + Private _Annotations As Annotations Private _hide_file_info_from_user As Boolean = False Private _FilePath As String @@ -65,14 +66,13 @@ Public Class DocumentViewer _email = New Email2(pLogConfig) _licenseKey = pLicenseKey _licenseManager.RegisterKEY(_licenseKey) + _Annotations = New Annotations(pLogConfig) Dim oConfigPath = ConfigPath() _Config = New ConfigManager(Of Config)(pLogConfig, oConfigPath) End Sub - Private Function ConfigPath() As String - Return Path.Combine(Application.UserAppDataPath, "DocumentViewer") - End Function + ''' ''' Terminate Viewer, freeing up resources and deleting temp files @@ -138,6 +138,19 @@ Public Class DocumentViewer UpdateMainUi() End Sub + Public Function AddAnnotation(pText As String) As Boolean + Dim oFontStyle = System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline + GdViewer.AddTextAnnotationInteractive(pText, Color.Black, "Arial", oFontStyle, 12, True, Color.Red, Color.White, 1, 0) + + Return True + End Function + + Public Sub Save() + If GdViewer.SaveDocumentToPDF(_FilePath) = GdPictureStatus.OK Then + _logger.Debug("PDF Successfully saved") + End If + End Sub + Public Sub CloseDocument() Try GdViewer.CloseDocument() @@ -147,201 +160,6 @@ Public Class DocumentViewer End Try End Sub - Public Sub DeleteTempFiles() - For Each oFile In _TempFiles - Try - _logger.Debug("Deleting temp file [{0}]", oFile) - File.Delete(oFile) - Catch ex As Exception - _logger.Warn("Could not delete temp file [{0}]", oFile) - End Try - Next - End Sub - - Private Sub SetViewerMode(Extension As String) - Select Case Extension.ToUpper - Case ".MSG" - _ViewerMode = ViewerMode.RichText - Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" - _ViewerMode = ViewerMode.RichText - Case ".XLSX", ".XLS", "CSV" - _ViewerMode = ViewerMode.Excel - Case Else - _ViewerMode = ViewerMode.GDPicture - End Select - End Sub - - - Private Sub FreeFile() - Try - If Len(_FilePath) = 0 OrElse _Fileinfo Is Nothing Then - Exit Sub - End If - Dim oExtension As String = _Fileinfo.Extension.ToUpper - Select Case _ViewerMode - Case ViewerMode.RichText - _logger.Debug("Closing RichText Editor") - RichEditControl1.CreateNewDocument() - - Case ViewerMode.Excel - _logger.Debug("Closing Excel Editor") - SpreadsheetControl1.CreateNewDocument() - - Case Else - _logger.Debug("Closing GDPicture Viewer") - GdViewer.CloseDocument() - - End Select - Catch ex As Exception - _logger.Warn($"Unexpected error in FreeFile: {ex.Message}") - End Try - End Sub - Private Function DoLoadFile(FilePath As String) As Boolean - Try - Dim oFileInfo = New FileInfo(FilePath) - Dim oExtension As String = oFileInfo.Extension.ToUpper - - RichEditControl1.Visible = False - RichEditControl1.Dock = DockStyle.None - - SpreadsheetControl1.Visible = False - SpreadsheetControl1.Dock = DockStyle.None - - Select Case oExtension.ToUpper - Case ".MSG" - Dim oEmlPath As String = _email.Convert_ToEml(FilePath) - _TempFiles.Add(oEmlPath) - DoLoadFile(oEmlPath) - - Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" - RichEditControl1.LoadDocument(FilePath, GetDocumentFormat(oExtension)) - - RichEditControl1.Visible = True - RichEditControl1.Dock = DockStyle.Fill - - Case ".XLSX", ".XLS", ".CSV" - Dim oFormat = GetSpreadsheetFormat(oExtension) - SpreadsheetControl1.LoadDocument(FilePath, oFormat) - - Dim oRange = SpreadsheetControl1.ActiveWorksheet.GetUsedRange() - oRange.AutoFitColumns() - - SpreadsheetControl1.Visible = True - SpreadsheetControl1.Dock = DockStyle.Fill - - Case Else - 'ToolbarDocumentViewer.Visible = True - - GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer - GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter - - GdViewer.DisplayFromFile(FilePath) - End Select - - UpdateMainUi() - - Return True - Catch ex As Exception - _logger.Error(ex) - Return False - End Try - End Function - - Private Function DoLoadFile(Stream As Stream, Extension As String) As Boolean - Try - RichEditControl1.Visible = False - RichEditControl1.Dock = DockStyle.None - - SpreadsheetControl1.Visible = False - SpreadsheetControl1.Dock = DockStyle.None - - Select Case Extension.ToUpper - Case ".MSG" - - Dim oTempFileName = Path.Combine(IO.Path.GetTempPath(), Guid.NewGuid.ToString & ".msg") - Using oFileStream As New FileStream(oTempFileName, FileMode.Create) - Stream.Seek(0, SeekOrigin.Begin) - Stream.CopyTo(oFileStream) - Stream.Flush() - End Using - - Dim oEmlPath As String = _email.Convert_ToEml(oTempFileName) - DoLoadFile(oEmlPath) - - Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" - RichEditControl1.LoadDocument(Stream, GetDocumentFormat(Extension)) - - RichEditControl1.ActiveViewType = XtraRichEdit.RichEditViewType.PrintLayout - RichEditControl1.Visible = True - RichEditControl1.Dock = DockStyle.Fill - - Case ".XLSX", ".XLS", ".CSV" - SpreadsheetControl1.LoadDocument(Stream, GetSpreadsheetFormat(Extension)) - - Dim oRange = SpreadsheetControl1.ActiveWorksheet.GetUsedRange() - oRange.AutoFitColumns() - - SpreadsheetControl1.Visible = True - SpreadsheetControl1.Dock = DockStyle.Fill - - Case Else - 'ToolbarDocumentViewer.Visible = True - - GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer - GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter - - GdViewer.DisplayFromStream(Stream) - End Select - - UpdateMainUi() - - Return True - Catch ex As Exception - _logger.Error(ex) - Return False - End Try - End Function - - Private Function GetSpreadsheetFormat(Extension) As Spreadsheet.DocumentFormat - Dim oFormat As Spreadsheet.DocumentFormat = Spreadsheet.DocumentFormat.Undefined - - Select Case Extension.ToUpper - Case ".XLSX" : oFormat = Spreadsheet.DocumentFormat.Xlsx - Case ".XLS" : oFormat = Spreadsheet.DocumentFormat.Xls - Case ".CSV" : oFormat = Spreadsheet.DocumentFormat.Csv - End Select - - Return oFormat - End Function - - Private Function GetDocumentFormat(Extension) As XtraRichEdit.DocumentFormat - Dim oFormat As XtraRichEdit.DocumentFormat = XtraRichEdit.DocumentFormat.Undefined - - Select Case Extension.ToUpper - Case ".EML" : oFormat = XtraRichEdit.DocumentFormat.Mht - Case ".DOC" : oFormat = XtraRichEdit.DocumentFormat.Doc - Case ".DOCX" : oFormat = XtraRichEdit.DocumentFormat.OpenXml - Case ".ODT" : oFormat = XtraRichEdit.DocumentFormat.OpenDocument - Case ".RTF" : oFormat = XtraRichEdit.DocumentFormat.Rtf - Case ".TXT" : oFormat = XtraRichEdit.DocumentFormat.PlainText - End Select - - Return oFormat - End Function - - - Private Sub btnOpen_Click(sender As Object, e As EventArgs) - GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer - GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter - - If OpenFileDialog.ShowDialog() = DialogResult.OK Then - GdViewer.DisplayFromFile(OpenFileDialog.FileName) - End If - - GdViewer.Focus() - UpdateMainUi() - End Sub - ''' ''' Configures the viewer to hide the file path to the end-user. ''' @@ -377,74 +195,41 @@ Public Class DocumentViewer SetViewOnly(ViewOnly) End Sub - Private Sub UpdateMainUi() - Select Case _Config?.Config?.PageFit - Case Config.PageFitSetting.FitPage - FitToPage() - Case Config.PageFitSetting.FitWidth - FitToWidth() - End Select - Select Case _ViewerMode - Case ViewerMode.GDPicture - buttonPrint.Enabled = True - buttonFitWidth.Enabled = True - buttonFitPage.Enabled = True - buttonZoomIn.Enabled = True - buttonZoomOut.Enabled = True - buttonRotateLeft.Enabled = True - buttonRotateRight.Enabled = True - buttonFlipX.Enabled = True - buttonFlipY.Enabled = True - buttonFirstPage.Enabled = True - buttonPrevPage.Enabled = True - buttonNextPage.Enabled = True - buttonLastPage.Enabled = True - buttonSettings.Enabled = True - txtCurrentPage.Enabled = True - - Case ViewerMode.RichText - buttonFitPage.Enabled = True - buttonZoomIn.Enabled = True - buttonZoomOut.Enabled = True - buttonFitWidth.Enabled = True - buttonNextPage.Enabled = True - buttonPrevPage.Enabled = True - - buttonPrint.Enabled = False - buttonRotateLeft.Enabled = False - buttonRotateRight.Enabled = False - buttonFlipX.Enabled = False - buttonFlipY.Enabled = False - buttonFirstPage.Enabled = False - buttonLastPage.Enabled = False - buttonSettings.Enabled = False - txtCurrentPage.Enabled = False - - Case ViewerMode.Excel - buttonPrint.Enabled = False - buttonFitWidth.Enabled = False - buttonFitPage.Enabled = False - buttonZoomIn.Enabled = False - buttonZoomOut.Enabled = False - buttonRotateLeft.Enabled = False - buttonRotateRight.Enabled = False - buttonFlipX.Enabled = False - buttonFlipY.Enabled = False - buttonFirstPage.Enabled = False - buttonPrevPage.Enabled = False - buttonNextPage.Enabled = False - buttonLastPage.Enabled = False - buttonSettings.Enabled = False - txtCurrentPage.Enabled = False - - End Select +#Region "Form Events" + Private Sub btnFitWidth_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFitWidth.ItemClick + FitToWidth() + _Config.Config.PageFit = Config.PageFitSetting.FitWidth + _Config.Save() End Sub + Private Sub btnFitPage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFitPage.ItemClick + FitToPage() + _Config.Config.PageFit = Config.PageFitSetting.FitPage + _Config.Save() + End Sub + + Private Sub RichEditControl1_SizeChanged(sender As Object, e As EventArgs) Handles RichEditControl1.SizeChanged + Dim oControlWidth = RichEditControl1.Width - 100 + Dim oPageWidth = Units.DocumentsToPixelsF(RichEditControl1.Document.Sections(0).Page.Width, RichEditControl1.DpiX) + RichEditControl1.Views.PrintLayoutView.ZoomFactor = oControlWidth / oPageWidth + End Sub + + Private Sub btnOpen_Click(sender As Object, e As EventArgs) + GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer + GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter + + If OpenFileDialog.ShowDialog() = DialogResult.OK Then + GdViewer.DisplayFromFile(OpenFileDialog.FileName) + End If + + GdViewer.Focus() + UpdateMainUi() + End Sub Private Sub btnFirstPage_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonFirstPage.ItemClick GdViewer.DisplayFirstPage() End Sub @@ -553,6 +338,12 @@ Public Class DocumentViewer End Using UpdateaNavigationToolbar() End Sub +#End Region + +#Region "Private Functions" + Private Function ConfigPath() As String + Return Path.Combine(Application.UserAppDataPath, "DocumentViewer") + End Function Private Sub UpdateaNavigationToolbar() Try @@ -583,17 +374,103 @@ Public Class DocumentViewer End Try End Sub - Private Sub btnFitWidth_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFitWidth.ItemClick - FitToWidth() - _Config.Config.PageFit = Config.PageFitSetting.FitWidth - _Config.Save() + Public Sub DeleteTempFiles() + For Each oFile In _TempFiles + Try + _logger.Debug("Deleting temp file [{0}]", oFile) + File.Delete(oFile) + Catch ex As Exception + _logger.Warn("Could not delete temp file [{0}]", oFile) + End Try + Next End Sub - Private Sub btnFitPage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFitPage.ItemClick - FitToPage() - _Config.Config.PageFit = Config.PageFitSetting.FitPage - _Config.Save() + Private Sub SetViewerMode(Extension As String) + Select Case Extension.ToUpper + Case ".MSG" + _ViewerMode = ViewerMode.RichText + Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" + _ViewerMode = ViewerMode.RichText + Case ".XLSX", ".XLS", "CSV" + _ViewerMode = ViewerMode.Excel + Case Else + _ViewerMode = ViewerMode.GDPicture + End Select End Sub + Private Sub FreeFile() + Try + If Len(_FilePath) = 0 OrElse _Fileinfo Is Nothing Then + Exit Sub + End If + Dim oExtension As String = _Fileinfo.Extension.ToUpper + Select Case _ViewerMode + Case ViewerMode.RichText + _logger.Debug("Closing RichText Editor") + RichEditControl1.CreateNewDocument() + + Case ViewerMode.Excel + _logger.Debug("Closing Excel Editor") + SpreadsheetControl1.CreateNewDocument() + + Case Else + _logger.Debug("Closing GDPicture Viewer") + GdViewer.CloseDocument() + + End Select + Catch ex As Exception + _logger.Warn($"Unexpected error in FreeFile: {ex.Message}") + End Try + End Sub + Private Function DoLoadFile(FilePath As String) As Boolean + Try + Dim oFileInfo = New FileInfo(FilePath) + Dim oExtension As String = oFileInfo.Extension.ToUpper + + RichEditControl1.Visible = False + RichEditControl1.Dock = DockStyle.None + + SpreadsheetControl1.Visible = False + SpreadsheetControl1.Dock = DockStyle.None + + Select Case oExtension.ToUpper + Case ".MSG" + Dim oEmlPath As String = _email.Convert_ToEml(FilePath) + _TempFiles.Add(oEmlPath) + DoLoadFile(oEmlPath) + + Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" + RichEditControl1.LoadDocument(FilePath, GetDocumentFormat(oExtension)) + + RichEditControl1.Visible = True + RichEditControl1.Dock = DockStyle.Fill + + Case ".XLSX", ".XLS", ".CSV" + Dim oFormat = GetSpreadsheetFormat(oExtension) + SpreadsheetControl1.LoadDocument(FilePath, oFormat) + + Dim oRange = SpreadsheetControl1.ActiveWorksheet.GetUsedRange() + oRange.AutoFitColumns() + + SpreadsheetControl1.Visible = True + SpreadsheetControl1.Dock = DockStyle.Fill + + Case Else + 'ToolbarDocumentViewer.Visible = True + + GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer + GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter + + GdViewer.DisplayFromFile(FilePath) + End Select + + UpdateMainUi() + + Return True + Catch ex As Exception + _logger.Error(ex) + Return False + End Try + End Function Private Sub FitToPage() If _ViewerMode = ViewerMode.GDPicture Then @@ -613,9 +490,159 @@ Public Class DocumentViewer End If End Sub - Private Sub RichEditControl1_SizeChanged(sender As Object, e As EventArgs) Handles RichEditControl1.SizeChanged - Dim oControlWidth = RichEditControl1.Width - 100 - Dim oPageWidth = Units.DocumentsToPixelsF(RichEditControl1.Document.Sections(0).Page.Width, RichEditControl1.DpiX) - RichEditControl1.Views.PrintLayoutView.ZoomFactor = oControlWidth / oPageWidth + Private Function DoLoadFile(Stream As Stream, Extension As String) As Boolean + Try + RichEditControl1.Visible = False + RichEditControl1.Dock = DockStyle.None + + SpreadsheetControl1.Visible = False + SpreadsheetControl1.Dock = DockStyle.None + + Select Case Extension.ToUpper + Case ".MSG" + + Dim oTempFileName = Path.Combine(IO.Path.GetTempPath(), Guid.NewGuid.ToString & ".msg") + Using oFileStream As New FileStream(oTempFileName, FileMode.Create) + Stream.Seek(0, SeekOrigin.Begin) + Stream.CopyTo(oFileStream) + Stream.Flush() + End Using + + Dim oEmlPath As String = _email.Convert_ToEml(oTempFileName) + DoLoadFile(oEmlPath) + + Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" + RichEditControl1.LoadDocument(Stream, GetDocumentFormat(Extension)) + + RichEditControl1.ActiveViewType = XtraRichEdit.RichEditViewType.PrintLayout + RichEditControl1.Visible = True + RichEditControl1.Dock = DockStyle.Fill + + Case ".XLSX", ".XLS", ".CSV" + SpreadsheetControl1.LoadDocument(Stream, GetSpreadsheetFormat(Extension)) + + Dim oRange = SpreadsheetControl1.ActiveWorksheet.GetUsedRange() + oRange.AutoFitColumns() + + SpreadsheetControl1.Visible = True + SpreadsheetControl1.Dock = DockStyle.Fill + + Case Else + 'ToolbarDocumentViewer.Visible = True + + GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer + GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter + GdViewer.ForceTemporaryMode = True + + GdViewer.DisplayFromStream(Stream) + End Select + + UpdateMainUi() + + Return True + Catch ex As Exception + _logger.Error(ex) + Return False + End Try + End Function + + Private Function GetSpreadsheetFormat(Extension) As Spreadsheet.DocumentFormat + Dim oFormat As Spreadsheet.DocumentFormat = Spreadsheet.DocumentFormat.Undefined + + Select Case Extension.ToUpper + Case ".XLSX" : oFormat = Spreadsheet.DocumentFormat.Xlsx + Case ".XLS" : oFormat = Spreadsheet.DocumentFormat.Xls + Case ".CSV" : oFormat = Spreadsheet.DocumentFormat.Csv + End Select + + Return oFormat + End Function + + Private Function GetDocumentFormat(Extension) As XtraRichEdit.DocumentFormat + Dim oFormat As XtraRichEdit.DocumentFormat = XtraRichEdit.DocumentFormat.Undefined + + Select Case Extension.ToUpper + Case ".EML" : oFormat = XtraRichEdit.DocumentFormat.Mht + Case ".DOC" : oFormat = XtraRichEdit.DocumentFormat.Doc + Case ".DOCX" : oFormat = XtraRichEdit.DocumentFormat.OpenXml + Case ".ODT" : oFormat = XtraRichEdit.DocumentFormat.OpenDocument + Case ".RTF" : oFormat = XtraRichEdit.DocumentFormat.Rtf + Case ".TXT" : oFormat = XtraRichEdit.DocumentFormat.PlainText + End Select + + Return oFormat + End Function + + Private Sub UpdateMainUi() + + Select Case _Config?.Config?.PageFit + Case Config.PageFitSetting.FitPage + FitToPage() + + Case Config.PageFitSetting.FitWidth + FitToWidth() + + End Select + + Select Case _ViewerMode + Case ViewerMode.GDPicture + buttonPrint.Enabled = True + buttonFitWidth.Enabled = True + buttonFitPage.Enabled = True + buttonZoomIn.Enabled = True + buttonZoomOut.Enabled = True + buttonRotateLeft.Enabled = True + buttonRotateRight.Enabled = True + buttonFlipX.Enabled = True + buttonFlipY.Enabled = True + buttonFirstPage.Enabled = True + buttonPrevPage.Enabled = True + buttonNextPage.Enabled = True + buttonLastPage.Enabled = True + buttonSettings.Enabled = True + txtCurrentPage.Enabled = True + + Case ViewerMode.RichText + buttonFitPage.Enabled = True + buttonZoomIn.Enabled = True + buttonZoomOut.Enabled = True + buttonFitWidth.Enabled = True + buttonNextPage.Enabled = True + buttonPrevPage.Enabled = True + + buttonPrint.Enabled = False + buttonRotateLeft.Enabled = False + buttonRotateRight.Enabled = False + buttonFlipX.Enabled = False + buttonFlipY.Enabled = False + buttonFirstPage.Enabled = False + buttonLastPage.Enabled = False + buttonSettings.Enabled = False + txtCurrentPage.Enabled = False + + Case ViewerMode.Excel + buttonPrint.Enabled = False + buttonFitWidth.Enabled = False + buttonFitPage.Enabled = False + buttonZoomIn.Enabled = False + buttonZoomOut.Enabled = False + buttonRotateLeft.Enabled = False + buttonRotateRight.Enabled = False + buttonFlipX.Enabled = False + buttonFlipY.Enabled = False + buttonFirstPage.Enabled = False + buttonPrevPage.Enabled = False + buttonNextPage.Enabled = False + buttonLastPage.Enabled = False + buttonSettings.Enabled = False + txtCurrentPage.Enabled = False + + End Select + End Sub +#End Region + + + + End Class diff --git a/Controls.DocumentViewer/DocumentViewer.vbproj b/Controls.DocumentViewer/DocumentViewer.vbproj index faf4d6b4..58b8de26 100644 --- a/Controls.DocumentViewer/DocumentViewer.vbproj +++ b/Controls.DocumentViewer/DocumentViewer.vbproj @@ -114,6 +114,7 @@ + DocumentViewer.vb @@ -172,6 +173,10 @@ + + {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} + Base + {44982f9b-6116-44e2-85d0-f39650b1ef99} Config diff --git a/GUIs.Test.TestGUI/frmDocView.Designer.vb b/GUIs.Test.TestGUI/frmDocView.Designer.vb index cbb52374..48185186 100644 --- a/GUIs.Test.TestGUI/frmDocView.Designer.vb +++ b/GUIs.Test.TestGUI/frmDocView.Designer.vb @@ -24,19 +24,23 @@ Partial Class frmDocView Private Sub InitializeComponent() Me.Panel1 = New System.Windows.Forms.Panel() Me.Button2 = New System.Windows.Forms.Button() + Me.Button3 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.TextBox1 = New System.Windows.Forms.TextBox() Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer() + Me.Button4 = New System.Windows.Forms.Button() Me.Panel1.SuspendLayout() Me.SuspendLayout() ' 'Panel1 ' Me.Panel1.Controls.Add(Me.Button2) + Me.Panel1.Controls.Add(Me.Button4) + Me.Panel1.Controls.Add(Me.Button3) Me.Panel1.Controls.Add(Me.Button1) Me.Panel1.Controls.Add(Me.TextBox1) - Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" Me.Panel1.Size = New System.Drawing.Size(1079, 43) @@ -51,9 +55,18 @@ Partial Class frmDocView Me.Button2.Text = "Unload File" Me.Button2.UseVisualStyleBackColor = True ' + 'Button3 + ' + Me.Button3.Location = New System.Drawing.Point(911, 10) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(75, 23) + Me.Button3.TabIndex = 1 + Me.Button3.Text = "Annotate" + Me.Button3.UseVisualStyleBackColor = True + ' 'Button1 ' - Me.Button1.Location = New System.Drawing.Point(864, 10) + Me.Button1.Location = New System.Drawing.Point(542, 10) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 1 @@ -64,7 +77,7 @@ Partial Class frmDocView ' Me.TextBox1.Location = New System.Drawing.Point(12, 12) Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(846, 20) + Me.TextBox1.Size = New System.Drawing.Size(524, 20) Me.TextBox1.TabIndex = 0 ' 'OpenFileDialog1 @@ -73,20 +86,29 @@ Partial Class frmDocView ' 'DocumentViewer1 ' - Me.DocumentViewer1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.DocumentViewer1.Dock = System.Windows.Forms.DockStyle.Fill Me.DocumentViewer1.FileLoaded = False Me.DocumentViewer1.Location = New System.Drawing.Point(0, 43) Me.DocumentViewer1.Name = "DocumentViewer1" Me.DocumentViewer1.Size = New System.Drawing.Size(1079, 463) Me.DocumentViewer1.TabIndex = 0 ' + 'Button4 + ' + Me.Button4.Location = New System.Drawing.Point(830, 10) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(75, 23) + Me.Button4.TabIndex = 1 + Me.Button4.Text = "Save" + Me.Button4.UseVisualStyleBackColor = True + ' 'frmDocView ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1079, 506) - Me.Controls.Add(Me.Panel1) Me.Controls.Add(Me.DocumentViewer1) + Me.Controls.Add(Me.Panel1) Me.Name = "frmDocView" Me.Text = "frmDocView" Me.Panel1.ResumeLayout(False) @@ -101,4 +123,6 @@ Partial Class frmDocView Friend WithEvents TextBox1 As TextBox Friend WithEvents OpenFileDialog1 As OpenFileDialog Friend WithEvents Button2 As Button + Friend WithEvents Button3 As Button + Friend WithEvents Button4 As Button End Class diff --git a/GUIs.Test.TestGUI/frmDocView.vb b/GUIs.Test.TestGUI/frmDocView.vb index 0769482b..8c723ff1 100644 --- a/GUIs.Test.TestGUI/frmDocView.vb +++ b/GUIs.Test.TestGUI/frmDocView.vb @@ -17,4 +17,13 @@ Public Class frmDocView Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click DocumentViewer1.Done() End Sub + + Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click + If DocumentViewer1.AddAnnotation("Some Text") Then + End If + End Sub + + Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click + DocumentViewer1.Save() + End Sub End Class \ No newline at end of file