Exportar a PDF en lotus Notes no aplica filtros

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
operaciones1
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Exportar a PDF en lotus Notes no aplica filtros

Mensaje por operaciones1 »

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por mauricio »

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
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
operaciones1
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por operaciones1 »

El código con el que estoy probando es el siguiente:

Código: Seleccionar todo

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por mauricio »

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

    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
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
operaciones1
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por operaciones1 »

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por mauricio »

Si, pero tiene una "leve" diferencia con el tuyo... ¿puedes intentarlo?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
operaciones1
Mensajes: 4
Registrado: Jue Ene 19, 2017 11:38 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por operaciones1 »

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
maarc_cnj
Mensajes: 1
Registrado: Vie Ene 03, 2020 9:29 am

Re: Exportar a PDF en lotus Notes no aplica filtros

Mensaje por maarc_cnj »

Hola, tengo el mismo problema.

Encontrasteis alguna solucion?

Gracias
OpenOffice 3.1 en Windows 10
Responder