Erro na impressão da DANFe

819 views
Skip to first unread message

Juliano Amaral

unread,
Jul 4, 2018, 1:43:50 PM7/4/18
to NFePHP
Olá

Estou tendo o seguinte erro na impressão da DANFe:

Fatal error: Call to undefined function NFePHP\DA\Legacy\FPDF\Exception()

abaixo as chamadas dos arquivos:

require_once '../sped-nfe/vendor/autoload.php';

use NFePHP\NFe\Make;
use NFePHP\NFe\Tools;
use NFePHP\Common\Certificate;
use NFePHP\NFe\Common\Standardize;
use NFePHP\DA\NFe\Danfe;
use NFePHP\DA\NFe\Danfce;

Código:

$danfe = new Danfe($xml, $orientacao, $papel, $sPathLogo, $destino);
$id = $danfe->monta($orientacao, $papel, $posicaoLogo);
$pdf = $danfe->render();
header('Content-Type: application/pdf');
echo $pdf;

Alguém poderia me ajudar?

Roberto Machado

unread,
Jul 4, 2018, 2:02:28 PM7/4/18
to nfe...@googlegroups.com
Isso aqui está TOTALMENTE ERRADO 

require_once '../sped-nfe/vendor/autoload.php';

Entenda que a pasta VENDOR deve ficar na RAIZ da SUA aplicação e não dentro de outra pasta
o nfephp-org/sped-nfe é UMA das suas dependencias, e deve ficar dentro de VENDOR, nfephp-org/sped-da é outra dependência e assim por diante 

Recomendo fortemente que você estude o uso do COMPOSER

Roberto

Juliano Amaral

unread,
Jul 4, 2018, 2:22:57 PM7/4/18
to NFePHP
Ok, fiz a alteração e agora a pasta vendor esta na raiz da aplicação, mas o erro continua, meu "require" agora esta assim:

require_once '../vendor/autoload.php';

Juliano Amaral

unread,
Jul 4, 2018, 2:42:37 PM7/4/18
to NFePHP
Estrutura da minha pasta vendor


vendor.png

Eng Helder Ferreira.

unread,
Jul 4, 2018, 4:50:18 PM7/4/18
to nfe...@googlegroups.com
eu não coloquei na raiz eu coloquei em uma pasta no mesmo diretorio 
/var/www/html/nfephp5
e dentro da minha aplicação eu chamo assim
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
define("bar",constant("DIRECTORY_SEPARATOR"));
include( "../config/config.php");//carrega o arquivo de configurações é o mesmo da v3.1
require_once "/var/www/html/phpnfe5/vendor/autoload.php"; //v5
require_once('b2sfuncaoaux.php');
require_once("CLASSDB.INC");
require_once("classnota_xml.inc");//classe recuperar o xml gravado no banco de dados
$con = new bd("mySQL");
$con->conecta($database,$host,$port,$user,$pass);
$xml_con = new nota_xml($con); //classnota_xml.inc
$fixpdf=true;//para deixar o PDF no disco
//echo "\n<b>$empresa;</b>\n";
$sql=' ';
if ($ambiente == '1') {
                $sAmb = "producao";
            }else if($ambiente == '2'){
$sAmb = "homologacao";
}else{
echo "erro ambiente vazio";
exit ;
}
//carrega propriedade com ano e mes ex. 200911
    $anoMes = date('Ym');
$valDir=$arquivosDir.'/'.$sAmb.'/'.'validadas'.'/';
$entDir=$arquivosDir.'/'.$sAmb.'/'.'entradas'.'/';
$assDir=$arquivosDir.'/'.$sAmb.'/'.'assinadas'.'/';
$envDir=$arquivosDir.'/'.$sAmb.'/'.'enviadas'.'/';
$temDir=$arquivosDir.'/'.$sAmb.'/'.'temporarias'.'/';// Gravar em temporarias os recibos e o XML do protocolo tanto rejeitadas como aprovadas recebidas nrec-recprot.xml
$rejDir=$arquivosDir.'/'.$sAmb.'/'.'rejeitadas'.'/'; // mover de enviadas para rejeitadas quando tiver erro na assinatura/ validação
$denDir=$arquivosDir.'/'.$sAmb.'/'.'enviadas'.'/'.'denegadas'.'/'; //erro 110 problema com SEFAZ/cliente
$repDir=$arquivosDir.'/'.$sAmb.'/'.'enviadas'.'/'.'reprovadas'.'/'; // tem erro de calculo ou faltou dados validação do SEFAZ
$aprDir=$arquivosDir.'/'.$sAmb.'/'.'enviadas'.'/'.'aprovadas'.'/'; // nota foi aprovada depois deve ser movida para ano mes
$emailDir = $aprDir.$anoMes.DIRECTORY_SEPARATOR; //mover o arquivo xml para a pasta de arquivamento identificada com o ANOMES
$pdfDir=$arquivosDir.'/'.$sAmb.'/'.'pdf'.'/'; // Diretorio de PDF
$canDir=$arquivosDir.'/'.$sAmb.'/'.'canceladas'.'/';//Diretorio onde coloca as notas canceladas -procCanc.xml e XMLCOMPLETO COM o protocolo=> nfe35-----canc.xml
$cancelDir=$canDir.$anoMes.DIRECTORY_SEPARATOR;
$cceDir=$arquivosDir.'/'.$sAmb.'/'.'cartacorrecao'.'/';//Diretorio das cartas de correção
$inuDir=$arquivosDir.'/'.$sAmb.'/'.'inutilizadas'.'/';//Diretorio para inutilizadas
$inutDir=$inuDir.$anoMes."inut".DIRECTORY_SEPARATOR;//Diretorio para inutilizadas
if (!is_dir($arquivosDir)) {
            mkdir($arquivosDir, 0777);
}
if (!is_dir($arquivosDir.'/'.$sAmb)) {
mkdir($arquivosDir.'/'.$sAmb, 0777);
}
if (!is_dir($entDir)) {
mkdir($entDir, 0777);
}
if (!is_dir($valDir)) {
mkdir($valDir, 0777);
}
if (!is_dir($envDir)) {
mkdir($envDir, 0777);
}
if (!is_dir($temDir)) {
mkdir($temDir, 0777);
}
if (!is_dir($rejDir)) {
mkdir($rejDir, 0777);
}
if (!is_dir($denDir)) {
mkdir($denDir, 0777);
}
if (!is_dir($repDir)) {
mkdir($repDir, 0777);
}
if (!is_dir($aprDir)) {
mkdir($aprDir, 0777);
}
if (!is_dir($emailDir)) { //aprDir+anoMes
mkdir($emailDir, 0777);
}
if (!is_dir($pdfDir)) {
mkdir($pdfDir, 0777);
}
if (!is_dir($canDir)) {
mkdir($canDir, 0777);
}
if (!is_dir($cancelDir)) {
mkdir($cancelDir, 0777);
}
if (!is_dir($cceDir)) {
mkdir($cceDir, 0777);
}
if (!is_dir($inuDir)) {
mkdir($inuDir, 0777);
}
if (!is_dir($inutDir)) {
mkdir($inutDir, 0777);
}
//print "\n Preparando configuração...  ";
//V5 nfeV4.00
//echo "\n linha 90 Criando as configurações \n<hr>\n";
$config = [
   "atualizacao" => "2018-06-16",
   "tpAmb" => $ambiente, 
   "razaosocial" => $empresa,
   "siglaUF" => $UF,
   "urlcUF"=>"$cUF",
   "cnpj" => $cnpj,
   "schemes" => "PL_009_V4",//$schemes,//$schemes
   "versao" => "4.00",
   "tokenIBPT" => "AAAAAAA"
   
];
$configJson = json_encode($config);
?>

Em qua, 4 de jul de 2018 às 15:42, Juliano Amaral <juliano.am...@gmail.com> escreveu:
Estrutura da minha pasta vendor


--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Roberto Machado

unread,
Jul 4, 2018, 4:52:17 PM7/4/18
to nfe...@googlegroups.com
Helder;

O uso do COMPOSER CORRETO é algo fundamental, existem alternativa como a que você fez mas isso não é recomendável

Roberto

Eng Helder Ferreira.

unread,
Jul 4, 2018, 5:02:53 PM7/4/18
to nfe...@googlegroups.com
Preciso estudar, mas aqui eu vendo emito a nfe separo, e desenvolvo, as vezes sou entregador 
E o governo não para de mudar as coisas. 

Roberto Machado

unread,
Jul 4, 2018, 5:07:38 PM7/4/18
to nfe...@googlegroups.com
Bem vindo ao meu mundo !!! Alem de atender meus clientes, ainda mantenho todos os pacotes SPED

Mas ainda sim eu reservo algumas horas toda a semana para estudo e veja eu estudei engenharia elétrica,  mais 6 pos graduações ()lato senso) e tenho 60 anos.
Faço pelo menos 5 cursos rápidos por ano, assino vários cursos online, além de consultar vários videos no youtube e outros tutoriais. 
Então dá para arranjar um tempinho para se atualizar. Requer dedicação e esforço mas vale a pena.

Abraço meu amigo
Roberto

Juliano Amaral

unread,
Jul 4, 2018, 5:47:59 PM7/4/18
to NFePHP
Sobre a questão do tópico, você esta afirmando que o problema informado é por causa do caminho informado? e por que o problema só ocorre com DANFe, pois esta enviando a NF-e normalmente, e conforme já mencioneis nas postagem anteriores, já alterei a pasta vendor para raiz da aplicação e o erro continua

Edwin Schissato

unread,
Jul 4, 2018, 5:50:16 PM7/4/18
to nfe...@googlegroups.com
Parabéns pela força de vontade Roberto eu com 28 fiquei envergonhado, hahaahhaah

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.

Roberto Machado

unread,
Jul 4, 2018, 5:50:57 PM7/4/18
to nfe...@googlegroups.com
O seu require está o autoload de dentro de sped-nfe que não tem como requisito o sped-da

Então não existe sped-da (que contem a DANFE e outros prerequisitos) dentro de sped-nfe

Novamente RECOMENDO fortemente o estudo do COMPOSER

Roberto

Juliano Amaral

unread,
Jul 5, 2018, 8:37:58 AM7/5/18
to NFePHP
Bom dia Roberto,

desculpe a insistência, mas estava tudo funcionando antes de fazer um update, meu autoload esta dentro da pasta "vendor" e não dentro da pasta "sped-nfe" como você mencionou, você deve ter se confundido porque inicialmente eu coloquei os arquivos do composer dentro de uma pasta com o nome de "sped-nfe" coincidentemente com o nome da pasta que fica dentro da "nfephp-org", mas mesmo assim estava tudo funcionando inclusive a impressão da DANFe, o problema começou a ocorrer depois que fiz o update, mas conforme você sugeriu, alterei a pasta "vendor" para a pasta raiz da minha aplicação e alterei o require conforme mencionei nas postagens anteriores e o problema persitiu, também li por varias vezes as instruções do composer direto do site oficial, e não consegui identificar o problema, em anexo esta uma imagem da minha estrutura de pastas, a pasta raiz da minha aplicação é a pasta "desenvolvimento" e o meu require esta da seguinte forma: 

require_once '../vendor/autoload.php';


De qualquer forma vou dar uma olhada nos arquivos fonte que estão na pasta "sped-da", obrigado pela ajuda
dir vendor.png

Juliano Amaral

unread,
Jul 5, 2018, 9:27:17 AM7/5/18
to NFePHP
Roberto

Me desculpe novamente a minha falta de experiência, infelizmente não tenho tanto tempo de experiência como você e não no momento estou precisando resolver o problema, então...

Olhando o arquivo Fpdf.php na linha 277 conforme mencionado no erro, fiz a seguinte alteração:

DE:

 public function error($msg)
    {
        throw Exception($msg);
    }

PARA:

 public function error($msg)
    {
        throw new Exception($msg);
    }

Após essa alteração retornou o erro "Alpha channel not supported", mas ai eu sei que é o problema de transparência da imagem, que não é suportada pelo FPDF, no entanto acho que o problema do topico, não é o caminho e sim a função "error" que estava construindo o "Exception" em declarar o new



Em quarta-feira, 4 de julho de 2018 18:50:57 UTC-3, linux.rlm escreveu:

Edwin Schissato

unread,
Jul 5, 2018, 9:32:01 AM7/5/18
to nfe...@googlegroups.com
Alpha channel not supported se não estou enganado tem a ver como logo não ser .jpg

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.
Message has been deleted
Message has been deleted
Message has been deleted

Juliano Amaral

unread,
Jul 5, 2018, 9:43:42 AM7/5/18
to NFePHP
Isso mesmo Edwin

O problema é que tinha um erro fatal no arquivo Fpdf.php, pois estava criando um "Exception" sem declarar o "new" na função "error", ai ao invés de mostrar o erro original, estava mostrando o erro "Fatal error: Call to undefined function NFePHP\DA\Legacy\FPDF\Exception()", assim fui induzido a acreditar que o problema era o caminho dos meus arquivos do composer, mas agora já esta resolvido, pode ser que mais alguém venha ter esse problema, já que o arquivo Fpdf.php é um dos arquivos fornecidos pelo composer

Edwin Schissato

unread,
Jul 5, 2018, 9:44:36 AM7/5/18
to nfe...@googlegroups.com
Entendi, que bom que você achou esse erro.

Em 5 de julho de 2018 10:43, Juliano Amaral <juliano.am...@gmail.com> escreveu:
Isso mesmo Edwin

O problema é que tinha um erro fatal no arquivo Fpdf.php, pois estava criando um "Exception" sem declarar o "new" na função "error", ai ao invés de mostrar o erro original, estava mostrando o erro "Fatal error: Call to undefined function NFePHP\DA\Legacy\FPDF\Exception()", assim fui induzido a acreditar que o problema era o caminho dos meus arquivos do composer, mas agora já esta resolvido, pode ser que mais alguém venha ter esse problema, já que o arquivo Fpdf.php é um dos arquivos fornecidos pelo composer

--

Roberto Machado

unread,
Jul 5, 2018, 3:59:58 PM7/5/18
to nfe...@googlegroups.com
Corrgido o erro do Exception 

Em qui, 5 de jul de 2018 às 10:44, Edwin Schissato <edwi...@gmail.com> escreveu:
Entendi, que bom que você achou esse erro.
Em 5 de julho de 2018 10:43, Juliano Amaral <juliano.am...@gmail.com> escreveu:
Isso mesmo Edwin

O problema é que tinha um erro fatal no arquivo Fpdf.php, pois estava criando um "Exception" sem declarar o "new" na função "error", ai ao invés de mostrar o erro original, estava mostrando o erro "Fatal error: Call to undefined function NFePHP\DA\Legacy\FPDF\Exception()", assim fui induzido a acreditar que o problema era o caminho dos meus arquivos do composer, mas agora já esta resolvido, pode ser que mais alguém venha ter esse problema, já que o arquivo Fpdf.php é um dos arquivos fornecidos pelo composer

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.


--
Roberto
Nisi utile est quod facimus stulta est gloriae (Julius Phaedous)
Reply all
Reply to author
Forward
0 new messages