Um colega pediu ajuda para colocar para funcionar.
Resolvi postas aqui para ajudar outros colegas...
Quando baixa a lib do site... já em uma classe para usar... a classe é xharbour.
mas pode ser compilada tranquilamente pelo harbour... consegui compilar na versao Harbour 3.2.0dev (r1802131223).
Daà vou deixar um exemplo aqui de imprimir o danfe enviando um xml..
Na classe que vem de exemplo tem muita coisa pronta, mas eu sou meio ruinzinho de classe, fui testando os métodos(funções) conforme as minhas necessidades..
é muito jóia essa opção da dll. Para imprimir um danfe tinha que ter o acbrmonitor instalado... agora basta mandar a dll junto...
#define DC_CALL_STD 0x0020 // __stdcall
#define DLL_OSAPI DC_CALL_STD
#define STR_LEN 256
#define ACBrLIB "ACBrNFe32.dll"
Function main
// Se mandar .f. - imprime o xml
// Se mandar .t. - gera o pdf
ImprimirPDFNfe( 'C:\ARQXML.XML', .F. )
Return nil
FUNCTION ImprimirPDFNfe(cArq, lPdf)
Local cTexto := ''
Local cBufferlen
Local hLib
hLib := DllLoad(ACBrLIB)
iRet := DllCall(hLib, DLL_OSAPI, "NFE_Inicializar", "", "")
bufferLen:= STR_LEN
cTexto := Space(bufferLen)
iRet := DllCall(hLib, DLL_OSAPI, "NFE_CarregarXML", hb_StrToUTF8(cArq))
If lPdf
iRet := DllCall(hLib, DLL_OSAPI, "NFE_ImprimirPDF")
Else
iRet := DllCall(hLib, DLL_OSAPI,"NFE_Imprimir", hb_StrToUTF8(""), 1, hb_StrToUTF8(""), hb_StrToUTF8(""), hb_StrToUTF8(""), hb_StrToUTF8(''), hb_StrToUTF8(""))
EndIf
iRet := DllCall( hLib, DLL_OSAPI,"NFE_Finalizar")
hLib := NIL
RETURN nil
tem que ter as seguintes libs no path do executável:
e as configurações de pastas, impressora etc são feitas no acbrlib.ini.
Para quem já trabalha com acbrmonitor, é bem parecido...
Vlw..
Rubens