111 lines
5.3 KiB
VB.net
111 lines
5.3 KiB
VB.net
Imports DevExpress.Xpf.Core
|
|
Imports DevExpress.Xpf.RichEdit
|
|
Imports DevExpress.XtraRichEdit.Export
|
|
Imports DevExpress.XtraRichEdit.Export.Html
|
|
Imports DevExpress.XtraRichEdit.Commands
|
|
Imports DevExpress.Office.Services
|
|
Public Class dxwEditor
|
|
Public Delegate Sub Guardar(ms As IO.Stream)
|
|
Public Delegate Sub GuardarYExportarHTML(ms As IO.Stream, msHTML As IO.Stream)
|
|
Private DlGuardar As Guardar
|
|
Private DlGuardarYExportarHTML As GuardarYExportarHTML
|
|
Public Delegate Sub CargarDatosMailMerge(dxrte As RichEditControl)
|
|
Private DlCargarDatosMailMerge As CargarDatosMailMerge
|
|
Private _FormatoOrigen As DevExpress.XtraRichEdit.DocumentFormat
|
|
Private _FormatoDestino As DevExpress.XtraRichEdit.DocumentFormat
|
|
Private _SoloLectura As Boolean
|
|
|
|
|
|
|
|
Private Sub biGuardar_ItemClick(sender As Object, e As DevExpress.Xpf.Bars.ItemClickEventArgs)
|
|
Dim ms As New IO.MemoryStream
|
|
'If _Formato = DevExpress.XtraRichEdit.DocumentFormat.Html Then
|
|
' Dim options As New HtmlDocumentExporterOptions()
|
|
' options.ExportRootTag = ExportRootTag.Html
|
|
' options.CssPropertiesExportType = CssPropertiesExportType.Inline
|
|
' options.EmbedImages = True
|
|
' Dim exporter = New HtmlExporter(Me.recEditor.Model, options)
|
|
' Dim s As String = exporter.Export()
|
|
' ms = New IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(s))
|
|
'Else
|
|
Me.recEditor.SaveDocument(ms, _FormatoDestino)
|
|
'End If
|
|
If Me.DlGuardar IsNot Nothing Then
|
|
Me.DlGuardar.Invoke(ms)
|
|
End If
|
|
If Me.DlGuardarYExportarHTML IsNot Nothing Then
|
|
Dim options As New HtmlDocumentExporterOptions()
|
|
options.ExportRootTag = ExportRootTag.Html
|
|
options.CssPropertiesExportType = CssPropertiesExportType.Inline
|
|
options.EmbedImages = True
|
|
Dim exporter = New HtmlExporter(Me.recEditor.Model, options)
|
|
Dim s As String = exporter.Export()
|
|
Dim mshtml = New IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(s))
|
|
Me.DlGuardarYExportarHTML(ms, mshtml)
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
Private Sub biGuardarYSalir_ItemClick(sender As Object, e As DevExpress.Xpf.Bars.ItemClickEventArgs)
|
|
biGuardar_ItemClick(sender, e)
|
|
Me.Close()
|
|
End Sub
|
|
Public Sub New(Documento As IO.Stream, DelegadoGuardar As Guardar, Optional DelegadoCargaMailMerge As CargarDatosMailMerge = Nothing, Optional SoloLectura As Boolean = False)
|
|
_FormatoOrigen = DevExpress.XtraRichEdit.DocumentFormat.OpenXml
|
|
_FormatoDestino = DevExpress.XtraRichEdit.DocumentFormat.OpenXml
|
|
_SoloLectura = SoloLectura
|
|
Nuevo(Documento, DelegadoGuardar, Nothing, DelegadoCargaMailMerge)
|
|
|
|
End Sub
|
|
Public Sub New(Documento As IO.Stream, FormatoOrigen As DevExpress.XtraRichEdit.DocumentFormat, FormatoDestino As DevExpress.XtraRichEdit.DocumentFormat, DelegadoGuardarYExportarHTML As GuardarYExportarHTML, Optional DelegadoCargaMailMerge As CargarDatosMailMerge = Nothing, Optional SoloLectura As Boolean = False)
|
|
_FormatoOrigen = FormatoOrigen
|
|
_FormatoDestino = FormatoDestino
|
|
_SoloLectura = SoloLectura
|
|
Nuevo(Documento, Nothing, DelegadoGuardarYExportarHTML, DelegadoCargaMailMerge)
|
|
End Sub
|
|
|
|
Public Sub New(Documento As IO.Stream, FormatoOrigen As DevExpress.XtraRichEdit.DocumentFormat, FormatoDestino As DevExpress.XtraRichEdit.DocumentFormat, DelegadoGuardar As Guardar, Optional DelegadoCargaMailMerge As CargarDatosMailMerge = Nothing, Optional SoloLectura As Boolean = False)
|
|
_FormatoOrigen = FormatoOrigen
|
|
_FormatoDestino = FormatoDestino
|
|
_SoloLectura = SoloLectura
|
|
Nuevo(Documento, DelegadoGuardar, Nothing, DelegadoCargaMailMerge)
|
|
End Sub
|
|
Private Sub Nuevo(Documento As IO.Stream, DelegadoGuardar As Guardar, Optional DelegadoGuardaryExportarHTML As GuardarYExportarHTML = Nothing, Optional DelegadoCargaMailMerge As CargarDatosMailMerge = Nothing)
|
|
Try
|
|
DXSplashScreen.Show(Of SplashScreenTecnosis)()
|
|
DXSplashScreen.SetState("Cargando Documento ...")
|
|
|
|
' Llamada necesaria para el diseñador.
|
|
InitializeComponent()
|
|
DlGuardar = DelegadoGuardar
|
|
If _SoloLectura Then Me.biGuardar.IsEnabled = False
|
|
DlGuardarYExportarHTML = DelegadoGuardaryExportarHTML
|
|
|
|
DlCargarDatosMailMerge = DelegadoCargaMailMerge
|
|
If Documento IsNot Nothing Then
|
|
Me.recEditor.LoadDocument(Documento, _FormatoOrigen)
|
|
Else
|
|
Me.recEditor.Document.Sections(0).Page.PaperKind = System.Drawing.Printing.PaperKind.A4
|
|
End If
|
|
Catch ex As Exception
|
|
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
|
DXMessageBox.Show(ex.Message, "Error Cargando Documento")
|
|
Finally
|
|
|
|
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
|
End Try
|
|
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
|
|
|
End Sub
|
|
|
|
Private Sub dxwEditor_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
|
If Me.DlCargarDatosMailMerge IsNot Nothing Then
|
|
Me.DlCargarDatosMailMerge.Invoke(Me.recEditor)
|
|
Else
|
|
Me.pageMailMerge.IsVisible = False
|
|
End If
|
|
End Sub
|
|
|
|
End Class
|