Alexsander

Membros
  • Total de ítens

    352
  • Registro em

  • Última visita

  • Days Won

    2

Alexsander last won the day on March 25 2013

Alexsander had the most liked content!

Reputação

6 Neutral

1 Seguidor

Sobre Alexsander

  • Rank
    Membro Ativo

Profile Information

  • Localização
    Porto Alegre, RS
  1. Estou tendo este problema no Ubuntu 16.04 recém instalado (ainda com a libxmlsec 1.2.20 original): ==== EXCEPTION ==== Erro ao ler informações do Certificado. Provavelmente a senha está errada Detalhe: este MESMO executável do meu aplicativo funciona normalmente num Ubuntu 14.04 (que veio com a libxmlsec 1.2.18, porém eu COMPILEI a libxmlsec 1.2.18 com as opções default para funcionar). Acho que a exigência de "libxmlsec 1.2.20" que está no ACBr não é necessária, mas parece que o Ubuntu está empacotando esta lib com algumas opções desligadas. Ainda não testei compilar no 16.04 mas eu achava que o fato de vir com a 1.2.20 eliminaria esta necessidade.
  2. Só para constar, resolvi este problema mandando gerar um arquivo e depois enviando este arquivo para a impressora: var cupom, impressora: TFileStream; arquivo: string; (...) arquivo := '/tmp/cupom.txt'; with ACBrNFe1.NotasFiscais.Items[0].NFe.Ide do ACBrDANFe1.PosPrinter.Porta := arquivo; (...) impressora := TFileStream.Create('/dev/usr/lp0', fmOpenReadWrite); cupom := TFileStream.Create(arquivo, fmOpenRead); impressora.CopyFrom(cupom,cupom.Size);
  3. Sim, eu sei, olhei os fontes. A função TBlockSerial.GetErrorDesc da Synaser retorna este erro. Eles mapearam alguns erros, os demais eles repassam para a SysErrorMessage da SysUtils. A mensagem em questão é o erro ENOTTY, o texto está no arquivo errnostr do FPC (linha 18): /usr/share/fpcsrc/3.0.2/rtl/linux/errnostr.inc Apenas imaginei que alguém poderia ter tido o mesmo problema.
  4. Conforme eu expliquei no post original, o "echo" está funcionando perfeitamente. Por coincidência eu já tinha encontrado esta mesma página em uma pesquisa anterior... PS: Se eu instalar a impressora com os drivers, via CUPS, funciona no ACBrPosPrinter, porém esta opção cria dificuldades para o suporte.
  5. Via linha de comando, echo "Teste" >> /dev/usb/lp0 imprime normalmente. No PosPrinterTeste quando coloco "/dev/usb/lp0" dá erro "Communication error 25: Not a typewriter." De que forma preciso configurar o ACBrPosPrinter (ou o Linux) para funcionar ?
  6. Você conseguiu fazer funcionar no Linux 64 bits?
  7. Eu também gostaria de usar desta forma, tentei converter o certificado PFX em base64 e usar Certificados.DadosPFX := arquivo_pfx_em_base64 mas não funcionou, deu uma exceção no arquivo ACBrDFeOpenSSL, na linha 885 (abaixo). Ao debugar e vi que p12 na linha 921 está retornando nil. 885 if not LerPFXInfo(DadosPFX) then (...) 921 p12 := d2iPKCS12bio(b, nil); O que está faltando fazer? No momento estou simplesmente convertendo o arquivo PFX em base64. Estou usando Lazarus 1.6.4 com FPC 3.0.2 (Linux 64).
  8. Agora é possível instalar no CUPS com os drivers da Argox: http://www.argox.com/content.php?sno=0000033&P_ID=19
  9. Olhei os fontes, daria pra colocar logo após o IF abaixo (colocando nil como valor default para não afetar os programas existentes): procedure TACBrDFe.EnviarEmail(sPara, sAssunto: String; sMensagem: TStrings; sCC: TStrings; Anexos: TStrings; StreamNFe: TStream; NomeArq: String; { AQUI ==> } sBCC: TStrings); (...) if Assigned(sCC) then begin for i := 0 to sCC.Count - 1 do MAIL.AddCC(sCC[i]); end; //--- AQUI if Assigned(sBCC) then begin for i := 0 to sBCC.Count - 1 do MAIL.AddBCC(sBCC[i]); end; //--- fim MAIL.Send; end; Com isso também daria para alterar o ACBrMonitorPLUS para acrescentar a opção CCO no comando NFE.ENVIAREMAIL. Que tal?
  10. Vou testar este upgrade num ambiente de testes. Seria interessante incluir este tipo de requisito na documentação. Enquanto isso, uma alternativa que compilou (não testei se imprime mesmo), junto com a declaração de uma variável tmp_cont integer, foi a seguinte: {$IFDEF FPC_FULLVERSION < 30000} Printer.Write(AString,Length(AString),tmp_cont); {$ELSE} Printer.Write(AString); {$ENDIF}
  11. ACBrDevice.pas(1571,25) Error: Wrong number of parameters specified for call to "Write" procedure TACBrDevice.EnviaStringRaw (...) (...) Printer.Write(AString); (...) Na unit Printers a declaração está assim: function Write(const Buffer; Count:Integer; var Written: Integer): Boolean; virtual; Com SVN blame descobri que esta alteração entrou na release 12443: ~/fontes/ACBr$ svn -r 12442:HEAD log Fontes/ACBrSerial/ACBrDevice.pas ------------------------------------------------------------------------ r12443 | dopi | 2016-10-02 21:47:17 -0300 (Dom, 02 Out 2016) | 18 linhas -- ACBrDevice -- [+] Adicionado o suporte a portas "RAW", permitindo usar o "Nome da Impressora", do sistema operacional, na definição da "Porta" Exemplo: "SWEDA SI-300S" ou "RAW:SWEDA SI-300S" Use "*" para imprimir na impressora Default [+] Nova sintaxe para atribuição de portas do tipo "Arquivo". Exemplo: "C:\TEMP\saida.prn" ou "FILE:C:\TEMP\saida.prn" [+] Adicionada nova propriedade "DeviceType: TACBrDeviceType", sendo que TACBrDeviceType = (dtFile, dtSerial, dtTCP, dtRawPrinter, dtHook) Essa propriedade é detectada automaticamente, na atribuição da propriedade "Porta", mas pode ser atribuída posteriormente, caso a detecção automática não esteja correta. -- ACBrPosPrinter -- [-] Ajuste para ignoarar as tags '</corte_parcial> e </corte_total> quanto propriedade "CortaPapel" for False. [-] Correção na exibição de mensagens de erro com acentuação. (por: DSA) ------------------------------------------------------------------------ Estou compilando com Lazarus 1.4.4 e FPC 2.6.4 num Ubuntu 14.04 LTS.
  12. Requisito mínimo para o ACBr no Lazarus é a versão 1.6?
  13. Também tive este erro, mas será que está correto comentar uma linha Printer.Write num componente que deve IMPRIMIR alguma coisa?
  14. Ocorreu no Lazarus 1.4.4, existe algum workaround para contornar o problema?
  15. Tenho um caso onde o mesmo ACBrMonitorPlus é usado por empresas com 3 certificados diferentes. Antes de enviar cada NFe o aplicativo chama a "SetCertificado" da empresa correspondente. Pelo menos uma vez por dia uma NFe é rejeitada por "CNPJ difere do CNPJ do certificado digital". Parece que, entre o SetCertificado e o EnviarNFe, alguma outra conexão vem e troca o certificado. Não seria interessante haver algum comando novo do monitor para ajudar a evitar este problema?