COM automation & JACOB

Boa noite a todos,
depois de muito pesquisar e queimar quase todos meus neurônios, decidi buscar ajuda pela falta de material disponível sobre esse assunto. Vou contar em detalhe meu problema para que se essa dúvida aparecer em alguma outra mente, esse problema seja mais facilmente resolvido…

Comprei uma impressora de etiquetas da Brother (modelo QL-550) para integrar com um sistema que desenvolvi em java para gerenciamento de estoque. Criei um relatório em Jasper para imprimir a etiqueta com os dados de um determinado produto cadastrado no bd, mas minha surpresa foi que a impressora não imprimi esse relatório porque diz que o papel configurado na impressora é contínuo, diferente da configuração do relatório - ou seja, a impressora só imprimi documentos produzidos pelo editor que vem com a impressora (o nome desse editor é P-Touch), o que me fez descartar o uso do Jasper. Pesquisei (e muito!) no site da Brother e descobri uma ferramenta (cujo nome é b-Pack) que integra qualquer linguagem que tenha suporte “COM automation” com essa impressora através de um arquivo template pré-definido pelo próprio editor que vem com a impressora. Foi aí que descobri o tal do JACOB para fazer essa integração com o Java. O diabo é que pouco material existe sobre o JACOB na net, a maioria fazendo referência a abrir documentos do WORD/EXCELL. Nenhum deles explicava para que serve cada comando (dispatch.put, dispatch.call, etc.) e aí eu me perdi no código. Não consegui descobrir o procedimento básico para chamar qualquer função desse b-Pack. Após pesquisa no manual desse programa, achei exemplos de como integrá-lo com o VBA, tais como o abaixo:

[code]Public Sub DoPrint(strPath As String, strExport As String)

‘ Creates the b-PAC object
Dim ObjDoc As BrssCom.Document
Set ObjDoc = CreateObject("BrssCom.Document")

‘ Opens the template
If (ObjDoc.Open(strPath) <> False) Then

    ‘ Searches for text from the field names, and replaces the text
    Dim nIndex As Integer
    nIndex = ObjDoc.GetTextIndex("Company")
    ObjDoc.SetText nIndex, edPosition.Text
    nIndex = ObjDoc.GetTextIndex("Name")
    ObjDoc.SetText nIndex, edName.Text

    ‘ Printing or exporting
    If (strExport = "") Then
        ObjDoc.DoPrint 0, "0"           ' Print
    Else
        ObjDoc.Export 2, strExport, 180 ' Export
    End If
End If
Set ObjDoc = Nothing

End Sub
[/code]

A pergunta é: como reescrever o código acima em Java, usando o raio do JACOB ou qualquer outra ferramenta?

Agradeço desde já a ajuda.

Bom, após mais um dia de estudos, consegui fazer o programa rodar sem que aparecesse nenhum erro, mas como ainda não imprime, acho que pouco progredi… Vejam a tradução para java que eu tentei fazer…

[code]ActiveXComponent bPack = new ActiveXComponent("BrssCom.Document");

Dispatch oOBJ = bPack.getObject();

Dispatch.call(oOBJ, "Open", "EtiquetaGde.lbl");
Dispatch.call(oOBJ, "DoPrint", 0, "0"); [/code]

O problema é que nada acontece. Eu presumi que o método Dispatch.call(Objeto, método, parametro1, parametro2, parametroN) chama determinado método do programa b-Pack informando seus parametros, mas como nada aconteceu estou postando novamente a dúvida…

Eu sei que nada pode ser construido sem esforço, mas essa tá dificil demais! Por favor, quem puder me dar alguma dica, por menor que ela seja, eu ficaria muito grato!

Abraços,

Bernardo.

Oi cara, estou com o mesmo problema e a dias tentando mas tá f@%*% essa…

você resolveu este problema de que forma?

uso uma Brother QL-570!!!

Abs