Haz tu Pregunta
0

Error al exportar pdf desde vb6

preguntado 2019-11-04 09:27:26 +0100

Imagen Gravatar de jaiser

updated 2019-11-05 08:27:44 +0100

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

edit re-etiquetar marcar como ofensivo cerrar fusionar delete

2 Respuestas

Ordenar por » viejos nuevas más votado
0

respondido 2019-11-05 08:19:57 +0100

Imagen Gravatar de jaiser

updated 2019-11-05 08:27:56 +0100

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

edit marcar como ofensivo delete enlace mas

Comments

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.

Imagen Gravatar de mauricio mauricio ( 2019-11-05 15:26:59 +0100 )edit
0

respondido 2019-11-04 16:56:27 +0100

Imagen Gravatar de mauricio

updated 2019-11-04 17:00:27 +0100

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)
edit marcar como ofensivo delete enlace mas
Ingresa/Regístrate para Contestar

Herramientas de Preguntas

1 seguidor

Estadisticas

Preguntado: 2019-11-04 09:27:26 +0100

Visto: 20 veces

Ultima actualización: Nov 05