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.