Formato de Impresion VBasic OpenOffice -ESCALA - ORIENTACION

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
WilliamsPeru
Mensajes: 5
Registrado: Lun Dic 14, 2009 6:07 pm

Formato de Impresion VBasic OpenOffice -ESCALA - ORIENTACION

Mensaje por WilliamsPeru »

:crazy: Eh pasado a migrar un reporte de excel a OpenOffice, pero mi problema es el formato del reporte
al momento de imprimir dado que salen en muchas hojas y cortado, por lo que les pediria una ayuda para que
me puedan indicar cuales son las propiedades de FACTOR DE ESCALA y ORIENTACION HORIZONTAL

Este es el codigo que coloco en el cual ya tengo la propiedad para el Zomm y pueda ser mas amigable en la vista del usuario

Dim args(1) As Object
Set args(0) = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
args(0).Name = "Hidden"
args(0).Value = True
args(0).Name = "Zoom.Value"
args(0).Value = 85



Gracias por la ayuda :bravo:
Última edición por WilliamsPeru el Mié Dic 30, 2009 2:27 pm, editado 1 vez en total.
OpenOffice 3.1 en Windows Vista
FJCC-ES
Mensajes: 915
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por FJCC-ES »

Código: Seleccionar todo

oDoc = ThisComponent
StyleFamilies = oDoc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefaultStyle = PageStyles.getByName("Default")

'Método 1
DefaultStyle.PageScale = 100 'cambiar la escala de pagina

'Método 2
'DefaultStyle.ScaleToPages = 2  'imprimir en 2 paginas
WilliamsPeru
Mensajes: 5
Registrado: Lun Dic 14, 2009 6:07 pm

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por WilliamsPeru »

FJCC-ES escribió:

Código: Seleccionar todo

oDoc = ThisComponent
StyleFamilies = oDoc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefaultStyle = PageStyles.getByName("Default")

'Método 1
DefaultStyle.PageScale = 100 'cambiar la escala de pagina

'Método 2
'DefaultStyle.ScaleToPages = 2  'imprimir en 2 paginas
No entiendo como aplicar esto a mi codigo
quise usarlo de esta manera

args(0).Name = "PageScale.Value"
args(0).Value = 60

pero nada .....HELP ME !!!!!!
FJCC-ES
Mensajes: 915
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por FJCC-ES »

Nunca uso VB, pero este código cambia PageScale o ScaleToPages. Los dos son PropertyValue del estilo Default pero no es necesario crear un PropertyValue nuevo con

Código: Seleccionar todo

ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue") 
para cambiar uno de ellos.

Código: Seleccionar todo

Dim oSM                   
Dim oDesk, oDoc As Object
Dim arg()
  Set oSM = CreateObject("com.sun.star.ServiceManager")

  Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

  Set oDoc = oDesk.loadComponentFromURL("file:///c:/Test.ods", "_blank", 0, arg())
  Set StyleFamilies = oDoc.StyleFamilies
  Set PageStyles = StyleFamilies.getByName("PageStyles")
  Set DefaultStyle = PageStyles.getByName("Default")
'Método 1
  'DefaultStyle.PageScale = 100
'Método 2
  DefaultStyle.ScaleToPages = 2
WilliamsPeru
Mensajes: 5
Registrado: Lun Dic 14, 2009 6:07 pm

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por WilliamsPeru »

WilliamsPeru escribió::crazy: Eh pasado a migrar un reporte de excel a OpenOffice, pero mi problema es el formato del reporte
al momento de imprimir dado que salen en muchas hojas y cortado, por lo que les pediria una ayuda para que
me puedan indicar cuales son las propiedades de FACTOR DE ESCALA y ORIENTACION HORIZONTAL

Este es el codigo que coloco en el cual ya tengo la propiedad para el Zomm y pueda ser mas amigable en la vista del usuario

Dim args(1) As Object
Set args(0) = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
args(0).Name = "Hidden"
args(0).Value = True
args(0).Name = "Zoom.Value"
args(0).Value = 85



Gracias por la ayuda :bravo:
HELP ME
FJCC-ES
Mensajes: 915
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por FJCC-ES »

¿No quiere cambiar el Factor De Escala y la Orientación de la página? Este código

Código: Seleccionar todo

Dim oSM                   
Dim oDesk, oDoc As Object
Dim arg()
  Set oSM = CreateObject("com.sun.star.ServiceManager")

  Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

  Set oDoc = oDesk.loadComponentFromURL("file:///c:/Test.ods", "_blank", 0, arg())
  Set StyleFamilies = oDoc.StyleFamilies
  Set PageStyles = StyleFamilies.getByName("PageStyles")
  Set DefaultStyle = PageStyles.getByName("Default")
  'DefaultStyle.PageScale = 100
muestra cómo cambiar el Factor De Escala (PageScale). Creo que se puede cambiar la Orientación de la página con

Código: Seleccionar todo

DefaultStyle.IsLandscape = True. 
WilliamsPeru
Mensajes: 5
Registrado: Lun Dic 14, 2009 6:07 pm

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por WilliamsPeru »

Trate de usar el codigo que me mandas pero en

Set oDoc = oDesk.loadComponentFromURL("file:///c:/Test.ods", "_blank", 0, arg())

no lo reconoce se cae y tiene error, recordar que uso Visual Basic
OpenOffice 3.1 en Windows Vista
FJCC-ES
Mensajes: 915
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por FJCC-ES »

file:///c:/Test.ods es el URL de un archivo. Tiene que sustituir el URL de su archivo. Por ejemplo, el archivo
c:\Documents and Settings\username\Desktop\Prueba.ods

tiene el URL

file:///c:/Documents and Settings/username/Desktop/Prueba.ods
WilliamsPeru
Mensajes: 5
Registrado: Lun Dic 14, 2009 6:07 pm

Re: Formato de Impresion en Visual Basic - ESCALA - ORIENTACION

Mensaje por WilliamsPeru »

Bueno gracias por la Info en este caso coloque el

Set oDoc = Desktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, args)
y les va funcionar para visual basic

Finalmente quedo de la siguiente manera

Código: Seleccionar todo

Dim args()
Dim StyleFamilies
Dim PageStyles
Dim DefaultStyle

Set ServiceManager = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop")

Set oDoc = Desktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, args)
Set StyleFamilies = oDoc.StyleFamilies
Set PageStyles = StyleFamilies.getByName("PageStyles")
Set DefaultStyle = PageStyles.getByName("Default")
DefaultStyle.IsLandscape = True 'horizontal, es necesario el ancho y alto de lo contrario no funciona
DefaultStyle.Width = 29700  'ancho
DefaultStyle.Height = 21000 'alto
DefaultStyle.PageScale = 65 'escala
:bravo: Gracias por la ayuda prestada y se que a alguien por hay en el mundo le va a servir :knock:


Att William Jines Mendoza
OpenOffice 3.1 en Windows Vista
Satuple82
Mensajes: 11
Registrado: Jue May 20, 2010 4:09 am

Re: Formato de Impresion VBasic OpenOffice -ESCALA - ORIENTA

Mensaje por Satuple82 »

Hola... me interesa mucho este tema... como defino las margenes... izquierda, derecha, arriba, abajo...

Gracias
OpenOffice 3.1 - Windows XP
FJCC-ES
Mensajes: 915
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Formato de Impresion VBasic OpenOffice -ESCALA - ORIENTA

Mensaje por FJCC-ES »

En OpenOffice.org Basic:

Código: Seleccionar todo

oDoc = ThisComponent
StyleFamilies = oDoc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefaultStyle = PageStyles.getByName("Default")
DefaultStyle.TopMargin = 1000  '= 10 mm arriba
DefaultStyle.LeftMargin = 1000  'izquierda
DefaultStyle.RightMargin = 1000  'derecha
DefaultStyle.BottomMargin = 1000  'abajo
Responder