Jump to content

dev botao

Geração do Arquivo PDF


Go to solution Solved by José M. S. Junior,
  • Este tópico foi criado há 552 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom Dia a Todos.

Continuando na homologação para NFCe e NFe

Conseguimos obter sucesso na geração e envio do XML obtendo retorno 100, contudo após estes métodos tentamos gerar seu respectivo PDF pelo qual usamos o método: NFE_SalvarPDF() sua resposta foi (((( JVBERi0xLjINCjEgMCBvYmogPDwNCi9DcmVhdGlvbkRhdGUoRDoyMDIyMDcyOTIyMjUxMCkNCi9DcmVhdG9yKFByb2pldG8gQUN ))) fizemos vaios testes e sempre retorna esta mesma sequencia de caracteres (base64 ???) contudo não identificamos a onde foi gerado o respectivo arquivo PDF.  No manual só aparece essa informação.  

Atenciosamente

Ronaldo F. Castro

image.thumb.png.82ee05dbb898dcc7a653afe9c44ed067.png

Link to comment
Share on other sites

  • Membros Pro

Boa tarde Lucimauro, Obrigado pela resposta.

Bem o PathPDF  sempre esteve devidamente setado. Mas o PDF não é gerado lá de forma alguma. depois que que uso o método ENVIAR XML para o SEFAZ este retorna autorizado (100) mas o PDF não é gerado então achei que deveria haver a sequencia OBERTERXML  e depois SALVARPDF mas o que ocorre é que aparece um quadro na tela mostrando que parece estar descarregando algum arquivo em algum lugar,... mas não consigo saber que arquivo é este e em que lugar este foi saldo.   Nas pastas ou sub pastas do root  C:NFCE que estão todos os subcaminhos setados nada aparece pertinente a um PDF.

 

A sequencia de comandos: neste o que salva o PDF esta implícito?  Pois aqui não vi nenhuma menção a salvar o PDF

hHandleDllNfe:LimparLista()

---------------------------------------------------------------------------------------------------------------------------------

Qual função carregou a sua variável ArqXML 

hHandleDllNfe:CarregarXML(ArqXml)  // Arquivo xml

---------------------------------------------------------------------------------------------------------------------------------

A função imprimePDF já realiza o salvamento do PDF o não tem nada a haver?

cRet_imprimirPdf:=hHandleDllNfe:ImprimirPDF()

---------------------------------------------------------------------------------------------------------------------------------

Atenciosamente

    Ronaldo F. Castro

Edited by Net Shopping
Link to comment
Share on other sites

  • Moderadores
  • Solution

Bom dia, 

O método ObterPDF serve para obter o mesmo em base 64 mesmo, caso esteja usando Web por exemplo. Para Salvar na própria máquina utilize o método ImprimirPDF, após carregar o mesmo.

Será Salvo conforme a estrutura de diretórios configurada na lib o diretório raiz será o configurado no campo "Download.PathDownload" na sessão [NFe]

https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

  • Like 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro

Bom dia Junior,

Entendi.  Então para simplesmente salvarmos o respectivo PDF na maquina usamos a DOIS  métodos  sendo: 

        1º) NFE_CarregarXML()

         2º) NFE_ImprimirPDF()

 

Quando executo o método NFE_CarregarXML() o qual devo informar o respectivo PATH + NOME DO ARQ XML. 

                                  image.png.b47d34f12d74725ce2472a2695083f91.png

O método da um erro de execução que é

                                  image.png.9192c016b0cc469cc8094b4205b70db0.png

 

E NÃO deixa executar o respectivo método   NFE_ImprimirPDF() pois este como dito tem que anteriormente ter sido devidamente carregado.

Não sei o motivo de estar dando este erro ao executar o método NFE_CarregarXML()

Fizemos varias possibilidades e todas ocorreram a mesma falha:

  STOR SPACE(1024)         TO PATHARQXML

 

 

  Declare Long       NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   STRING@PATHARQXML

                                              ou

  Declare STRING  NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   STRING@PATHARQXML

                                              ou

  Declare Long       NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   Long@PATHARQXML

                                              ou

  Declare STRING  NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   Long@PATHARQXML

 

 

  PATHARQXML = "C:\NFCE\CUSTODIA\" + CHVACSS_SV + "-nfe.xml"

 

* ----------------------------------------------------------------------

  RETORNO_ACBr = 0

  RETORNO_ACBr = NFE_CarregarXml(@PATHARQXML) 

                                              ou

  RETORNO_ACBr = NFE_CarregarXml(PATHARQXML) 

* ----------------------------------------------------------------------

Por não conseguir Carregar o XML o método de IMPRIMIR também da um erro, sendo:

                       image.png.e1d72210905c3ef0ac7203c115a8ffa4.png

Atenciosamente

    Ronaldo F. Castro

image.png

image.png

image.png

image.png

IMPRIMIR_PDF.docx IMPRIMIR_PDF.docx

Link to comment
Share on other sites

  • Moderadores

Aparentemente o problema está na chamada do método NFe_CarregarXML na sua aplicação. Esse método não espera nenhum retorno, assim como o métodos Assinar por exemplo, então no parâmetro só precisa passar o path completo do do xml. 

Dê uma olhada no programa exemplo do ACBr utilizando a lib.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro

Bom dia Junior

Fui lá no exemplo de voces como vc sugeriu

Exemplo da ACBr

  1.     NFE_Inicializar: ['int', ['string', 'string']],

  2.     NFE_ConfigLer: ['int', ['string']],

  3.     NFE_CarregarINI: ['int', ['string']],

  4.   NFE_CarregarXML: ['int', ['string']],

  5.     NFE_UltimoRetorno: ['int', ['string', 'string']],
  6. .....

  7.   inicio = libm.NFE_ConfigGravarValor('NFe', 'PathSchemas', path.resolve(__dirname, 'Schemas', 'NFe'));

  8.   console.log('Set Configurações ${inicio}');

  9.  

  10.   inicio = libm.NFE_CarregarXML(pathXML);

  11.   console.log('carregar xml >>>>>>> ${inicio}');

  12.  

  13.   inicio = libm.NFE_UltimoRetorno(aloc_sResposta, aloc_esTamanho);

  14.  

Nossos comandos

  STOR SPACE(60)           TO PATHARQXML

 * Declare string   NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll STRING@PATHARQXML

* Declare string   NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll LONG@PATHARQXML

* Declare Long     NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll STRING@PATHARQXML

  Declare Long     NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll long@PATHARQXML

 

      CHVACSS_SV = "33220829685560000109650040000001471461237983"  

    PATHARQXML  = "C:\NFCE\CUSTODIA\" + CHVACSS_SV + "-nfe.xml"

* -----------------------------------

   NFE_CarregarXml(PATHARQXML) 

* -----------------------------------

 

SEMPRE DA O MESMO ERRO SENDO:

image.png.d1ed063d8164da215006344821ebf3ef.png

 

 

=====================================================================================================

                                                                                           Observação:

 

Fizemos o que voce sugeriu, retiramos o recebimento do retorno do método, contudo lá no manual  mostra valores de retorno para este método.

 

                     image.png.20ae32cbea32b3f2fb0203dc0f0d5680.png

 

Junior muito obrigado pela sua atenção.

Atenciosamente

Ronaldo F. Castro

 

CARREGA_XML.docx

Link to comment
Share on other sites

  • Moderadores
12 horas atrás, Net Shopping disse:

Fizemos o que voce sugeriu, retiramos o recebimento do retorno do método, contudo lá no manual  mostra valores de retorno para este método.

Esse retorno é apenas o inteiro que corresponde ao código do erro. Não tem retorno no sentido de precisar alocar ponteiro para obter uma resposta.

Mas note que a mensagem de erro é na sua própria aplicação, não está nem chegando na ACBrlib, pois não está encontrando a declaração desse método para instancia-lo.

O método NFe_CarregarIni está funcionando? Pois a funcionalidade é a mesma para o NFe_CarregarXML, a diferença que que deve passar o path com a extensão .xml no parâmetro.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro

Junior Bom dia

Conseguimos,...

|Usamos a linguagem Visual Fox pro 9.0  Quando declaramos como STRING não funciona de forma alguma, mas,... quando declaramos como LONG funcionou perfeitamente. Este era o Erro a sua dica de espelhar no método de inicializar foi crucial pois fui neste e espelhei a respectiva declaração para CARREGAR XML.   Te agradeço mais essa.  Vou anexar aqui XML e seu respectivo DANFE

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - ---------                                                  
  Declare STRING NFE_CarregarXML  IN \SIS\VENDA\ACBrNFE32.dll   String@eArquivoOuXml       ((((ERRO)))
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - ---------

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - - - - - -                                                   
  Declare LONG NFE_CarregarXML  IN \SIS\VENDA\ACBrNFE32.dll   String@eArquivoOuXml        ((( FUNCIONOU)))
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - -

33220829685560000109650040000001571569598053-nfe.pdf 33220829685560000109650040000001571569598053-nfe.xml

Junior muito obrigado pela paciência e atenção a nós dedicada.

Atenciosamente

  Ronaldo F. Castro

 

Link to comment
Share on other sites

  • 4 weeks later...
  • Este tópico foi criado há 552 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.