diff --git a/Controls.DocumentViewer/DocumentViewer.Designer.vb b/Controls.DocumentViewer/DocumentViewer.Designer.vb
index c5bad93d..3857551f 100644
--- a/Controls.DocumentViewer/DocumentViewer.Designer.vb
+++ b/Controls.DocumentViewer/DocumentViewer.Designer.vb
@@ -25,7 +25,6 @@ Partial Class DocumentViewer
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(DocumentViewer))
Me.GdViewer = New GdPicture14.GdViewer()
Me.mainToolStrip = New System.Windows.Forms.ToolStrip()
- Me.btnOpen = New System.Windows.Forms.ToolStripButton()
Me.btnPrint = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.btnFitWidth = New System.Windows.Forms.ToolStripButton()
@@ -59,6 +58,7 @@ Partial Class DocumentViewer
Me.ToolStripStatusLabel1 = New System.Windows.Forms.ToolStripStatusLabel()
Me.statusLabel = New System.Windows.Forms.ToolStripStatusLabel()
Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+ Me.RichEditControl1 = New DevExpress.XtraRichEdit.RichEditControl()
Me.mainToolStrip.SuspendLayout()
Me.statusbar.SuspendLayout()
Me.SuspendLayout()
@@ -139,25 +139,13 @@ Partial Class DocumentViewer
Me.mainToolStrip.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.mainToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
Me.mainToolStrip.ImageScalingSize = New System.Drawing.Size(24, 24)
- Me.mainToolStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.btnOpen, Me.btnPrint, Me.ToolStripSeparator3, Me.btnFitWidth, Me.btnFitPage, Me.ToolStripSeparator2, Me.btnMouseMode, Me.ToolStripSeparator6, Me.btnFirstPage, Me.btnPreviousPage, Me.tbCurrentPage, Me.lblPageCount, Me.btnNextPage, Me.btnLastPage, Me.ToolStripSeparator1, Me.btnZoomOut, Me.cbZoom, Me.btnZoomIn, Me.ToolStripSeparator5, Me.btnRotateLeft, Me.btnRotateRight, Me.btnFlipX, Me.btnFlipY, Me.ToolStripSeparator4, Me.btnSettings})
+ Me.mainToolStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.btnPrint, Me.ToolStripSeparator3, Me.btnFitWidth, Me.btnFitPage, Me.ToolStripSeparator2, Me.btnMouseMode, Me.ToolStripSeparator6, Me.btnFirstPage, Me.btnPreviousPage, Me.tbCurrentPage, Me.lblPageCount, Me.btnNextPage, Me.btnLastPage, Me.ToolStripSeparator1, Me.btnZoomOut, Me.cbZoom, Me.btnZoomIn, Me.ToolStripSeparator5, Me.btnRotateLeft, Me.btnRotateRight, Me.btnFlipX, Me.btnFlipY, Me.ToolStripSeparator4, Me.btnSettings})
Me.mainToolStrip.Location = New System.Drawing.Point(0, 0)
Me.mainToolStrip.Name = "mainToolStrip"
Me.mainToolStrip.Size = New System.Drawing.Size(1015, 31)
Me.mainToolStrip.TabIndex = 6
Me.mainToolStrip.Text = "ToolStrip1"
'
- 'btnOpen
- '
- Me.btnOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
- Me.btnOpen.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.btnOpen.Image = CType(resources.GetObject("btnOpen.Image"), System.Drawing.Image)
- Me.btnOpen.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None
- Me.btnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
- Me.btnOpen.Margin = New System.Windows.Forms.Padding(10, 1, 0, 2)
- Me.btnOpen.Name = "btnOpen"
- Me.btnOpen.Size = New System.Drawing.Size(28, 28)
- Me.btnOpen.Text = "Open document"
- '
'btnPrint
'
Me.btnPrint.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
@@ -425,10 +413,22 @@ Partial Class DocumentViewer
'
Me.OpenFileDialog.FileName = "OpenFileDialog1"
'
+ 'RichEditControl1
+ '
+ Me.RichEditControl1.Location = New System.Drawing.Point(735, 313)
+ Me.RichEditControl1.Name = "RichEditControl1"
+ Me.RichEditControl1.Options.HorizontalRuler.Visibility = DevExpress.XtraRichEdit.RichEditRulerVisibility.Hidden
+ Me.RichEditControl1.Options.VerticalRuler.Visibility = DevExpress.XtraRichEdit.RichEditRulerVisibility.Hidden
+ Me.RichEditControl1.ReadOnly = True
+ Me.RichEditControl1.Size = New System.Drawing.Size(249, 225)
+ Me.RichEditControl1.TabIndex = 8
+ Me.RichEditControl1.Text = "RichEditControl1"
+ '
'DocumentViewer
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.Controls.Add(Me.RichEditControl1)
Me.Controls.Add(Me.GdViewer)
Me.Controls.Add(Me.statusbar)
Me.Controls.Add(Me.mainToolStrip)
@@ -445,7 +445,6 @@ Partial Class DocumentViewer
Friend WithEvents GdViewer As GdPicture14.GdViewer
Friend WithEvents mainToolStrip As ToolStrip
- Friend WithEvents btnOpen As ToolStripButton
Friend WithEvents btnPrint As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents btnFitWidth As ToolStripButton
@@ -479,4 +478,5 @@ Partial Class DocumentViewer
Friend WithEvents ToolStripStatusLabel1 As ToolStripStatusLabel
Friend WithEvents statusLabel As ToolStripStatusLabel
Friend WithEvents OpenFileDialog As OpenFileDialog
+ Friend WithEvents RichEditControl1 As DevExpress.XtraRichEdit.RichEditControl
End Class
diff --git a/Controls.DocumentViewer/DocumentViewer.resx b/Controls.DocumentViewer/DocumentViewer.resx
index ee577e98..55c9128f 100644
--- a/Controls.DocumentViewer/DocumentViewer.resx
+++ b/Controls.DocumentViewer/DocumentViewer.resx
@@ -121,34 +121,16 @@
17, 17
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALYSURBVEhLzVTdSxRRFN/Syh6EqP6C/oDoIQhfMqKPdWd1
- JVqqhwhrZ6p9KDX3o7RuMTNbwhr0UvgQPoQP7s6saXqHIvIl6K1gW8iHyr4WdzYQCjTdr+me68w0Xlwx
- NOjAj3vOuXN/v3POnRnXf20IoY1NqnjQq4idnCJfaVLlw/5EosbcXpt5U7EGTpUnCYwlSMrvPYq433zM
- 5YpGo4ORSKRiwiCxYcXgmxg0H6cG5EdUNOcbvmM0p2I2+ckndxf9R2ieS4oH6MNOwmoCZp6KwFgIySSQ
- A9nLb+8MX+q2LWIjKU41TqBaKrBKgGAcZg4ELYQUyMFe5z4YrabgQqloi3hUiVvSQRXf6gAQh8u0CFgR
- yFUqlT8CityzGgHbBwGPIoUsAoBTpFQu09Vr70vX/2ZEAMwp0lE47B+J2yKAueICJQezLt6ryK1MB6H7
- vaFQfV9fx9ahZTCAUJ3Q378JLtAini3MG4VyyUaRAC69KSll3fjeFqfAT/KG1GYSwT1p3FLOa4KRHuAr
- AMuHNYcDvZwiHuJUVLBEWOxVUQkuWB/nbzpGFHkGr+GnUf4SEFXDW81X1jXhGIwKqmTJ3UmU8ypScx6f
- 93zVAj/sDq5Fw7dAIDsuDDmrZjuANYP5EqlObE3FdhDS4+TiZQD5ZZyAXB4LKDvaUpgeCzy1O0DdXe5E
- wl+j47bPVrVrhY6FKBUIBoMLcdS5M61c3MVW7fSdOTZezp8e4/eZHUQyhuHa8HH4wumVDjhzbMz6Odw2
- MzVxps4UCD+k8x/jH8Dm+oDMHwwEbnSHefB1fC5drSI2x8asn9MCPZZARUZdu98MXN6W0YRStQNsjo1Z
- P4/5RirQ3t4+Qz6wzZOq4KYb64JTs98fn62nAuQbeA7rlxFBgs1qFbE5Nmb8V5QcrPtqRII1Ox54scIB
- 6jtzbOz0dcz3UXIwhDq2w6rjRYE1Y1j4ldOEBkr+783l+g2Z7twS24tpVgAAAABJRU5ErkJggg==
-
-
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- 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
+ 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
@@ -172,87 +154,87 @@
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVEhLnZPPKwRhHMa3/Dq5+AcclYuDC5oZcfIHcFO4
- uEgidkYODsRFSa6KI0th3k1+HLhQpOXgrHDkRhTxep/x3Zq8z5pZn/r0Nu/3fZ7Znd3JlKKnJ1fh+Ple
- N1Chl1X3DQOrH16g9FzuSmONrs0+5jiH8xJNpmV0v87JqjMU/Xbr9NbagziPnFT8jflUe6yke/5Iz24U
- opXNkZOK0niTymVh+Pz2rgFWNo80eanieH64TIPGOGweafJSxXEm1AUNGuOwOUReqjjOmHpiQRiHzSHy
- UsXxBtQnC8I4bB5p8lJl0z59XElDxs6pvL6+fdIv5gfGimt2DkqdTfPgZRULxM2untP9ou1GqbMp3uCg
- 8PAv8xd30U2kzoZ9AzyKvsUT7a+d65n1gp7fvIpWXGOfPSqps0nziNIodTaN07lqFihXqbPpGt6rYYFy
- lTqbn7/pyhcLpXflS+o4f73JaUx8k51AHbJgWpGXKo7rh0MsmFbkpYrTNrFT2xqoRxZOEjnkpao0rr/b
- zwqSRE4qknF9tcRKSonzEk2PG4TjTSPbb6ywKOY4J5Hy6ZjK1ztBuGDKboyvMW+wj7kcJWQy34QJuKYJ
- Zco/AAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVEhLnZM9LwRRGIU38VVp/AGdQqPQIDMjVH4AncRW
+ GhEh7IwoFIRGIqJUULIkmLsRHwUNCZGlUEtQ0hESwnXPeDeZuGfNrCd5cjP3vefM7uxOphx9ffkqxy/0
+ u4EKvZy6b8qufniB0nP5K401ujb7mOMczks0mbbR/QYnp85Q9Nut01trD+I8clLxN+ZT7bGS3vkjPbtR
+ jFY2R04qyuNNKpeF4fPbuwZY2TzS5KWK4/nhMg0a47B5pMlLFceZUBc0aIzD5hB5qeI4Y+qJBWEcNofI
+ SxXHy6pPFoRx2DzS5KXKpnP6uJqGjN1TBX19+6RfzA+MFdfsHJQ6m9bByxoWiJtbPaf7JTuNUmdTusFB
+ 8eFfFi7uoptInQ37BngUA4sn2l871zPrRT2/eRWtuMY+e1RSZ5PmEaVR6myap/O1LFCpUmfTM7xXxwKV
+ KnU2P3/TlS8WSu/Kl9Rx/nqT05j4JjuBOmTBtCIvVRzXD4dYMK3ISxWnY2Knvj1QjyycJHLIS1V5XH83
+ ywqSRE4qknF9tcRKyonzEk2PG4TjLSPbb6ywJOY4J5HK6ZoqNDpBuGDKboyvMW+wj7kcJWQy302FuJ6d
+ LkBBAAAAAElFTkSuQmCC
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
- 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
+ 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
- X7+fw7Z8U4pdxeYbQPwfhKFSlAH7/PUCduWbyy1KNz2zLW/9BzIYRIMwVAl5wKlqszTQxZ02RZveIBtK
- sQU2FVvV7Mo2T7esWPsFFhS4MFQLMeA/o1XpBhOb8k0rtSo2/0F3KS42VDMeAExq9hVbXGzLN+yx9dr0
- F9kAiiwIDV3FbFuxKdymdPMpO+/Nf0GayMFQ4xDAtXgnNzD9ptuVbryJzUXIfGRxXGyosQwMFoU7hIAp
- ohSIn+LTgMzHpQaZDTbctnxjg23BmnfEaEDmE6MebIFdxZY064rN9+0q2sCS1MRgC0DAI3cbu33Fplib
+ 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
- ZGBgYAAAx7aKXPsltNoAAAAASUVORK5CYII=
+ ZGBgYAAA4ZqJ8RwZ1lsAAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHCSURBVEhLYwCD+nomCINGwLZs0wmbss0hxmlnWKFC1AV2
- FZv/Q/EN2/JNKfb1+zmgUtQBtuWt/0AYZAmItijd9MyufHO5ff56AagSygC6BTC2TdGmN0AfdTpVbZaG
- KiUPQIMHJ7asWPvFrmzzdJuKrWpQLaQBXD5AZ2tVbP5jU75ppVXpBhMGhv+MUO2EAT5DkdlwMa9Nf23L
- N+yxr9jiQlQSB2kkC3tv/mtTuvmUbcWm8NDQVcxQ4zABuktxsZHF0Pl2pRtvAvNTumvxTm6osQiAVQOp
- FsDZm54CcalF4Q4hqPHUtgDKLljzzrZ8YwPYApAAdXHbP+uKzfftKrakgS3A6Qo0NrIYOh/GtinbcNm+
+ FZv/Q/EN2/JNKfb1+zmgUtQBtuUt/0AYZAmItijd9MyufHO5ff56AagSygC6BTC2TdGmN0AfdTpVbZaG
+ KiUPQIMHJ7asWPvFrmzzdJuKrWpQLaQBXD5AZ2tVbP5jU75ppVXpBhMGhv+MUO2EAT5DkdlwMc9Nf23L
+ N+yxr9jiQlQSB2kkC3tt/mtTuvmUbcWm8NDQVcxQ4zABuktxsZHF0Pl2pRtvAvNTumvxTm6osQiAVQOp
+ FsDZm54CcalF4Q4hqPHUtgDKLljzzrZ8YwPYApAAdXHrP+uKzfftKrakgS3A6Qo0NrIYOh/GtinbcNm+
YlOsR+42drDhIACSpBiXbT5iU7kpAFiOsUCNRQB8LkJmI4uBsHz8/N/W5Rt32JVucIQahR3ANBBtQdam
nzZlG1fYlW8whBqBH4A0EoP189d/ty3fPBVYVKhDtRIH0F2Kyd74FlSq2lZtl4RqIQ1gN3Tzf1C9YFu2
- sdKmYosgVCl5AGQYCi7ZcBeUhrFme3IA3NXlm8/alm6OxprUKAHWpZsOAl3uRcPWBQmVB0mAgQEApL+K
- XHJ8GzIAAAAASUVORK5CYII=
+ sdKmYosgVCl5AGQYCi7ZcBeUhrFme3IA3NXlm8/alm6OxprUKAHWpZsOAl3uRcPWBQmVB0mAgQEAsj+J
+ 8ff7OMIAAAAASUVORK5CYII=
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
- bF2x6YNtxaYO+6JNIlApooF8/PzfMHNgGCoF9EF56z+QAIiGsj/ZlG9qs6ncJgpVQhCALEA3ByqF1QIw
+ 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
- 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
+ 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
- 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
+ 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
@@ -325,19 +307,19 @@
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
- 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
+ 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
diff --git a/Controls.DocumentViewer/DocumentViewer.vb b/Controls.DocumentViewer/DocumentViewer.vb
index d129ef9b..d635acc0 100644
--- a/Controls.DocumentViewer/DocumentViewer.vb
+++ b/Controls.DocumentViewer/DocumentViewer.vb
@@ -24,6 +24,9 @@ Public Class DocumentViewer
Private _logConfig As LogConfig
Private _logger As Logger
+ ' List of all created temp files when converting msg files
+ Private _TempFiles As New List(Of String)
+
Private Sub DocumentViewer_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim zoomModes As New Dictionary(Of ZoomMode, String) From {
{ZoomMode.Zoom50, "50%"},
@@ -40,6 +43,8 @@ Public Class DocumentViewer
cbZoom.Items.Add(item.Value)
Next
+ _TempFiles.Clear()
+
UpdateMainUi()
End Sub
@@ -59,23 +64,62 @@ Public Class DocumentViewer
CloseDocument()
- _docPath = filepath
- statusLabel.Text = _docPath
-
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter
- GdViewer.DisplayFromFile(filepath)
- GdViewer.Focus()
+
+ DoLoadFile(filepath)
+
+ statusLabel.Text = _docPath
UpdateMainUi()
End Sub
+ Public Sub DoLoadFile(FilePath As String)
+ Try
+ Dim oFileInfo = New IO.FileInfo(FilePath)
+ Dim oExtension As String = oFileInfo.Extension
+
+ Select Case oExtension
+ Case ".msg"
+ Dim oMsg As New Independentsoft.Msg.Message(FilePath)
+ ' 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, DevExpress.XtraRichEdit.DocumentFormat.Mht)
+
+ _TempFiles.Add(oTempFileName)
+
+ RichEditControl1.Visible = True
+ RichEditControl1.Dock = DockStyle.Fill
+ Case ".eml"
+ RichEditControl1.LoadDocument(FilePath, DevExpress.XtraRichEdit.DocumentFormat.Mht)
+
+ RichEditControl1.Visible = True
+ RichEditControl1.Dock = DockStyle.Fill
+ Case Else
+ _docPath = FilePath
+
+ GdViewer.DisplayFromFile(_docPath)
+ GdViewer.Focus()
+
+ RichEditControl1.Visible = False
+ RichEditControl1.Dock = DockStyle.None
+ End Select
+ Catch ex As Exception
+ _logger.Error(ex)
+ End Try
+ End Sub
+
+
Private Sub CloseDocument()
GdViewer.CloseDocument()
UpdateMainUi()
End Sub
- Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
+ Private Sub btnOpen_Click(sender As Object, e As EventArgs)
CloseDocument()
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
@@ -452,4 +496,13 @@ Public Class DocumentViewer
MagnifierToolStripMenuItem.Checked = True
GdViewer.Focus()
End Sub
+
+ Private Sub DocumentViewer_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
+ For Each oFile In _TempFiles
+ Try
+ IO.File.Delete(oFile)
+ Catch ex As Exception
+ End Try
+ Next
+ End Sub
End Class
diff --git a/Controls.DocumentViewer/DocumentViewer.vbproj b/Controls.DocumentViewer/DocumentViewer.vbproj
index 1104f1b4..99d39398 100644
--- a/Controls.DocumentViewer/DocumentViewer.vbproj
+++ b/Controls.DocumentViewer/DocumentViewer.vbproj
@@ -48,9 +48,24 @@
On
+
+
+
+
+
+
+
+
+
+
+
+
D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll
+
+ P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Independentsoft.Msg.dll
+
..\packages\NLog.4.6.7\lib\net45\NLog.dll
@@ -134,6 +149,7 @@
frmViewerSettings.vb
+
VbMyResourcesResXFileCodeGenerator
Resources.Designer.vb
diff --git a/Controls.DocumentViewer/My Project/licenses.licx b/Controls.DocumentViewer/My Project/licenses.licx
new file mode 100644
index 00000000..6d20af11
--- /dev/null
+++ b/Controls.DocumentViewer/My Project/licenses.licx
@@ -0,0 +1 @@
+DevExpress.XtraRichEdit.RichEditControl, DevExpress.XtraRichEdit.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a