Ir para conteúdo

POWERED BY:

Arquivado

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

Sapinn

Problemas ao usar php para gerar pdf

Recommended Posts

Salve! Dúvida cruel que eu preciso resolver para o meu projeto. Foi requerido que eu permitisse que as redações feitas no meu projeto fossem mostradas em arquivos pdf para download e para impressão já consigo gerar tal arquivo o único problema é que nas correções que também poderão ser impressas eu mostro os erros de um forma para que eles vejam destacado. Tudo isso funciona, o único problema é que tá dando umas quebras de página no pdf. Muito mais muito provavelmente seja por causa do vetor ou seja a forma que eu esteja chamando o mesmo .

Vejam meu codigo:

<?php 
//inclui o mpdf
 include("mpdf60/mpdf.php");
//essa função verifica dois textos para verem se eles são iguais
 function get_str_difs($str1, $str2) {
   $first = explode(" ", $str1);
   $second = explode(" ", $str2);
   $arrDif1 = array_diff($first,$second);
   $arrDif2 = array_diff($second,$first);
   $old = '';
   $new = '';
     foreach($first as $word) {
       if(in_array($word,$arrDif1)) {
         //aqui ele marca o que for diferente
       $old .= "<span style='color: red; background-color:#dedede;'>" . $word . "</span> ";
       continue;
       }
       $old .= $word . " ";
     }
     foreach($first as $word) {
       if(in_array($word,$arrDif1)) {
           //aqui ele marca o que for diferente
       $new .= "<span style='color: green;background-color:#dedede;'> " . $word . " </span>";
       continue;
       }
 
       $new .= $word . " ";
     }
   return array('old' => $old, 'new' => $new);
   }
   //esses são dois textos usado como exemplo de uma redação
 $str1 = '
 Em virtude do contexto histórico, é visível que o desmatamento em excesso no Brasil é um desafio que já vem sendo enfrentado há muito tempo, porém, ainda existem bastante casos que afetam gravemente, colocando em desequilíbrio todo o sistema natural. 
 É fundamental avaliar o corte das árvores de grande porte na floresta Amazônica, principalmente para a criação de gado bovino e derivados da madeira extraída. O espaço preenchido e o material retirado são pontos fundamentais para os grandes fazendeiros e as indústrias em meios econômicos. 
 As queimadas são usadas para limpar áreas, muitas vezes acabam saindo de controle, gerando os incêndios florestais. Elas destroem regiões propícias à vida animal, tornando o lugar inabitável. Segundo o G1, do dia 1 de janeiro até 11 de setembro do ano passado, foi registrado um aumento de 43% das queimas. 
 O desmatamento ilegal esta presente e intenso. Muitas vezes, por se tratar de uma grande região de floresta, se torna difícil identificar e punir os infratores, que acabam desmatando uma taxa a mais que a recomendada. 
 Portanto, é preciso de uma atenção maior por parte do governo, punindo severamente os que exercem o desmatamento ilegal, além de recrutar mais soldados para vigiarem a área florestal. As indústrias desenvolverem novos materiais para servirem como matérias-primas dos seus produtos, como os recicláveis. É importante as ONGS fazerem movimentos, sejam palestras ou campanhas de conscientização da população.
 ';
 $str2 = '     
 Em virtude do contexto histórico, é visível que o desmatamento em excesso no Brasil é um desafio que já vem sendo enfrentado há muito tempo, porém, ainda existem bastante casos que afetam gravemente, colocando em desequilíbrio todo o sistema natural. 
 É fundamental avaliar o corte das árvores de grande porte na floresta Amazônica, principalmente para a criação de gado bovino e derivados da madeira extraída. O espaço preenchido e o material retirado são pontos fundamentais para os grandes fazendeiros e as indústrias em meios econômicos. 
 As queimadas são usadas para limpar áreas, muitas vezes acabam saindo de controle, gerando os incêndios florestais. Elas destroem regiões propícias à vida animal, tornando o lugar inabitável. Segundo o G1, do dia 1 de janeiro até 11 de setembro do ano passado, foi registrado um aumento de 43% das queimas. 
 O desmatamento ilegal está presente e intenso. Muitas vezes, por se tratar de uma grande região de floresta, se torna difícil identificar e punir os infratores, que acabam desmatando uma taxa a mais que a recomendada. 
 Portanto, é preciso de uma atenção maior por parte do governo, punindo severamente os que exercem o desmatamento ilegal, além de recrutar mais soldados para vigiarem a área florestal. As indústrias desenvolverem novos materiais para servirem como matérias-primas dos seus produtos, como os recicláveis. É importante as ONGS fazerem movimentos, sejam palestras ou campanhas de conscientização da população.
 ';
   $difs = get_str_difs($str1, $str2);
   //Algumas variaveis criadas para o exemplo
   $nome = 'Fulano';
   $nota = '950,00';
 $html = "
<h1>CORREÇÃO</h1>
 <h1>Tema: O DESMATAMENTO COMO PROBLEMA NO BRASIL</h1>
               <div> 
                   <img src='aluno.jpg' width='80px' height='80px' class='img'>
               </div>
               <div>
                <h3>Feito por: $nome/NOTA: $nota</h3>
                <p style='font-size:12px;'><i>Aluno do 3° ano A /  Manhã </i></p>
               </div>
<textarea class='notebook'>
".$difs['new']."
</textarea>
    <footer>
        <p><b>&copy;Minha Redação Nota Mil </b></p>
    </footer>
 " ;
  $mpdf=new mPDF(); 
 $mpdf->SetDisplayMode('fullpage');
 $css = file_get_contents("css/estilo.css");
 //imprime no pdf as informações.
 $mpdf->WriteHTML($css,1);
 $mpdf->WriteHTML($html);
 $mpdf->Output();

 exit;
 ?>
Spoiler

 

 

Vou deixar aqui as imagens de como está fincando o pdf com as quebras de páginas. Alguma ideia de como arrumar

 

1a.png

2a.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, amigo.

 

saudações...

 

Verificando seu código acima que postou, não encontrei essa função:  $mpdf->AddPage();

 

Observação: todo o $mpdf->writeHtml() que você mandar depois do $mpdf->AddPage() vai para a página nova

 

Cesar

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.