Error al exportar pdf desde vb6

Hola!

Intento exportar un doc a pdf desde visual basic 6 y me da el siguiente error:
objprovider:
Error al guardar el documento albarandaisalux:
No hay acceso al objeto.
No se puede acceder al objeto
debido a que los derechos del usuario son insuficientes.

Os paso el código a ver si alguien me puede echar una mano.

Public Function ExportPDF(strDocumentoPDF As String) As Boolean
Dim dispatcher As Object
Dim args1(1) As Object
Dim oServiceManager As Object
Dim objprovider As Object

On Error GoTo HayError

Set oServiceManager = CreateObject(“com.sun.star.ServiceManager”)
Set dispatcher = oServiceManager.createInstance(“com.sun.star.frame.DispatchHelper”)
Set args1(0) = oServiceManager.Bridge_GetStruct(“com.sun.star.beans.PropertyValue”)
Set args1(1) = oServiceManager.Bridge_GetStruct(“com.sun.star.beans.PropertyValue”)

args1(0).Name = “URL”

’ args1(0).value = “file:///” & ConvertToUrl(strDocumentoPDF) ’ change the path below as per your needs
'corregido
args1(0).value =ConvertToUrl(strDocumentoPDF)
args1(1).Name = “FilterName”
args1(1).value = “writer_pdf_Export”

’ Open strDocumentoPDF For Append As #1
’ Close #1

Set objprovider = document.CurrentController.Frame

dispatcher.executeDispatch objprovider, “.uno:ExportDirectToPDF”, “”, 0, args1
ExportPDF = True
Exit Function

HayError:
ExportPDF = False
MsgBox "Error al procesar el documento de LibreOffice, pongase en contacto con soft. Error en ExportPDF: " & Err.Number & " " & Err.Description

End Function

Debes de tener claro que estas “dentro” de VB, VB no conoce los objetos de LibreOffice, por lo que NO puedes usar la función ConvertToUrl directamente, creo que hay una forma de invocarlo desde VB, pero ahora no lo recuerdo, para validar si es esto, captura manualmente la ruta en formato URL del destino del documento. Por otra parte, si dentro de LibreOffice no es la mejor alternativa usar dispatcher, fuera de el, aún menos.

EDICION: Como usar ConvertToUrl desde VB

   sRuta = "C:\ArchivoOculto.ods"
   OOC = CreateObject("com.sun.star.ServiceManager")
   oFCP = OOC.createInstance("com.sun.star.ucb.FileContentProvider")
   sRuta = oFCP.getFileURLFromSystemPath("", sRuta)

Hola, gracias por tu respuesta tengo una función hecha en visual basic y es la que utilizo para convertir a url, no la he puesto en el código, la utilizo para guardar documentos del libre office y no me da ningún problema. A ver si a alguien le ha dado el mismo error y me puede ayudar, gracias.
Tenias razón convertia a url y además añadia el ///file otra vez, que fallo, no lo veía muchas gracias.

Private Function ConvertToUrl(strFile) As String
Dim strFichero As String
strFichero = strFile
strFichero = Replace(strFichero, “”, “/”)
strFichero = Replace(strFichero, “:”, “|”)
strFichero = Replace(strFichero, " ", “%20”)
strFichero = “file:///” + strFichero
ConvertToUrl = strFichero
End Function

Entonces… ¿era el problema o no?.. si estas 100% seguro de que tu ruta en URL es correcta, entonces el mensaje de error es claro: los derechos del usuario son insuficientes.