estou enfrentando um problema com o JNA tentando acessar uma dll de impressora fiscal, em especial da epson (InterfaceEpson.dll).
O mapeamento das funções da dll acredito que está ok, já que quase tudo funciona perfeitamente. Meu problema se dá com apenas 3
funções desta dll.
A única diferença destas funções é que elas geram arquivos no disco local. E somente nestas eu tenho aquele problema de crash. Deduzi que o problema se dá após a chamada da dll.
Cheguei a tentar usar uma versão paga, o JNIWrapper, mas com o mesmo problema…
Pergunto então:
alguém já passou por algo parecido com esta ou outra dll?
alguém tem idéia do que pode estar acontecendo?
existe alguma opção da jvm que contorna o problema?
Alguem ja conseguiu resolver este problema, poderiam passar a solução.
Tentei mudar o tipo de variavel no parametro de envio, mesmo assim, ele executava até imprimia no ECF, porém gerava um erro de acesso invalido a DLL, havendo um fechamento imediato do sistema.
Os principais métodos que ocasionaram erros de acesso a dll InterfaceEpson foram estes:
public int EPSON_RelatorioFiscal_RZ(String sData, String sHora,
char iHorarioVerao, byte[] sCRZ);
public int EPSON_RelatorioFiscal_RZEx(int iHorarioVerao);
Obs: Ja tentei com todas as dll, disponíveis no site. Fiz o procedimento conforme mandava o manual. InterfaceEpson2.1.15 …
Tava achando que era o JNA, porém no mapear outras ECF, este erro ocasionava, por variaveis de tipo diferentes as assinadas na DLL
To achando que estes métodos não tenham um suporte completo ainda.
@author Daniel Schroeder
*/
public interface ImplEpson extends StdCallLibrary {
/**
INICIALIZACAO DA BIBLIOTECA
*/
ImplEpson INSTANCE = (ImplEpson) Native.loadLibrary(“InterfaceEpson”, ImplEpson.class);
/PORTA SERIAL/
/**
Esta função abre a porta de comunicação serial iniciando desta forma a
comunicação entre o computador e a impressora fiscal. A execução bem
sucedida desta função é necessária para o funcionamento de todo o
resto da interface.
@param iVelocidade
@param wPorta
@return
*/
public int EPSON_Serial_Abrir_Porta(int iVelocidade, int wPorta);
/**
Esta função seta a DLL para abrir e fechar a porta de comunicação serial
sempre que um comando da DLL for chamado.
@param iVelocidade
@param iPorta
@return
*/
public int EPSON_Serial_Abrir_Fechar_Porta_CMD(int iVelocidade, int iPorta);
/**
Esta função detecta a porta serial que a impressora está e retorna a
porta e velocidade de conexão.
@param iVelocidade
@param iPorta
@return
*/
public int EPSON_Serial_Abrir_PortaAD(int iVelocidade, int iPorta);
/**
Esta função detecta a porta serial que a impressora está ligada e todos
os parâmetros utilizados. Se estes parâmetros já estão armazenados no
Registro do Windows eles serão usados para abrir a porta.
@return
*/
public int EPSON_Serial_Abrir_PortaEx();
/**
Esta função fecha a porta de comunicação serial.
@return
*/
public int EPSON_Serial_Fechar_Porta();
/**
Verifica o estado atual da porta serial.
@return
*/
public int EPSON_Serial_Obter_Estado_Com();
/CUPOM FISCAL/
/**
Esta função abre um Cupom Fiscal.
@param sCNPJ_CPF
@param sRazao_Nome
@param sEndereco1
@param sEndereco2
@param iPosicao
@return
*/
public int EPSON_Fiscal_Abrir_Cupom(
String sCNPJ_CPF, String sRazao_Nome, String sEndereco1,
String sEndereco2, int iPosicao);
/**
Esta função vende um item no Cupom Fiscal.
@param sCodigo
@param sDescricao
@param sQuantidade
@param iQtdCasasDecimais
@param sUnidade
@param sPrecoUnitario
@param iNumCasasDecimais
@param sAliquota
@param iNumLinhas
@return
*/
public int EPSON_Fiscal_Vender_Item(String sCodigo, String sDescricao,
String sQuantidade, int iQtdCasasDecimais, String sUnidade,
String sPrecoUnitario, int iNumCasasDecimais, String sAliquota,
int iNumLinhas);
/**
Esta função vende item no Cupom Fiscal, salvando a informação se o item
é de de fabricação própria ou de terceiros podendo ser usada posteriormente
na geração dos registros documento PAF.
@param sCodigo
@param sDescricao
@param sQuantidade
@param iQtdCasasDecimais
@param sUnidade
@param sPrecoUnitario
@param iNumCasasDecimais
@param sAliquota
@param iNumLinhas
@param bManufaturado
@return
*/
public int EPSON_Fiscal_Vender_ItemEX(String sCodigo, String sDescricao,
String sQuantidade, int iQtdCasasDecimais, String sUnidade,
String sPrecoUnitario, int iNumCasasDecimais, String sAliquota,
int iNumLinhas, boolean bManufaturado);
/**
Esta função retorna o subtotal do cupom corrente ou o subtotal do último cupom fiscal.
@param bsSubTotal
@return
*/
public int EPSON_Fiscal_Obter_SubTotal(byte[] bsSubTotal);
/**
Esta função processa o pagamento do Cupom Fiscal.
@param sNumeroPagamento
@param sValorPagamento
@param iCasasDecimais
@param sDescricao1
@param sDescricao2
@return
*/
public int EPSON_Fiscal_Pagamento(String sNumeroPagamento,
String sValorPagamento, int iCasasDecimais,
String sDescricao1, String sDescricao2);
/**
Esta função efetua desconto ou acréscimo em um item.
@param sValor
@param iCasasDecimais
@param bDesconto
@param bPercentagem
@return
*/
public int EPSON_Fiscal_Desconto_Acrescimo_Item(String sValor,
int iCasasDecimais, boolean bDesconto, boolean bPercentagem);
/**
Esta função efetua um desconto ou acréscimo no subtotal do cupom.
@param sValor
@param iCasasDecimais
@param bDesconto
@param bPercentagem
@return
*/
public int EPSON_Fiscal_Desconto_Acrescimo_Subtotal(String sValor,
int iCasasDecimais, boolean bDesconto, boolean bPercentagem);
/**
Esta função cancela o último cupom fiscal.
@return
*/
public int EPSON_Fiscal_Cancelar_Cupom();
/**
Esta função cancela um item do cupom fiscal, caso este item seja
informado com um valor nulo, a função cancelará o ultimo item
inserido no cupom.
@param sNumeroItem
@return
*/
public int EPSON_Fiscal_Cancelar_Item(String sNumeroItem);
/**
Esta função cancela o último item vendido no cupom fiscal corrente.
@return
*/
public int EPSON_Fiscal_Cancelar_Ultimo_Item();
/**
Esta função cancela o desconto ou acréscimo aplicado sobre o
último item vendido no cupom fiscal atual.
@param bDesconto
@return
*/
public int EPSON_Fiscal_Cancelar_Desconto_Acrescimo_Item(boolean bDesconto);
/**
Esta função cancela o desconto ou acréscimo aplicado sobre o subtotal
do cupom fiscal atual.
@param bDesconto
@return
*/
public int EPSON_Fiscal_Cancelar_Acrescimo_Desconto_Subtotal(boolean bDesconto);
/**
Esta função cancela parcialmente um item.
@param sNumeroItem
@param sQuantidade
@param iQuantCasasDecimais
@return
*/
public int EPSON_Fiscal_Cancelar_Item_Parcial(
String sNumeroItem, String sQuantidade, int iQuantCasasDecimais);
/**
Esta função imprime oito linhas de texto depois da totalização do ticket.
As linhas em branco serão omitidas. Para imprimir código de barras nas
linhas de texto promocional veja detalhes na função
Esta função imprime linhas promocionais quebrando o texto ao
fim de 56 caracteres ou pelos terminadores de linha 0x0D 0x0A,
limitado a 8 linhas.
@param sLinhaTexto
@return
*/
public int EPSON_Fiscal_Imprimir_MensagemEX(String sLinhaTexto);
/**
Esta função configura as características do código de barras a ser
impresso em uma das oito linhas de mensagem promocional existentes no
encerramento de um cupom de venda. É possível configurar um código de
barras para cada uma das oito linhas de texto promocional. Observe que
com esta função configura-se apenas as características do código de
barras, sendo que o valor do mesmo (o número do código) deve ser fornecido
logo em seguida pela função EPSON_Fiscal_Imprimir_Mensagem,
na respectiva linha.
@param iLinha
@param iTipo
@param iAltura
@param iLargura
@param iPosicao
@param iCaracter
@return
*/
public int EPSON_Fiscal_Configurar_Codigo_Barras_Mensagem(
int iLinha,
int iTipo,
int iAltura,
int iLargura,
int iPosicao,
int iCaracter);
/**
Esta função finaliza rapidamente um cupom pagando em dinheiro.
@param sTotalCupom
@return
*/
public int EPSON_Fiscal_Fechar_CupomEx(String sTotalCupom);
/**
Esta função fecha o cupom fiscal e corta o papel.
@param bCortarPapel
@param bAdicional
@return
*/
public int EPSON_Fiscal_Fechar_Cupom(boolean bCortarPapel, boolean bAdicional);
/**
Esta função configura os dados do cliente.
@param sCNPJ_CPF
@param sRazao_Nome
@param sEndereco1
@param sEndereco2
@param iPosicao
@return
*/
public int EPSON_Fiscal_Dados_Usuario(
String sCNPJ_CPF,
String sRazao_Nome,
String sEndereco1,
String sEndereco2,
int iPosicao);
/CUPOM NÃO FISCAL/
/**
*
@param sCNPJ_CPF
@param sRazao_Nome
@param sEndereco1
@param sEndereco2
@param iPosicao
@return
*/
public int EPSON_NaoFiscal_Abrir_Comprovante(
String sCNPJ_CPF,
String sRazao_Nome,
String sEndereco1,
String sEndereco2,
int iPosicao);
/**
*
@param sNumeroOperacao
@param sValorOperacao
@param iCasasDecimais
@return
*/
public int EPSON_NaoFiscal_Vender_Item(
String sNumeroOperacao,
String sValorOperacao,
int iCasasDecimais);
/**
*
@param sValor
@param iCasasDecimais
@param bDesconto
@param bPercentagem
@return
*/
public int EPSON_NaoFiscal_Desconto_Acrescimo_Item(
String sValor,
int iCasasDecimais,
boolean bDesconto,
boolean bPercentagem);
/**
*
@param sValor
@param iCasasDecimais
@param bDesconto
@param bPercentagem
@return
*/
public int EPSON_NaoFiscal_Desconto_Acrescimo_Subtotal(
String sValor,
int iCasasDecimais,
boolean bDesconto,
boolean bPercentagem);
/**
*
@param sNumeroPagamento
@param sValorPagamento
@param iCasasDecimais
@param sDescricao1
@param sDescricao2
@return
*/
public int EPSON_NaoFiscal_Pagamento(
String sNumeroPagamento,
String sValorPagamento,
int iCasasDecimais,
String sDescricao1,
String sDescricao2);
/**
*
@param sItem
@return
*/
public int EPSON_NaoFiscal_Cancelar_Item(String sItem);
/**
*
@return
*/
public int EPSON_NaoFiscal_Cancelar_Ultimo_Item();
/**
*
@param bDesconto
@return
*/
public int EPSON_NaoFiscal_Cancelar_Desconto_Acrescimo_Item(boolean bDesconto);
/**
*
@param bDesconto
@return
*/
public int EPSON_NaoFiscal_Cancelar_Desconto_Acrescimo_Subtotal(boolean bDesconto);
/**
*
@return
*/
public int EPSON_NaoFiscal_Cancelar_Comprovante();
/**
*
@param bCortarPapel
@return
*/
public int EPSON_NaoFiscal_Fechar_Comprovante(boolean bCortarPapel);
/**
*
@param sNumeroPagamento
@param sValor
@param iCasasDecimais
@param sParcelas
@return
*/
public int EPSON_NaoFiscal_Abrir_CCD(
String sNumeroPagamento,
String sValor,
int iCasasDecimais,
String sParcelas);
/**
*
@param sNumeroRelatorio
@return
*/
public int EPSON_NaoFiscal_Abrir_Relatorio_Gerencial(String sNumeroRelatorio);
/**
*
@param sLinha
@return
*/
public int EPSON_NaoFiscal_Imprimir_LinhaEX(String sLinha);
/**
*
@param sLinha
@return
*/
public int EPSON_NaoFiscal_Imprimir_Linha(String sLinha);
@return
*/
public int EPSON_NaoFiscal_Fechar_CCD(boolean bCortarPapel);
/**
*
@param bCortarPapel
@return
*/
public int EPSON_NaoFiscal_Fechar_Relatorio_Gerencial(boolean bCortarPapel);
/**
*
@param sNumeroPagamento
@param sValor
@param iCasasDecimais
@param sParcelas
@param sNumeroCupom
@return
*/
public int EPSON_NaoFiscal_Cancelar_CCD(String sNumeroPagamento,
String sValor, int iCasasDecimais, String sParcelas,
String sNumeroCupom);
/**
*
@param sFormaPagamento
@param sNovaFormaPagamento
@param sValor
@param iCasasDecimais
@return
*/
public int EPSON_NaoFiscal_Cancelar_Pagamento(String sFormaPagamento,
String sNovaFormaPagamento, String sValor, int iCasasDecimais);
/**
*
@return
*/
public int EPSON_NaoFiscal_Nova_Parcela_CCD();
/**
*
@return
*/
public int EPSON_NaoFiscal_Nova_Via_CCD();
/**
*
@return
*/
public int EPSON_NaoFiscal_Reimprimir_CCD();
/**
*
@param sValor
@param iCasasDecimais
@return
*/
public int EPSON_NaoFiscal_Sangria(String sValor, int iCasasDecimais);
/**
*
@param sValor
@param iCasasDecimais
@return
*/
public int EPSON_NaoFiscal_Fundo_Troco(String sValor, int iCasasDecimais);
/**
*
@param iTipo
@param iAltura
@param iLargura
@param iPosicao
@param iCaracter
@param sCodigo
@return
*/
public int EPSON_NaoFiscal_Imprimir_Codigo_Barras(int iTipo, int iAltura,
int iLargura, int iPosicao, int iCaracter, String sCodigo);
/**
*
@param sSubTotal
@return
*/
public int EPSON_NaoFiscal_Obter_SubTotal(byte[] sSubTotal);
/RELATÓRIOS FISCAIS/
/**
*
@return
*/
public int EPSON_RelatorioFiscal_LeituraX();
/**
*
@param sData
@param sHora
@param iHorarioVerao
@param sCRZ
@return
*/
public int EPSON_RelatorioFiscal_RZ(String sData, String sHora,
char iHorarioVerao, byte[] sCRZ);
/**
*
@param iHorarioVerao
@return
*/
public int EPSON_RelatorioFiscal_RZEx(int iHorarioVerao);
/**
*
@param sInicio
@param sFim
@param iTipoImpressao
@param sBuffer
@param sArquivo
@param iTamanhoBuffer
@param iTamBuffer
@return
*/
public int EPSON_RelatorioFiscal_Leitura_MF(String sInicio, String sFim,
int iTipoImpressao, byte[] sBuffer, String sArquivo,
int iTamanhoBuffer, int iTamBuffer);
/**
*
@param sArquivo
@return
*/
public int EPSON_RelatorioFiscal_Salvar_LeituraX(String sArquivo);
/**
*
@return
*/
public int EPSON_RelatorioFiscal_Abrir_Dia();
/**
*
@param sDadosUsuario
@return
*/
public int EPSON_Obter_Dados_Usuario(byte[] sDadosUsuario);
/**
*
@param sTabelaAliquotas
@return
*/
public int EPSON_Obter_Tabela_Aliquotas(byte[] sTabelaAliquotas);
/**
*
@param sTabelaAliquotas
@param sTotalICMS
@param sTotalISS
@return
*/
public int EPSON_Obter_Tabela_Aliquotas_Cupom(byte[] sTabelaAliquotas,
byte[] sTotalICMS, byte[] sTotalISS);
/**
*
@param sTabelaPagamentos
@return
*/
public int EPSON_Obter_Tabela_Pagamentos(byte[] sTabelaPagamentos);
/**
*
@param sTabelaNaoFiscais
@return
*/
public int EPSON_Obter_Tabela_NaoFiscais(byte[] sTabelaNaoFiscais);
/**
*
@param sTabelaRelatoriosGerenciais
@return
*/
public int EPSON_Obter_Tabela_Relatorios_Gerenciais(byte[] sTabelaRelatoriosGerenciais);
/**
*
@param sTotalCancelado
@return
*/
public int EPSON_Obter_Total_Cancelado(byte[] sTotalCancelado);
/**
*
@param sAliquotasTotal
@return
*/
public int EPSON_Obter_Total_Aliquotas(byte[] sAliquotasTotal);
/**
*
@param sVendaBruta
@return
*/
public int EPSON_Obter_Total_Bruto(byte[] sVendaBruta);
/**
*
@param sTotalDescontos
@return
*/
public int EPSON_Obter_Total_Descontos(byte[] sTotalDescontos);
/**
*
@param sTotalAcrescimos
@return
*/
public int EPSON_Obter_Total_Acrescimos(byte[] sTotalAcrescimos);
/**
*
@param sTotalTroco
@return
*/
public int EPSON_Obter_Total_Troco(byte[] sTotalTroco);
/**
*
@param sDadosImpressora
@return
*/
public int EPSON_Obter_Dados_Impressora(byte[] sDadosImpressora);
/**
*
@param sDadosUsuario
@return
*/
public int EPSON_Obter_Cliche_Usuario(byte[] sDadosUsuario);
/**
*
@param sDataHora
@return
*/
public int EPSON_Obter_Data_Hora_Jornada(byte[] sDataHora);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Numero_ECF_Loja(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Hora_Relogio(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Simbolo_Moeda(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Casas_Decimais(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Desconto_Iss(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Contadores(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Estado_Impressora(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_GT(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Linhas_Impressas(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Linhas_Impressas_RG(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Linhas_Impressas_CCD(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Dados_Jornada(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Caracteres_Linha(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Operador(byte[] sDados);
/**
*
@param sDados
@return
*/
public int EPSON_Obter_Numero_Ultimo_Item(byte[] sDados);
/**
*
@param sNumeroItem
@param sDadosItem
@return
*/
public int EPSON_Obter_Informacao_Item(String sNumeroItem, byte[] sDadosItem);
/**
*
@param sEstado
@return
*/
public int EPSON_Obter_Estado_Cupom(byte[] sEstado);
/**
*
@param sInfo
@return
*/
public int EPSON_Obter_Informacao_Ultimo_Documento(byte[] sInfo);
/**
*
@param bHabilitado
@return
*/
public int EPSON_Obter_Estado_Corte_Papel(byte[] bHabilitado);
/**
*
@param sLinhasImpressas
@return
*/
public int EPSON_Obter_Linhas_Impressas_Vendas(byte[] sLinhasImpressas);
/**
*
@param sLinhasImpressas
@return
*/
public int EPSON_Obter_Linhas_Impressas_Pagamentos(byte[] sLinhasImpressas);
/**
*
@param sItens
@return
*/
public int EPSON_Obter_Total_Itens_Vendidos(byte[] sItens);
/**
*
@param sEstado
@return
*/
public int EPSON_Obter_Estado_Memoria_Fiscal(byte[] sEstado);
/**
*
@param sEstado
@return
*/
public int EPSON_Obter_Estado_MFD(byte[] sEstado);
/**
*
@param sLeituras
@return
*/
public int EPSON_Obter_Total_Leituras_X_Impressas(byte[] sLeituras);
/**
*
@param bEstado
@return
*/
public int EPSON_Obter_Estado_Horario_Verao(byte[] bEstado);
/**
*
@param sBrutAmount
@param sLastBrutAmount
@return
*/
public int EPSON_Obter_Venda_Bruta(byte[] sBrutAmount,
byte[] sLastBrutAmount);
/**
*
@param sCodigoErro
@param sMensagemErro
@return
*/
public int EPSON_Obter_Mensagem_Erro(String sCodigoErro,
byte[] sMensagemErro);
/**
*
@param sInicio
@param sFinal
@param iTipoEntrada
@param iEspelhos
@param iAtoCotepe
@param iSintegra
@param sArquivoSaida
@return
*/
public int EPSON_Obter_Dados_MF_MFD(String sInicio, String sFinal,
int iTipoEntrada,
int iEspelhos,
int iAtoCotepe,
int iSintegra,
String sArquivoSaida);
/**
*
@param sVersao
@return
*/
public int EPSON_Obter_Versao_DLL(byte[] sVersao);
/**
*
@param sOption
@param sZnumber
@param sData
@return
*/
public int EPSON_Obter_Total_JornadaEX(String sOption,
String sZnumber, byte[] sData);
/**
*
@param sLastRZData
@return
*/
public int EPSON_Obter_Dados_Ultima_RZ(byte[] sLastRZData);
/**
*
@param sInicio
@param sFinal
@param iTipoEntrada
@param iEspelhos
@param iAtoCotepe
@param iSintegra
@param sArquivoSaida
@param sArquivoMF
@param sArquivoMFD
@return
*/
public int EPSON_Obter_Dados_Arquivos_MF_MFD(
String sInicio,
String sFinal,
int iTipoEntrada,
int iEspelhos,
int iAtoCotepe,
int iSintegra,
String sArquivoSaida,
String sArquivoMF,
String sArquivoMFD);
/**
Essa função separa as jornadas de um relatório Ato COTEPE 17/04 (CAT52).
@param sFileName
@param iOption
@return
*/
public int EPSON_Obter_AtoCOTEPE_Separado_EX(String sFileName, int iOption);
/**
*
@param sArquivo
@return
*/
public int EPSON_Obter_Arquivo_Binario_MF(String sArquivo);
/**
*
@param sFileName
@return
*/
public int EPSON_Obter_Arquivo_Binario_MFD(String sFileName);
/**
*
@param sVersion
@param sDate
@param sTime
@return
*/
public int EPSON_Obter_Versao_SWBasicoEX(byte[] sVersion, byte[] sDate,
byte[] sTime);
/**
*
@param sCodigo
@param sNomeArquivo
@return
*/
public int EPSON_Obter_Codigo_Nacional_ECF(byte[] sCodigo,
byte[] sNomeArquivo);
/**
*
@param sNumeroUsuario
@return
*/
public int EPSON_Obter_Numero_Usuario(byte[] sNumeroUsuario);
/CONFIGURAÇÃO DA IMPRESSORA/
/**
*
@param sTaxa
@param bTipoISS
@return
*/
public int EPSON_Config_Aliquota(String sTaxa, boolean bTipoISS);
/**
*
@param sReportDescription
@return
*/
public int EPSON_Config_Relatorio_Gerencial(String sReportDescription);
/**
*
@param bVinculado
@param sNumeroMeio
@param sDescricao
@return
*/
public int EPSON_Config_Forma_Pagamento(boolean bVinculado,
String sNumeroMeio, String sDescricao);
/**
*
@param sDescricao
@param piNumeroTotalizador
@return
*/
public int EPSON_Config_Totalizador_NaoFiscal(String sDescricao,
int piNumeroTotalizador);
/**
*
@return
*/
public int EPSON_Config_Horario_Verao();
/**
*
@param sLinhas
@return
*/
public int EPSON_Config_Espaco_Entre_Documentos(String sLinhas);
/**
*
@param sEspacos
@return
*/
public int EPSON_Config_Espaco_Entre_Linhas(String sEspacos);
/**
*
@param bHabilita
@return
*/
public int EPSON_Config_Habilita_Logotipo(boolean bHabilita);
/**
*
@param sDados
@param iTamDados
@param sLinha
@return
*/
public int EPSON_Config_Logotipo(String sDados, int iTamDados, String sLinha);
/**
*
@param sDados
@return
*/
public int EPSON_Config_Operador(String sDados);
/**
*
@param sDados
@param iReport
@return
*/
public int EPSON_Config_OperadorEX(String sDados, int iReport);
/**
*
@param bHabilitado
@return
*/
public int EPSON_Config_Corte_Papel(boolean bHabilitado);
/**
*
@param sVelocidade
@return
*/
public int EPSON_Config_Serial_Impressora(String sVelocidade);
EXCEPTION_STACK_OVERFLOW - veja se você pode passar um parâmetro -Xss um pouco maior para seu programa Java. Tipicamente um programa em C esperaria um stack de 1MB por thread, mas programas Java normalmente reservam bem menos (128k). Tente usar -Xss1M e vá aumentando até que o erro pare de aparecer.