3 Commits

Author SHA1 Message Date
Jonathan Jenne
308fdef2f8 EDMIBenchmark: small changes 2020-04-08 15:02:03 +02:00
Jonathan Jenne
a7125add1e DocumentViewer: Version 1.0.3.0 2020-04-08 15:01:45 +02:00
Jonathan Jenne
10e2579df4 DocumentViewer: Support Streams 2020-04-08 15:01:28 +02:00
5 changed files with 168 additions and 30 deletions

View File

@@ -7,6 +7,7 @@ Imports DevExpress.Spreadsheet
Imports GdPicture14 Imports GdPicture14
Imports DevExpress Imports DevExpress
Imports DevExpress.Office.Utils Imports DevExpress.Office.Utils
Imports System.IO
Public Class DocumentViewer Public Class DocumentViewer
Private Enum ZoomMode Private Enum ZoomMode
@@ -83,9 +84,6 @@ Public Class DocumentViewer
Exit Sub Exit Sub
End If End If
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter
_logger.Info("Loading File {0}", FilePath) _logger.Info("Loading File {0}", FilePath)
DoLoadFile(FilePath) DoLoadFile(FilePath)
@@ -93,6 +91,21 @@ Public Class DocumentViewer
UpdateMainUi() UpdateMainUi()
End Sub End Sub
Public Sub LoadFile(FileName As String, Stream As Stream)
If _licenseKey = String.Empty Then
_logger.Warn("License key was not provided. File [{0}] not loaded.", FileName)
Exit Sub
End If
Dim oExtension As String = FileName.Substring(FileName.LastIndexOf("."))
_logger.Info("Loading File [{0}]", FileName)
DoLoadFile(Stream, oExtension)
UpdateMainUi()
End Sub
Public Sub CloseDocument() Public Sub CloseDocument()
GdViewer.CloseDocument() GdViewer.CloseDocument()
UpdateMainUi() UpdateMainUi()
@@ -139,32 +152,13 @@ Public Class DocumentViewer
RichEditControl1.Dock = DockStyle.Fill RichEditControl1.Dock = DockStyle.Fill
Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
Dim oFormat As XtraRichEdit.DocumentFormat = XtraRichEdit.DocumentFormat.Undefined RichEditControl1.LoadDocument(FilePath, GetDocumentFormat(oExtension))
Select Case oExtension.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
RichEditControl1.LoadDocument(FilePath, oFormat)
RichEditControl1.Visible = True RichEditControl1.Visible = True
RichEditControl1.Dock = DockStyle.Fill RichEditControl1.Dock = DockStyle.Fill
Case ".XLSX", ".XLS", "CSV" Case ".XLSX", ".XLS", "CSV"
Dim oFormat As Spreadsheet.DocumentFormat = Spreadsheet.DocumentFormat.Undefined SpreadsheetControl1.LoadDocument(FilePath, GetSpreadsheetFormat(oExtension))
Select Case oExtension.ToUpper
Case "XLSX" : oFormat = Spreadsheet.DocumentFormat.Xlsx
Case "XLS" : oFormat = Spreadsheet.DocumentFormat.Xls
Case "CSV" : oFormat = Spreadsheet.DocumentFormat.Csv
End Select
SpreadsheetControl1.LoadDocument(FilePath, oFormat)
Dim oRange = SpreadsheetControl1.ActiveWorksheet.GetUsedRange() Dim oRange = SpreadsheetControl1.ActiveWorksheet.GetUsedRange()
oRange.AutoFitColumns() oRange.AutoFitColumns()
@@ -175,13 +169,103 @@ Public Class DocumentViewer
Case Else Case Else
mainToolStrip.Visible = True mainToolStrip.Visible = True
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter
GdViewer.DisplayFromFile(FilePath) GdViewer.DisplayFromFile(FilePath)
End Select End Select
UpdateMainUi()
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) _logger.Error(ex)
End Try End Try
End Sub End Sub
Private Sub DoLoadFile(Stream As Stream, Extension As String)
Try
RichEditControl1.Visible = False
RichEditControl1.Dock = DockStyle.None
SpreadsheetControl1.Visible = False
SpreadsheetControl1.Dock = DockStyle.None
mainToolStrip.Visible = False
Select Case Extension.ToUpper
Case ".MSG"
Dim oMsg As New Message(Stream)
' TODO: Improve Encoding, maybe convert based on encoding
oMsg.Encoding = System.Text.Encoding.UTF32
Dim oMime = oMsg.ConvertToMimeMessage()
Dim oTempFileName = IO.Path.GetTempFileName()
oMime.Save(oTempFileName, True)
RichEditControl1.LoadDocument(oTempFileName, XtraRichEdit.DocumentFormat.Mht)
_TempFiles.Add(oTempFileName)
RichEditControl1.Visible = True
RichEditControl1.Dock = DockStyle.Fill
Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
RichEditControl1.LoadDocument(Stream, GetDocumentFormat(Extension))
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
mainToolStrip.Visible = True
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter
GdViewer.DisplayFromStream(Stream)
End Select
UpdateMainUi()
Catch ex As Exception
_logger.Error(ex)
End Try
End Sub
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)
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) Private Sub btnOpen_Click(sender As Object, e As EventArgs)
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.2.0")> <Assembly: AssemblyVersion("1.0.3.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")> <Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -37,11 +37,20 @@ Partial Class Form1
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.listboxLog = New DevExpress.XtraEditors.ListBoxControl() Me.listboxLog = New DevExpress.XtraEditors.ListBoxControl()
Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl()
Me.XtraTabPage1 = New DevExpress.XtraTab.XtraTabPage()
Me.XtraTabPage2 = New DevExpress.XtraTab.XtraTabPage()
Me.listboxFileids = New DevExpress.XtraEditors.ListBoxControl()
CType(Me.listboxFiles, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.listboxFiles, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.SuspendLayout() Me.SplitContainerControl1.SuspendLayout()
CType(Me.listboxLog, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.listboxLog, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.XtraTabControl1.SuspendLayout()
Me.XtraTabPage1.SuspendLayout()
Me.XtraTabPage2.SuspendLayout()
CType(Me.listboxFileids, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'listboxFiles 'listboxFiles
@@ -49,7 +58,7 @@ Partial Class Form1
Me.listboxFiles.Dock = System.Windows.Forms.DockStyle.Fill Me.listboxFiles.Dock = System.Windows.Forms.DockStyle.Fill
Me.listboxFiles.Location = New System.Drawing.Point(0, 0) Me.listboxFiles.Location = New System.Drawing.Point(0, 0)
Me.listboxFiles.Name = "listboxFiles" Me.listboxFiles.Name = "listboxFiles"
Me.listboxFiles.Size = New System.Drawing.Size(536, 295) Me.listboxFiles.Size = New System.Drawing.Size(536, 270)
Me.listboxFiles.TabIndex = 1 Me.listboxFiles.TabIndex = 1
' '
'RibbonControl1 'RibbonControl1
@@ -131,13 +140,13 @@ Partial Class Form1
'SplitContainerControl1 'SplitContainerControl1
' '
Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 158) Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainerControl1.Name = "SplitContainerControl1" Me.SplitContainerControl1.Name = "SplitContainerControl1"
Me.SplitContainerControl1.Panel1.Controls.Add(Me.listboxFiles) Me.SplitContainerControl1.Panel1.Controls.Add(Me.listboxFiles)
Me.SplitContainerControl1.Panel1.Text = "Panel1" Me.SplitContainerControl1.Panel1.Text = "Panel1"
Me.SplitContainerControl1.Panel2.Controls.Add(Me.listboxLog) Me.SplitContainerControl1.Panel2.Controls.Add(Me.listboxLog)
Me.SplitContainerControl1.Panel2.Text = "Panel2" Me.SplitContainerControl1.Panel2.Text = "Panel2"
Me.SplitContainerControl1.Size = New System.Drawing.Size(1145, 295) Me.SplitContainerControl1.Size = New System.Drawing.Size(1143, 270)
Me.SplitContainerControl1.SplitterPosition = 536 Me.SplitContainerControl1.SplitterPosition = 536
Me.SplitContainerControl1.TabIndex = 4 Me.SplitContainerControl1.TabIndex = 4
' '
@@ -146,15 +155,47 @@ Partial Class Form1
Me.listboxLog.Dock = System.Windows.Forms.DockStyle.Fill Me.listboxLog.Dock = System.Windows.Forms.DockStyle.Fill
Me.listboxLog.Location = New System.Drawing.Point(0, 0) Me.listboxLog.Location = New System.Drawing.Point(0, 0)
Me.listboxLog.Name = "listboxLog" Me.listboxLog.Name = "listboxLog"
Me.listboxLog.Size = New System.Drawing.Size(599, 295) Me.listboxLog.Size = New System.Drawing.Size(597, 270)
Me.listboxLog.TabIndex = 0 Me.listboxLog.TabIndex = 0
' '
'XtraTabControl1
'
Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.XtraTabControl1.Location = New System.Drawing.Point(0, 158)
Me.XtraTabControl1.Name = "XtraTabControl1"
Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1
Me.XtraTabControl1.Size = New System.Drawing.Size(1145, 295)
Me.XtraTabControl1.TabIndex = 7
Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2})
'
'XtraTabPage1
'
Me.XtraTabPage1.Controls.Add(Me.SplitContainerControl1)
Me.XtraTabPage1.Name = "XtraTabPage1"
Me.XtraTabPage1.Size = New System.Drawing.Size(1143, 270)
Me.XtraTabPage1.Text = "XtraTabPage1"
'
'XtraTabPage2
'
Me.XtraTabPage2.Controls.Add(Me.listboxFileids)
Me.XtraTabPage2.Name = "XtraTabPage2"
Me.XtraTabPage2.Size = New System.Drawing.Size(1143, 270)
Me.XtraTabPage2.Text = "XtraTabPage2"
'
'listboxFileids
'
Me.listboxFileids.Dock = System.Windows.Forms.DockStyle.Left
Me.listboxFileids.Location = New System.Drawing.Point(0, 0)
Me.listboxFileids.Name = "listboxFileids"
Me.listboxFileids.Size = New System.Drawing.Size(278, 270)
Me.listboxFileids.TabIndex = 0
'
'Form1 'Form1
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1145, 477) Me.ClientSize = New System.Drawing.Size(1145, 477)
Me.Controls.Add(Me.SplitContainerControl1) Me.Controls.Add(Me.XtraTabControl1)
Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.RibbonControl1) Me.Controls.Add(Me.RibbonControl1)
Me.Name = "Form1" Me.Name = "Form1"
@@ -166,6 +207,11 @@ Partial Class Form1
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.ResumeLayout(False) Me.SplitContainerControl1.ResumeLayout(False)
CType(Me.listboxLog, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.listboxLog, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.XtraTabControl1.ResumeLayout(False)
Me.XtraTabPage1.ResumeLayout(False)
Me.XtraTabPage2.ResumeLayout(False)
CType(Me.listboxFileids, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout() Me.PerformLayout()
@@ -184,4 +230,8 @@ Partial Class Form1
Friend WithEvents buttonClearLog As DevExpress.XtraBars.BarButtonItem Friend WithEvents buttonClearLog As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents buttonClearFiles As DevExpress.XtraBars.BarButtonItem Friend WithEvents buttonClearFiles As DevExpress.XtraBars.BarButtonItem
Friend WithEvents XtraTabControl1 As DevExpress.XtraTab.XtraTabControl
Friend WithEvents XtraTabPage1 As DevExpress.XtraTab.XtraTabPage
Friend WithEvents XtraTabPage2 As DevExpress.XtraTab.XtraTabPage
Friend WithEvents listboxFileids As DevExpress.XtraEditors.ListBoxControl
End Class End Class

View File

@@ -53,6 +53,7 @@ Public Class Form1
Dim oResult As EDMIServiceReference.DocumentResult2 = Await _Channel.ImportFileAsync(oFileInfo, oContents, False, 0) Dim oResult As EDMIServiceReference.DocumentResult2 = Await _Channel.ImportFileAsync(oFileInfo, oContents, False, 0)
If oResult.OK Then If oResult.OK Then
listboxLog.Items.Add($"File {oFileInfo.Name} imported!") listboxLog.Items.Add($"File {oFileInfo.Name} imported!")
listboxFileids.Items.Add(oResult.Document.FileId)
Else Else
listboxLog.Items.Add($"Import Error: {oResult.ErrorMessage}") listboxLog.Items.Add($"Import Error: {oResult.ErrorMessage}")
End If End If

View File

@@ -54,6 +54,9 @@
<Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DigitalData.Controls.DocumentViewer">
<HintPath>..\Controls.DocumentViewer\obj\Debug\DigitalData.Controls.DocumentViewer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.7.0\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.7.0\lib\net45\NLog.dll</HintPath>