Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alissong

erro ao gerar pdf com a classe mpdf

Recommended Posts

arquivo -> rel_analise_mpdf.php
<?php
// bd.php deve conter as funções para se conectar no banco de dados
 require ("verifica.php");
 include("conexao/bdinc.php"); 

// Fecha conexão

// Passando data do banco "AAAA-MM-DD" para "DD/MM/AAAA"
function mostraData ($data_emissao) {
if ($data_emissao!='') {
return (substr($data_emissao,8,2).'/'.substr($data_emissao,5,2).'/'.substr($data_emissao,0,4));
}
else { return ''; }
}
// Fecha função para data

// busca os dados no banco de dados

$cod = $_GET["id"];
$sql = "SELECT * FROM analise WHERE id = '$cod'";
$resultado = mysqli_query($conn,$sql);
while ($linha = mysqli_fetch_array($resultado)){
$cod = $linha["id"];
$fatura_nf = $linha["fatura_nf"];
$data_emissao = mostraData($linha["data_emissao"]);
$valor_nf = $linha["valor_nf"];
$valor_nf = number_format($valor_nf, 2, ',','.');
$n_contrato = $linha["n_contrato"];
$cnpj_cpf = $linha["cnpj_cpf"];
$quesito_1 = $linha["quesito_1"];
$opcao_1 = $linha["opcao_1"];
$ocorrencia_1 = $linha["ocorrencia_1"];
$quesito_2 = $linha["quesito_2"];
$opcao_2 = $linha["opcao_2"];
$ocorrencia_2 = $linha["ocorrencia_2"];
$quesito_3 = $linha["quesito_3"];
$opcao_3 = $linha["opcao_3"];
$ocorrencia_3 = $linha["ocorrencia_3"];
$quesito_4 = $linha["quesito_4"];
$opcao_4 = $linha["opcao_4"];
$ocorrencia_4 = $linha["ocorrencia_4"];
$quesito_5 = $linha["quesito_5"];
$opcao_5 = $linha["opcao_5"];
$ocorrencia_5 = $linha["ocorrencia_5"];
$quesito_6 = $linha["quesito_6"];
$opcao_6 = $linha["opcao_6"];
$ocorrencia_6 = $linha["ocorrencia_6"];
$quesito_7 = $linha["quesito_7"];
$opcao_7 = $linha["opcao_7"];
$ocorrencia_7 = $linha["ocorrencia_7"];
$quesito_8 = $linha["quesito_8"];
$opcao_8 = $linha["opcao_8"];
$ocorrencia_8 = $linha["ocorrencia_8"];
$quesito_9 = $linha["quesito_9"];
$opcao_9 = $linha["opcao_9"];
$ocorrencia_9 = $linha["ocorrencia_9"];
$quesito_10 = $linha["quesito_10"];
$opcao_10 = $linha["opcao_10"];
$ocorrencia_10 = $linha["ocorrencia_10"];
$quesito_11 = $linha["quesito_11"];
$opcao_11 = $linha["opcao_11"];
$ocorrencia_11 = $linha["ocorrencia_11"];
$quesito_12 = $linha["quesito_12"];
$opcao_12 = $linha["opcao_12"];
$ocorrencia_12 = $linha["ocorrencia_12"];
$quesito_13 = $linha["quesito_13"];
$opcao_13 = $linha["opcao_13"];
$ocorrencia_13 = $linha["ocorrencia_13"];
$quesito_14 = $linha["quesito_14"];
$opcao_14 = $linha["opcao_14"];
$ocorrencia_14 = $linha["ocorrencia_14"];
$quesito_15 = $linha["quesito_15"];
$opcao_15 = $linha["opcao_15"];
$ocorrencia_15 = $linha["ocorrencia_15"];
$quesito_16 = $linha["quesito_16"];
$opcao_16 = $linha["opcao_16"];
$ocorrencia_16 = $linha["ocorrencia_16"];
$quesito_17 = $linha["quesito_17"];
$opcao_17 = $linha["opcao_17"];
$ocorrencia_17 = $linha["ocorrencia_17"];
$quesito_18 = $linha["quesito_18"];
$opcao_18 = $linha["opcao_18"];
$ocorrencia_18 = $linha["ocorrencia_18"];
$quesito_19 = $linha["quesito_19"];
$opcao_19 = $linha["opcao_19"];
$ocorrencia_19 = $linha["ocorrencia_19"];
$quesito_20 = $linha["quesito_20"];
$opcao_20 = $linha["opcao_20"];
$ocorrencia_20 = $linha["ocorrencia_20"];
$quesito_21 = $linha["quesito_21"];
$opcao_21 = $linha["opcao_21"];
$ocorrencia_21 = $linha["ocorrencia_21"];
$quesito_22 = $linha["quesito_22"];
$opcao_22 = $linha["opcao_22"];
$ocorrencia_22 = $linha["ocorrencia_22"];
}
// Captura o usuario logado no sistema e IP
$usuario = $_SESSION['login'];
$usuario = ucfirst($_SESSION['login']);
$ip = $_SERVER["REMOTE_ADDR"];


$html= '
<HTML>
<BODY>
<table border="1" width="100%">
<tr>
<td width="60%" align ="center" colspan="4"><label>ANÁLISE CONTÁBIL DA NFS-e :'.$fatura_nf.'</label></td>
<td width="30%"><label>Usuário</label></td>
<td width="10%" align ="left" colspan="2"><label>'.$usuario.'</label></td>
</tr>
<tr>
  <td width="30%"><label>Fatura/Nota Fiscal</label></td>
  <td width="10%" align ="right">'.$fatura_nf.'</td>
  <td width="30%"><label>Data Fatura/Nota Fiscal</label></td>
  <td width="10%" align ="right">'.$data_emissao.'</td>
  <td width="30%" align ="left" rowspan="2"><label>Valor da Fatura/Nota Fiscal</label></td>
  <td width="20%" align ="right" rowspan="2">'.$valor_nf.'</td>
</tr>
<tr>
  <td width="60%" ><label>N° Contrato</label></td>
  <td width="10%" align ="right" >' . $n_contrato . '</td>
  <td width="40%" align ="left"  ><label>CNPJ da Contratada</label></td>
  <td width="20%" align ="right" >' .$cnpj_cpf. '</td>
</tr>
<tr>
  <td width="60%"><label><b> Documentação que deve acompanhar a Nota Fiscal de prestação de serviços continuados</b></label></td>
  <td width="5%" align ="center"><label><b>Selecione a opção</b></label></td>
  <td width="35%" align ="center" colspan="4"><label><b>Descrição da Ocorrência</b></label></td>
</tr>
<tr>
  <td width="60%">1. Nota Fiscal com as seguintes informações: descrição do serviço, competência da nota, n° da Licitação e n° do Contrato ?</td>
  <td width="5%" align ="center">' . $opcao_1 . '  </td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_1 . '</td>
</tr>
<tr>
  <td width="60%">2. Planilha contendo as seguintes informações: nomes completos dos empregados, funções exercidas, dias efetivamente trabalhados, horas extras
trabalhadas, férias, licenças, faltas e ocorrências (n° de terceirizados por função deve coincidir com o previsto no contrato) ?</td>
  <td width="5%" align ="center">' . $opcao_2 . '   </td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_2 . '</td>
</tr>
<tr>
  <td width="60%">3. Cópia da Folha de Pagamento dos empregados ?</td>
  <td width="5%" align ="center">' . $opcao_3 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_3 . '</td>
</tr>
<tr>
  <td width="60%">4. Cópia do depósito bancário ou relação bancária de pagamento dos empregados (deve estar previsto no contrato) ?</td>
  <td width="5%" align ="center">' . $opcao_4 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_4 . '</td>
</tr>
<tr>
  <td width="60%">5. Cópia do Protocolo de Envio de Arquivos, emitido pela Conectividade Social (GFIP) ?</td>
  <td width="5%" align ="center">' . $opcao_5 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_5 . '</td>
</tr>
<tr>
  <td width="60%">6. Cópia da Guia de Recolhimento do FGTS (GRF) com a autenticação mecânica ou acompanhada do comprovante de recolhimento bancário ou o
comprovante emitido quando recolhimento for efetuado pela Internet ?</td>
  <td width="5%" align ="center">' . $opcao_6 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_6 . '</td>
</tr>
<tr>
  <td width="60%">7. Cópia da Relação dos Trabalhadores Constantes do Arquivo SEFIP (RE) ?</td>
  <td width="5%" align ="center">' . $opcao_7 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_7 . '</td>
</tr>
<tr>
  <td width="60%">8. Cópia da Guia de Recolhimento Rescisório do FGTS, quando houver rescisão sem justa causa ?</td>
  <td width="5%" align ="center">' . $opcao_8 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_8 . '</td>
</tr>
<tr>
  <td width="60%">9. Cópia do Termo de Rescisão, quando houver rescisão do contrato do trabalhador ?</td>
  <td width="5%" align ="center">' . $opcao_9 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_9 . '</td>
</tr>
<tr>
  <td width="60%">10. Cópia do Comprovante de Declaração à Previdência ?</td>
  <td width="5%" align ="center">' . $opcao_10 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_10 . '</td>
</tr>
<tr>
  <td width="60%">11. Cópia da Guia da Previdência Social (GPS) com a autenticação mecânica ou acompanhada do comprovante de recolhimento bancário ou o comprovante emitido
quando recolhimento for efetuado pela Internet ?</td>
  <td width="5%" align ="center">' . $opcao_11 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_11 . '</td>
</tr>
<tr>
  <td width="60%">12. Comprovante de Recolhimento do Imposto Sobre Serviço de Qualquer Natureza - ISSQN, exceto se o órgão ou entidade efetivar a devida retenção ?</td>
  <td width="5%" align ="center">' . $opcao_12 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_12 . '</td>
</tr>
<tr>
  <td width="60%">13. Cópia do Comprovante de Recolhimento do Imposto Sobre Serviço de Qualquer Natureza - ISSQN, exceto se o órgão ou entidade efetivar a devida retenção ?</td>
  <td width="5%" align ="center">' . $opcao_13 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_13 . '</td>
</tr>
<tr>
  <td width="60%">14. Cópia da Certidão Negativa de Débito junto ao INSS (CND), a Certidão Negativa de Débitos de Tributos e Contribuições Federais e o Certificado de
Regularidade do FGTS (CRF), sempre que expire o prazo de validade ?</td>
  <td width="5%" align ="center">' . $opcao_14 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_14 . '</td>
</tr>
<tr>
  <td width="60%">15. Cópia da Folha ponto dos empregados: em caso de faltas injustificadas do empregado, deve a fatura conter o respectivo desconto ?</td>
  <td width="5%" align ="center">' . $opcao_15 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_15 . '</td>
</tr>
<tr>
  <td width="60%">16. Comprovante de fornecimento de vale-transporte aos empregados de acordo com os dias efetivamente trabalhados (onde houver cartão deve ser apresentado
cópia do cartão e comprovante da recarga do mesmo pela empresa) ?</td>
  <td width="5%" align ="center">' . $opcao_16 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_16 . '</td>
</tr>
<tr>
  <td width="60%">17. Comprovante de pagamento do auxílio alimentação aos empregados ?</td>
  <td width="5%" align ="center">' . $opcao_17 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_17 . '</td>
</tr>
<tr>
  <td width="60%">18. Comprovante dos recibos de pagamento de autônomos - RPA ou cópia dos demais documentos se o empregado substituto tiver vínculo empregatício com a
empresa (nos casos de substituição do empregados) ?</td>
  <td width="5%" align ="center">' . $opcao_18 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_18 . '</td>
</tr>
<tr>
  <td width="60%">19. Consultar a situação da empresa junto ao SICAF, SN, TST, PT imprimir e anexar à Nota Fiscal ?</td>
  <td width="5%" align ="center">' . $opcao_19 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_19 . '</td>
</tr>
<tr>
  <td width="60%">20. Consultar contrato no SIASG, seguro garantia e vigência do seguro ?</td>
  <td width="5%" align ="center">' . $opcao_20 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_20 . '</td>
</tr>
<tr>
  <td width="60%">21. O valor da NF é o mesmo do valor mensal do contrato ?</td>
  <td width="5%" align ="center">' . $opcao_21 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_21 . '</td>
</tr>
<tr>
  <td width="60%">22. DIVS, INSS E ISSQN foram calculados ?</td>
  <td width="5%" align ="center">' . $opcao_22 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_22 . '</td>
</tr>
</table>
</BODY>
</HTML>
';

// Fecha o código HTML

include("mpdf/mpdf.php");

//É fundamental definir o TIMEZONE de nossa região para que não tenhamos problemas com a geração.
date_default_timezone_set('America/Sao_Paulo');

$mpdf=new mPDF('c','A4'); 

// coloca o titulo no arquivo
$mpdf->SetTitle('ANÁLISE CONTÁBIL DA NFS-e');

$mpdf->SetDisplayMode('fullpage');

$mpdf->list_indent_first_level = 1;	// 1 or 0 - whether to indent the first level of a list

// coloca o rodape no arquivo
$mpdf->SetFooter("{DATE j/m/Y H:i}|Pagina {PAGENO} de {nb}|$ip/contabilidade");

// incorpora o corpo ao PDF na posição 2 e deverá ser interpretado como footage. Todo footage é posicao 2 ou 0(padrão).
$html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');
$mpdf->WriteHTML($html,2);

// define um nome para o arquivo PDF
$arquivo = $fatura_nf.'analise.pdf';

// Limpa o buffer de saída
ob_clean(); 

// gera o relatório
$mpdf->Output($arquivo,'I');

exit();

// Fecha a conexao
mysqli_close($conn);
?>

Pessoal,

Quando tento gerar o relatório em PDF exibe esses errros:

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Cannot modify header information - headers already sent by (output started at C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php:1190) in C:\Apache24\htdocs\contabilidade\mpdf\mpdf.php on line 8297

Warning: Cannot modify header information - headers already sent by (output started at C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php:1190) in C:\Apache24\htdocs\contabilidade\mpdf\mpdf.php on line 1706
mPDF error: Some data has already been output to browser, can't send PDF file

Pessoal uso esse link: $imprimir = "<a href='?rel=rel_analise_mpdf&id=$linha[0]'><img src='img/imprimir.jpg' width='16' border='0' height='16'></a>";

 

Para chamar o arquivo rel_analise_mpdf.php

Estou usando:

PHP 7.2

Apache24

MPDF060

 

Alguém saber como corrigir esse erro?

 

Atenciosamente,

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.