DocumentViewer: Replace IndependentSoft with Limilabs.Mail

This commit is contained in:
Jonathan Jenne 2021-08-23 11:22:21 +02:00
parent 04dec3495b
commit 1e98befca1
2 changed files with 30 additions and 46 deletions

View File

@ -1,14 +1,15 @@
Imports System.ComponentModel Imports System.IO
Imports System.ComponentModel
Imports System.Globalization Imports System.Globalization
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports DigitalData.Modules.Logging
Imports Independentsoft.Msg
Imports DevExpress.Spreadsheet
Imports GdPicture14
Imports DevExpress Imports DevExpress
Imports DevExpress.Office.Utils Imports DevExpress.Spreadsheet
Imports System.IO
Imports DevExpress.XtraRichEdit.Commands Imports DevExpress.XtraRichEdit.Commands
Imports DevExpress.XtraRichEdit
Imports DevExpress.Office.Utils
Imports GdPicture14
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Messaging
Public Class DocumentViewer Public Class DocumentViewer
Private Enum ZoomMode Private Enum ZoomMode
@ -35,6 +36,7 @@ Public Class DocumentViewer
Private _licenseManager As New GdPicture14.LicenseManager() Private _licenseManager As New GdPicture14.LicenseManager()
Private _logConfig As LogConfig Private _logConfig As LogConfig
Private _logger As Logger Private _logger As Logger
Private _email As Email2
Private _hide_file_info_from_user As Boolean = False Private _hide_file_info_from_user As Boolean = False
Private _FilePath As String Private _FilePath As String
@ -55,13 +57,13 @@ Public Class DocumentViewer
''' <summary> ''' <summary>
''' Initialize the Viewer ''' Initialize the Viewer
''' </summary> ''' </summary>
''' <param name="LogConfig">A LogConfig object</param> ''' <param name="pLogConfig">A LogConfig object</param>
''' <param name="LicenseKey">The GDPicture.NET License Key</param> ''' <param name="pLicenseKey">The GDPicture.NET License Key</param>
Public Sub Init(LogConfig As LogConfig, LicenseKey As String) Public Sub Init(pLogConfig As LogConfig, pLicenseKey As String)
_logConfig = LogConfig _logConfig = pLogConfig
_logger = LogConfig.GetLogger() _logger = pLogConfig.GetLogger()
_email = New Email2(pLogConfig)
_licenseKey = LicenseKey _licenseKey = pLicenseKey
_licenseManager.RegisterKEY(_licenseKey) _licenseManager.RegisterKEY(_licenseKey)
End Sub End Sub
@ -186,23 +188,10 @@ Public Class DocumentViewer
SpreadsheetControl1.Visible = False SpreadsheetControl1.Visible = False
SpreadsheetControl1.Dock = DockStyle.None SpreadsheetControl1.Dock = DockStyle.None
'ToolbarDocumentViewer.Visible = False
Select Case oExtension.ToUpper Select Case oExtension.ToUpper
Case ".MSG" Case ".MSG"
Dim oMsg As New Message(FilePath) Dim oEmlPath As String = _email.Convert_ToEml(FilePath)
' TODO: Improve Encoding, maybe convert based on encoding DoLoadFile(oEmlPath)
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" Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
RichEditControl1.LoadDocument(FilePath, GetDocumentFormat(oExtension)) RichEditControl1.LoadDocument(FilePath, GetDocumentFormat(oExtension))
@ -245,24 +234,18 @@ Public Class DocumentViewer
SpreadsheetControl1.Visible = False SpreadsheetControl1.Visible = False
SpreadsheetControl1.Dock = DockStyle.None SpreadsheetControl1.Dock = DockStyle.None
' ToolbarDocumentViewer.Visible = False
Select Case Extension.ToUpper Select Case Extension.ToUpper
Case ".MSG" Case ".MSG"
Dim oMsg As New Message(Stream)
' TODO: Improve Encoding, maybe convert based on encoding Dim oTempFileName = Path.Combine(IO.Path.GetTempPath(), Guid.NewGuid.ToString & ".msg")
oMsg.Encoding = System.Text.Encoding.UTF32 Using oFileStream As New FileStream(oTempFileName, FileMode.Create)
Dim oMime = oMsg.ConvertToMimeMessage() Stream.Seek(0, SeekOrigin.Begin)
Dim oTempFileName = IO.Path.GetTempFileName() Stream.CopyTo(oFileStream)
oMime.Save(oTempFileName, True) Stream.Flush()
End Using
RichEditControl1.LoadDocument(oTempFileName, XtraRichEdit.DocumentFormat.Mht) Dim oEmlPath As String = _email.Convert_ToEml(oTempFileName)
DoLoadFile(oEmlPath)
_TempFiles.Add(oTempFileName)
RichEditControl1.Visible = True
RichEditControl1.Dock = DockStyle.Fill
Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT" Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
RichEditControl1.LoadDocument(Stream, GetDocumentFormat(Extension)) RichEditControl1.LoadDocument(Stream, GetDocumentFormat(Extension))

View File

@ -73,9 +73,6 @@
<Reference Include="GdPicture.NET.14"> <Reference Include="GdPicture.NET.14">
<HintPath>D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll</HintPath> <HintPath>D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll</HintPath>
</Reference> </Reference>
<Reference Include="Independentsoft.Msg, Version=2.0.570.21482, Culture=neutral, PublicKeyToken=76be97fe952f1ec7, processorArchitecture=MSIL">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\MSG .NET\Bin\22_11_19\Independentsoft.Msg.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.10\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
@ -176,6 +173,10 @@
<Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project> <Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project>
<Name>Logging</Name> <Name>Logging</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\Modules.Messaging\Messaging.vbproj">
<Project>{af664d85-0a4b-4bab-a2f8-83110c06553a}</Project>
<Name>Messaging</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="packages.config" /> <None Include="packages.config" />