Página 1 de 1

SEFAZCLASS - Logo na DANFE

Enviado: 17 Nov 2017 19:21
por mga
Usando a classe do mestre Jose Quintas, não estou conseguindo fazer a LOGO sair na DANFE, alguem pode me ajudar


cConteudoXML := RetornaConteudoDoXMLArquivoTabelaNFE( cChaveNFE )
cArquivoPDF := PastaPDF()+"\"+Alltrim(cChaveNFE)+".pdf"
oDanfe := hbNFeDaNFe():New()
oDanfe:cDesenvolvedor := InformacaoDoDesenvolvedor()
oDanfe:cLogoFile := "c:\danfe\imagem.jpg"
cRetorno := oDanfe:ToPDF( cConteudoXML, cArquivoPDF, "" )

SEFAZCLASS - Logo na DANFE

Enviado: 17 Nov 2017 19:50
por mga
Resolvido assim:

METHOD DrawJPEGImage( cJPEGImage, x1, y1, x2, y2 ) CLASS hbNFeDaNFe

IF cJPEGImage == NIL .OR. Empty( cJPEGImage )
RETURN NIL
ENDIF

// IF Len( cJPEGImage ) < 100
// IF File( cJPEGImage )
// cJPEGImage := HPDF_LoadJpegImageFromFile( ::oPDF, cJPEGImage )
// ENDIF
// ELSE
// cJPEGImage := HPDF_LoadJpegImageFromMem( ::oPDF, cJPEGImage, Len( cJPEGImage ) )
// ENDIF

cJPEGImage := HPDF_LoadJpegImageFromFile( ::oPDF, cJPEGImage )

HPDF_Page_DrawImage( ::oPDFPage, cJPEGImage, x1, y1, x2, y2 )

RETURN NIL

SEFAZCLASS - Logo na DANFE

Enviado: 18 Nov 2017 02:40
por JoséQuintas
Se reparar direito, fez o que estava no fonte, exceto testar se o arquivo existe.

Código: Selecionar todos

/ IF Len( cJPEGImage ) < 100
// IF File( cJPEGImage )
// cJPEGImage := HPDF_LoadJpegImageFromFile( ::oPDF, cJPEGImage )
// ENDIF
// ELSE

Código: Selecionar todos

cJPEGImage := HPDF_LoadJpegImageFromFile( ::oPDF, cJPEGImage )
Se Len() do parâmetro < 100.... seu parâmetro é menor que 100.
IF File( cJPEGImage ) .... só se falhou aqui.

SEFAZCLASS - Logo na DANFE

Enviado: 18 Nov 2017 02:45
por JoséQuintas
Ah, não... já sei o que foi....
A melhoria está no uso "não direto".

oDanfe := hbnfeDaGeral():New()

SEFAZCLASS - Logo na DANFE

Enviado: 18 Nov 2017 09:32
por rubens
Bom dia
José Quintas...
Como enviar o texto nas observações para quebrar a linha?
Por exemplo:
cObs1+'|'+cObs2?
cObs1+';'+cObs2?
cObs1+HB_Eol()+cObs2?

Obrigado
Rubens

SEFAZCLASS - Logo na DANFE

Enviado: 18 Nov 2017 10:47
por JoséQuintas
Os dois são válidos, mas use preferencialmente o ponto e vírgula, pra não complicar com UTF8.

Código: Selecionar todos

   FOR EACH cText IN { ";;", ";", "|" }
      ::aInfAdic[ "infCpl" ]     := StrTran( ::aInfAdic[ "infCpl" ], cText, hb_Eol() )
      ::aInfAdic[ "infAdFisco" ] := StrTran( ::aInfAdic[ "infAdFisco" ], cText, hb_Eol() )
   NEXT

SEFAZCLASS - Logo na DANFE

Enviado: 18 Nov 2017 11:27
por mga
Muito obrigado Sr José Quintas, e parabéns pelo trabalho com HBNFE é fantástico. :{ :{