API DO OPENOFFICE EM VB6

TIAGOVITAL 19/11/2013 17:51:50
#431272
Olá boa tarde caros amigos.
estou com o seguinte problema,
Estou usando a API do OpenOficce para gerar um documento de texto usando o WRITER.
porem neste documento de texto necessito Formatar a fonte,o Layout da Pagina,as Propriedades de Impressão.
Porem não estou conseguindo.

Citação:


Dim oSM [ô]Root object for accessing OpenOffice from VB
Dim oDesk, oDoc As Object [ô]First objects from the API
Dim arg() [ô]Ignore it for the moment !

[ô]Instanciate OOo : this line is mandatory with VB for OOo API
Set oSM = CreateObject([Ô]com.sun.star.ServiceManager[Ô])
[ô]Create the first and most important service
Set oDesk = oSM.createInstance([Ô]com.sun.star.frame.Desktop[Ô])

[ô]Create a new doc
Set oDoc = oDesk.loadComponentFromURL([Ô]private:factory/swriter[Ô], [Ô]_blank[Ô], 0, arg())
[ô]Close the doc
oDoc.Close (True)
Set oDoc = Nothing



verifiquei estes dois links porem não consegui acessar as propriedades.
http://www.openoffice.org/api/docs/common/ref/com/sun/star/text/module-ix.html
http://www.openoffice.org/api/docs/common/ref/com/sun/star/text/PagePrintSettings.html

Desde já muito Obrigado
TIAGOVITAL 26/11/2013 09:39:00
#431466
Segue o fonte que irei testar e acredito que possa resolver meu problema.

Citação:


[ô]***********************************************************************
[ô]*
[ô]* O conteúdo deste arquivo são facultados ao público nos termos da
[ô]* A licença BSD .
[ô] *
[ô]* Copyright 2000 , 2010 Oracle e / ou suas afiliadas.
[ô]* Todos os direitos reservados .
[ô] *
[ô]* A redistribuição e utilização em formatos fonte e binário , com ou sem
[ô]* Modificação, são permitidas desde que as seguintes condições
[ô]* São atendidas:
[ô] * 1 . As redistribuições do código fonte devem manter o copyright acima
«Aviso * , esta lista de condições ea seguinte isenção de responsabilidade .
[ô] * 2 . As redistribuições em formato binário devem reproduzir o copyright acima
«Aviso * , esta lista de condições ea seguinte isenção de responsabilidade na
[ô]* Documentação e / ou outros materiais fornecidos com a distribuição.
[ô] * 3 . Nem o nome da Sun Microsystems , Inc. nem os nomes dos seus
[ô]* Colaboradores não podem ser usados ​​para endossar ou promover produtos derivados
[ô]* Deste software sem permissão prévia por escrito .
[ô] *
[ô]* ESTE SOFTWARE é FORNECIDO PELOS DETENTORES DOS DIREITOS AUTORAIS E COLABORADORES
[ô]* [Ô]COMO ESTÁ[Ô] E QUALQUER GARANTIA EXPRESSA OU IMPLÍCITA , INCLUINDO , MAS NÃO SE
[ô]* LIMITADA ÀS GARANTIAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO
[ô]* A UMA FINALIDADE ESPECÍFICA. EM NENHUMA CIRCUNSTÂNCIA, O
[ô]* PROPRIETÁRIO OU SEUS COLABORADORES COPYRIGHT SER RESPONSÁVEL POR QUAISQUER DANOS DIRETOS , INDIRETOS,
[ô]* Incidentais, especiais , EXEMPLARES OU EMERGENTES (INCLUINDO,
[ô]* MAS SEM LIMITAÇÃO , A AQUISIÇÃO DE BENS OU SERVIÇOS , PERDA
[ô] * DE USO , DADOS OU LUCROS OU INTERRUPÇÃO DE NEGÓCIOS) CAUSADOS E
[ô]* EM QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE OBJETIVA OU
[ô]* (INCLUINDO NEGLIGÊNCIA OU OUTROS) DECORRENTE DE QUALQUER FORMA DE
[ô]* USO DESTE SOFTWARE , MESMO QUE AVISADO DA POSSIBILIDADE DE TAIS DANOS.
[ô]*
[ô]*************************************************************************

[Ô]O gerente de serviço é sempre o ponto de partida
[Ô]Se não houver um serviço em execução, em seguida, um serviço é iniciado
Set objServiceManager= WScript.CreateObject([Ô]com.sun.star.ServiceManager[Ô])

[ô]Criar o serviço CoreReflection que depois é usado para criar estruturas
Set objCoreReflection= objServiceManager.createInstance([Ô]com.sun.star.reflection.CoreReflection[Ô])

[ô]Cria o aplicativo no ambiente de trabalho
Set objDesktop= objServiceManager.createInstance([Ô]com.sun.star.frame.Desktop[Ô])

[ô]Abre um novo documento em BRANCO
Dim args()
Set objDocument= objDesktop.loadComponentFromURL([Ô]private:factory/swriter[Ô], [Ô]_blank[Ô], 0, args)

[ô]Cria um Objeto de texto
Set objText= objDocument.getText

[ô]Cria um Objeto Cursor
Set objCursor= objText.createTextCursor

[ô]Insere o Texto desejado
objText.insertString objCursor, [Ô]MEU PRIMEIRO DOCUMENTO COM VB E WRITER[Ô] & vbLf, false

[ô]insere a Segunda Linha desejada
objText.insertString objCursor, [Ô]ESTOU ESCREVENDO ATRAVES DA PROGRAMAÇÃO[Ô], false

[ô]Cria instância de uma tabela de texto com 4 colunas e 4 linhas
Set objTable= objDocument.createInstance( [Ô]com.sun.star.text.TextTable[Ô])
objTable.initialize 4, 4

[ô]Insere a tabela de texto
objText.insertTextContent objCursor, objTable, false

[ô]Retorna a Primeira linha
Set objRows= objTable.getRows
Set objRow= objRows.getByIndex( 0)

[ô]Defini a cor de fundo da tabela
objTable.setPropertyValue [Ô]BackTransparent[Ô], false
objTable.setPropertyValue [Ô]BackColor[Ô], 13421823

[ô]Defini uma cor de fundo diferente para a primeira linha
objRow.setPropertyValue [Ô]BackTransparent[Ô], false
objRow.setPropertyValue [Ô]BackColor[Ô], 6710932

[ô]Preenche a primeira linha da tabela
insertIntoCell [Ô]A1[Ô],[Ô]CODIGO[Ô], objTable
insertIntoCell [Ô]B1[Ô],[Ô]NOME[Ô], objTable
insertIntoCell [Ô]C1[Ô],[Ô]IDADE[Ô], objTable
insertIntoCell [Ô]D1[Ô],[Ô]IDADE+CODIGO[Ô], objTable

objTable.getCellByName([Ô]A2[Ô]).setValue 22
objTable.getCellByName([Ô]B2[Ô]).setValue [Ô]ANA[Ô]
objTable.getCellByName([Ô]C2[Ô]).setValue 44
objTable.getCellByName([Ô]D2[Ô]).setFormula[Ô]sum <A2:C2>[Ô]

objTable.getCellByName([Ô]A3[Ô]).setValue 11
objTable.getCellByName([Ô]B3[Ô]).setValue [Ô]JOÃO[Ô]
objTable.getCellByName([Ô]C3[Ô]).setValue 98
objTable.getCellByName([Ô]D3[Ô]).setFormula [Ô]sum <A3:C3>[Ô]

objTable.getCellByName([Ô]A4[Ô]).setValue 16
objTable.getCellByName([Ô]B4[Ô]).setValue [Ô]ALBERTO[Ô]
objTable.getCellByName([Ô]C4[Ô]).setValue 69
objTable.getCellByName([Ô]D4[Ô]).setFormula [Ô]sum <A4:C4>[Ô]


[ô]AlterA o CharColor e adicionar uma sombra
objCursor.setPropertyValue [Ô]CharColor[Ô], 255
objCursor.setPropertyValue [Ô]CharShadowed[Ô], true

[ô]Cria uma quebra de parágrafo
[ô]The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant
objText.insertControlCharacter objCursor, 0 , false

[ô]Inserindo texto colorido.
objText.insertString objCursor, [Ô] ESTE E MEU TEXTO COLORIDO[Ô] & vbLf, false

[ô]Create a paragraph break ( ControlCharacter::PARAGRAPH_BREAK).
objText.insertControlCharacter objCursor, 0, false

[ô]Cria um TextFrame.
Set objTextFrame= objDocument.createInstance([Ô]com.sun.star.text.TextFrame[Ô])

[ô]Cria uma estrutura de tamanho.
Set objSize= createStruct([Ô]com.sun.star.awt.Size[Ô])
objSize.Width= 15000
objSize.Height= 400
objTextFrame.setSize( objSize)


objTextFrame.setPropertyValue [Ô]AnchorType[Ô], 1

[ô]Insere o Frame
objText.insertTextContent objCursor, objTextFrame, false

[ô]Obter o objeto de texto do quadro
Set objFrameText= objTextFrame.getText


[ô]Cria um cursor
Set objFrameTextCursor= objFrameText.createTextCursor

[ô]Inserting some Text
objFrameText.insertString objFrameTextCursor, [Ô]Minha outra linhas dentro do meu outro quadro.[Ô], _
false
objFrameText.insertString objFrameTextCursor, _
vbLf & [Ô]Minha outra linha dentro do meu segundo FRAME.[Ô], false

[ô]Cria um parada de paragrafo
[ô]The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant
objFrameText.insertControlCharacter objCursor, 0 , false

[ô]Muda o Cor e adiciona uma sombra
objCursor.setPropertyValue [Ô]CharColor[Ô], 65536
objCursor.setPropertyValue [Ô]CharShadowed[Ô], false

[ô]Insere uma outra STRING
objText.insertString objCursor, [Ô] Por hoje só Pessoal !![Ô], false

On Error Resume Next
If Err Then
MsgBox [Ô]Deu Zebra[Ô]
End If


Sub insertIntoCell( strCellName, strText, objTable)
Set objCellText= objTable.getCellByName( strCellName)
Set objCellCursor= objCellText.createTextCursor
objCellCursor.setPropertyValue [Ô]CharColor[Ô],16777215
objCellText.insertString objCellCursor, strText, false
End Sub

Function createStruct( strTypeName)
Set classSize= objCoreReflection.forName( strTypeName)
Dim aStruct
classSize.createObject aStruct
Set createStruct= aStruct
End Function

Tópico encerrado , respostas não são mais permitidas