[RESUELTO]Transformar de Texto a HTML

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
emoreno
Mensajes: 14
Registrado: Jue Feb 04, 2010 8:12 pm
Ubicación: México, D.F.

[RESUELTO]Transformar de Texto a HTML

Mensaje por emoreno »

Saludos:

Tengo un documento de texto, el cual quiero guardar su contenido en formato HTML.

Este es el código desarrollado

Código: Seleccionar todo

Sub GuardarDocumento
	Dim oDocOdt As Object, oDlgGuardar As Object, oDocHTML As Object
	Dim oCursorOdt As Object, oCursorHTML As Object
	Dim mArg() As New "com.sun.star.beans.PropertyValue"
	Dim sRuta As String, mArchivos() As String
	
        'Activo el documento actual
	oDocOdt = thisComponent
	
        'Pido el nombre que tendrá el archivo HTML por medio de un cuadro de diálogo standard
	oDlgGuardar = CreateUnoService ("com.sun.star.ui.dialogs.FilePicker")
        With oDlgGuardar
		.Initialize(mDlgOpciones())
                .AppendFilter("Página WEB","*.html")
        End With
        
	If oDlgGuardar.Execute() Then
		mArchivos() = oDlgGuardar.getFiles()
		sRuta = ConvertFromUrl(mArchivos(0))
		If FileExists(sRuta) Then
                        'Si el archivo existe, lo elimino para generar el nuevo
			Kill(sRuta)
		End If

               'Genero un nuevo archivo
                oDocHTML = StarDesktop.loadComponentFromURL( "private:factory/swriter/web", "_blank", 0, mArg())
 
               'Creo los cursores para copiar el texto de un documento a otro
                oCursorOdt = oDoc.Text.createTextCursor()
                oCursorHTML = oDocHTML.Text.createTextCursor()
        
               'Selecciono todo el contenido del documento de texto
               oCursorOdt.gotoStart(False)
               oCursorOdt.gotoEnd(True)
          
               'Copio el contenido del archivo de texto a el nuevo documento
               oCursorHTML.String = oCursorOdt.String
        
               'Guardo el documento con el nombre elegido por el usuario
               oDocHTML.storeToURL(sRuta,mArg())

               'Cierro el documento
               oDocHTML.Close(True)
      
	End If
End Sub
Todo va bien hasta que trato de guardar el documento.
En mi escritorio aparece el documento en formato html sin nombre y con el mismo contenido que el documento de texto, por tanto, solo me falta guardar.

Ya sustituí storeToURL por storeFromURL y nomas no.
Siento que es algo del argumento mArg(), pero no encuentro el parámetro.

Si alguien tiene alguna idea que probar, adelante.
Última edición por emoreno el Vie May 14, 2010 4:15 pm, editado 1 vez en total.
J. Eduardo Moreno S.
México, D.F.
LibreOffice 3.6 (Windows y ALDOS Linux)
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Transformar de Texto a HTML

Mensaje por mauricio »

Hola Eduardo...

¿No te sirve exportar a HTML directamente?, si usas la propiedad String para copiar, el formato que tengas lo perderás...

Código: Seleccionar todo

Sub ExportandoHTML()
Dim sRuta As String
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"
Dim oDoc As Object

        
        oDoc = ThisComponent
		sRuta = ConvertToUrl( "/home/mau/" & oDoc.getTitle & ".html" )
				
        'Establecemos el filtro a documento HTML
        mOpciones(0).Name = "FilterName"
        mOpciones(0).Value = "HTML (StarWriter)"
        
        'Exportamos en HTML
        oDoc.storeToURL( sRuta, mOpciones() )

        'Lo mostramos en el navegador
        Shell ( "firefox",0, sRuta )
        
End Sub
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
emoreno
Mensajes: 14
Registrado: Jue Feb 04, 2010 8:12 pm
Ubicación: México, D.F.

Re: Transformar de Texto a HTML

Mensaje por emoreno »

Ya encontré el error en mi código, no había transformado el URL a un formato correcto.

Código: Seleccionar todo

        oDocHTML.storeToURL(ConvertToURL(sRuta),mArg())
        oDocHTML.Close(True)
Eso me pasa por no leer con calma. Gracias.
J. Eduardo Moreno S.
México, D.F.
LibreOffice 3.6 (Windows y ALDOS Linux)
Responder