Exportar a PDF en lotus Notes no aplica filtros

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

Exportar a PDF en lotus Notes no aplica filtros

Notapor operaciones1 » Jue Ene 19, 2017 12:13 pm

Hemos creado un código para exportar a PDF diferentes documentos. La exportación la realiza correctamente pero los filtros no los aplica.

Encontré lo siguiente: https://bz.apache.org/ooo/show_bug.cgi?id=119417

donde explican que FilterData precisa que se le indique el tipo de datos que es, por lo que se tiene que modificar el código para que el array que se pasa lo indique.

El código ya modificado es el siguiente:

Dim paso()
Set paso = SM.Bridge_GetValueObject()
Call paso.Set("[]com.sun.star.beans.PropertyValue",filterdata)
Set oPropertyValue = SM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
oPropertyValue.Name = "FilterData"
oPropertyValue.Value = paso <--- aquí antes se le pasaba filterdata

donde filterdata es el array con los valores de filtro. Ahora me da un TypeMismatch cuando asigno paso a oPropertyValue.Value

Lo único que veo es que el set no convierte paso a array (que igual no lo tiene que hacer ...), y value parece que si que espera un array

Puede alguien indicarme como aplicar los filtros en la exportación?
OpenOffice 4.1.2 en W7
operaciones1
 
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Notapor mauricio » Jue Ene 19, 2017 5:37 pm

Creo recordar, que FilterData también es una matriz de PropertyValue, ¿así se la estas pasando?.. ¿puedes mostrar el código completo que usas?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5792
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Exportar a PDF en lotus Notes no aplica filtros

Notapor operaciones1 » Vie Ene 20, 2017 8:54 am

El código con el que estoy probando es el siguiente:
Código: Seleccionar todo   Expandir vistaContraer vista
Dim Desktop As variant
   Dim Doc As variant
   Dim Url As String
   Dim Dummy() 'An (empty) array of PropertyValues
   Dim PrinterProperties(1) As Variant
   Dim docproperties(0) As Variant
   Dim SaveParam(1) As Variant
   
   Dim SM As Variant
   Dim filterdata(5)
   
   
   Url = "file:///C:/temp/prueba.odt"
   Set SM=CreateObject("com.sun.star.ServiceManager")
   Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")
   
   Set docProperties(0) = MakePropertyValue("Hidden", False)
   Set Doc = Desktop.loadComponentFromURL(Url, "_blank", 0, docProperties)
   
   Set filterdata(0) = MakePropertyValue("OpenInFullScreenMode",True)
   Set filterdata(1) = MakePropertyValue("HideViewerMenubar",True)
   Set filterdata(2) = MakePropertyValue("HideViewerToolbar",True)
   Set filterdata(3) = MakePropertyValue("HideViewerWindowControls",True)
   Set filterdata(4) = MakePropertyValue("ExportBookmarks",True)
   Set filterdata(5) = MakePropertyValue("UseTaggedPDF",True)

   
   Set SaveParam(0) = MakePropertyValue("FilterName", "writer_pdf_Export")
   Set SaveParam(1) = MakePropertyValue("FilterData", filterdata)

   
   destino = "file:///c:/temp/resultado.pdf·
   Call doc.storeToURL(destino, SaveParam)
   Call doc.Close(false)


Function MakePropertyValue(cName, uValue) As Variant
   Dim oPropertyValue As Variant
   
   Set oPropertyValue = SM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
   oPropertyValue.Name = cName
   oPropertyValue.Value = uValue
     
   Set MakePropertyValue = oPropertyValue
End Function

Function MakePropertyValue2(cName, uValue) As Variant
   Dim oPropertyValue As Variant
   Dim paso
   Set paso = SM.Bridge_GetValueObject()
   Call paso.Set("[]com.sun.star.beans.PropertyValue",uValue)
   Set oPropertyValue = SM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
   oPropertyValue.Name = cName
   oPropertyValue.Value = paso
     
   Set MakePropertyValue2 = oPropertyValue
   
End Function


Tal como está me genera el pdf pero no aplica los filtros, si aplico lo que comentan para el FilterData recoja el tipo
cambio la línea --> Set SaveParam(1) = MakePropertyValue("FilterData", filterdata)
por --> Set SaveParam(1) = MakePropertyValue2("FilterData", filterdata)
da el error al asignar paso a oPropertyValue.Value (error type mismatch)

En lotusscript no conozco manera de decirle al array que sea de un tipo que no está definido. He tratado de crear yo un type con la misma estructura y asignárselo al arrary filterdata, pero al asignarlo tb me da error.
OpenOffice 4.1.2 en W7
operaciones1
 
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Notapor mauricio » Vie Ene 20, 2017 4:51 pm

Claro, MakePropertyValue2 no creo que retorne una extructura correcta... hace mucho que no programo en Basic, prueba a usar esta versión de MakeProperty y nos cuentas:
Código: Seleccionar todo   Expandir vistaContraer vista
    Function MakePropertyValue(ByVal cName, ByVal uValue) As Object

        Dim oPropertyValue As Object
        Dim oSM As Object

        oSM = CreateObject("com.sun.star.ServiceManager")
        oPropertyValue = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
        oPropertyValue.Name = cName
        oPropertyValue.Value = uValue

        MakePropertyValue = oPropertyValue

    End Function

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5792
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Exportar a PDF en lotus Notes no aplica filtros

Notapor operaciones1 » Vie Ene 20, 2017 5:25 pm

El MarketPropertyValue que me indicas, si te fijas es el mismo que tengo puesto yo (el 2 no el otro), y que no aplica los filtros aunque si genera el pdf .
El MarketPropertyValue2 esta hecho para realizar lo que indicaban en https://bz.apache.org/ooo/show_bug.cgi?id=119417, que por lo que comentan FilterData precisa que se le indique calaramente al array que es de tipo PropertyValue. Pero al realizar la conversión, me da el typemismatch al asignarlo.
OpenOffice 4.1.2 en W7
operaciones1
 
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Notapor mauricio » Vie Ene 20, 2017 5:58 pm

Si, pero tiene una "leve" diferencia con el tuyo... ¿puedes intentarlo?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5792
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Exportar a PDF en lotus Notes no aplica filtros

Notapor operaciones1 » Lun Ene 23, 2017 12:23 pm

En lo que me pasas tengo que cambiar los object por variant, tema lotusscript, y filterdata no lo puedo poner con byval, ya que no se permite el paso de arrays como valor.
Pruebo cambiando eso y el resultado es el mismo.
OpenOffice 4.1.2 en W7
operaciones1
 
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados