Jump to content
cunhar7

[Resolvido] Erro na formatação do dompdf

Recommended Posts

Boa noite a todos, Gostaria de saber se alguém pode me ajudar com o DomPdf. Estou utilizando como base do projeto o codeigniter e bootstrap.

Preciso Gerar um PDF com uma galeria de produtos, o problema é que não consigo forçar uma quebra de linhas. Os itens sempre aparecem um na frete do outro.

 

//controller
    public function ImprimirTrabalho(){

        #pesquisando modelo do trabalho
        $pesquisaModelo = $this->Trabalho->trabalho_layout($this->uri->segment(2));
        #passando Modelo do trabalho para a variavel modelo
        $modelo = $pesquisaModelo['0']['layout'];

        ob_start();
        $this->load->view('header_impressao');
        $this->load->view($modelo);
        $pdf = ob_get_clean();

        $this->pdf->loadHtml($pdf);
        // (Optional) Setup the paper size and orientation
        $this->pdf->setPaper('A4', '');
        // Render the HTML as PDF
        $this->pdf->render();
        // Output the generated PDF to Browser
        $this->pdf->stream("",array("Attachment" => false));


    }

produtos.png

Share this post


Link to post
Share on other sites

Boa tarde! Para quem está passando ou vai passar pela mesma dificuldade eis como solucionei. A Biblioteca DOMPF trabalha com css 2.1 e ccs 3, sendo assim a soluções rotineiras que implementamos podem nos trazer problemas no que diz respeito a posicionamento de divs e etc...

A solução para meu caso foi posicionar as divs com position: absolute; cada div ficou em uma posição especifica e realizei loops de uma pagina inteira para gerar o PDF d todas as folhas. Mais um detalhe que pode ser útil: Para criar bordas no css 2.1 o elemento border: 2px solid#000; não funciona, e necessário utilizar border: thin solid #000;

Mais um detalhe que se mostrou útil, programar o css com o pdf já renderizado, uma vez que a formatação do css é exibida de maneira diferente no hmtl por conta do css2.1. Espero ter contribuído.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Wanderson Moreira
      Opa, blz?
      Alguém me da um help?
       
      Estou criando um relatorio em PDF com o dompdf e ao adicionar algumas imagens no documento, as mesmas saem deitadas.
       
      No html as fotos saem com a orientação normal(em pé) conforme foi inserida
       
      alguém sabe o que pode ser?
    • By dutopfave
      Boa Noite Galera, estou com dúvida em como cria um cadastra de VARIAÇÕES DE PRODUTOS.

      Ex.: Tenho um produto que é um TENIS, ai nele vou criar as VARIAÇÕES, então vou usa COR e TAMANHO.
      COR: preto, verde, azul
      TAMANHO: 39, 40, 41

      até ai blz, porém a duvida é como fazer o cadastrado de combinações de cor e tênis, tipo no banco de dados teria q fica exatamente assim....

      ID | COR | TAMANHO
      ... | preto | 39
      ... | preto | 40
      ... | preto | 41
      ... | verde | 39
      ... | verde | 40
      ... | verde | 41
      ... | azul | 39
      ... | azul | 40
      ... | azul | 41

      alguém tem alguma solução
    • By Mauricio Molina
      Ola pessoal,
       
      Estou com probleminha, preciso gerar um PDF de alguns dados do BD, até consegui gerar o PDF (quando especifico o id), mas preciso que ao clicar no botão corresponde de uma lista de ordem de serviço, o PDF seja gerado de acordo com o ID da ordem de serviço.
       

       
      Botão:
      <a type="button" class="btn btn-sm btn-info" href="gerar_pdf.php?id=<?php echo $rows_cursos['id']; ?>" target="_blank" >PDF</a> Gerar PDF:
      <?php include ('pdf/mpdf.php'); include_once("../conexao/conexao.php"); //Criar a conexão $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); if(!$conn){ die("Falha na conexao: " . mysqli_connect_error()); }else{ //echo "Conexao realizada com sucesso"; } $id = '17'; //***Aqui seria onde busca o ID da Ordem de Serviço*** $result_usuario = "SELECT * FROM ordem_servico WHERE id = '$id' LIMIT 1"; $resultado_usuario = mysqli_query($conn, $result_usuario); $row_usuario = mysqli_fetch_assoc($resultado_usuario); $pagina = "<html> <body> <h2>Ordem de Serviço Eletrobrastec</h2><p></p> <strong>Empresa:</strong> Eletrobrastec                                          <strong>Data:</strong> ".$row_usuario['date']."              <strong>Número OS:</strong> ".$row_usuario['id']." <p></p> <strong>Edereço:</strong> Rua Santo Agostinho, 860            <strong>Bairro:</strong> Caiçara        <strong>Cidade:</strong> Praia Grande       <strong>UF:</strong> SP <p></p> <strong>CNPJ:</strong> 288.880.270/0018-1         <strong>DD:</strong> 13         <strong>Telefone:</strong> 99757-6400 <hr> <h2>Dados do Cliente</h2> <p></p> <strong>Nome:</strong> ".$row_usuario['nome']."                                          <strong>Data Execução:</strong> _______________________ <p></p> <strong>DD:</strong> ".$row_usuario['dd']."                       <strong>Telefone:</strong> ".$row_usuario['telefone']."               <strong>E-mail:</strong> ".$row_usuario['email']." <p></p> <strong>CPF:</strong> ".$row_usuario['cpf']."               <strong>CNPJ:</strong> ".$row_usuario['cnpj']." <p></p> <strong>Aparelho:</strong> ".$row_usuario['aparelho']."                 <strong>Modelo:</strong> ".$row_usuario['modelo']."                  <strong>Defeito:</strong> ".$row_usuario['defeito']." <p></p> <strong>Taxa:</strong> _______________________                       <strong>Valor Total:</strong> ".$row_usuario['v_total']." <p></p> <strong>Descrição Serviço:</strong> ".$row_usuario['desc_servico']." <p></p><p></p><p></p><p></p><p></p><p></p><p></p> <strong>Observações:</strong> _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ <p></p><p></p><p></p><p></p> <label>*A taxa de visita apenas será cobrada caso o cliente não realize o serviço, caso não queira e posteriormente venha realizar, a mesma será descontada.<label> </body> </html> "; $arquivo = "ordemservico.pdf"; $mpdf = new mPDF(); $mpdf->WriteHTML($pagina); $mpdf->Output($arquivo, 'I'); // I - Abre no navegador // F - Salva o arquivo no servido // D - Salva o arquivo no computador do usuário ?> Neste caso percebem que esta sendo gerado um PDF com a ordem de serviço de ID 17, tudo correto, porem gostaria que neste item, fosse gerado de acordo com o botão clicado.
       
      $id = '17'; //***Aqui seria onde busca o ID da Ordem de Serviço*** $result_usuario = "SELECT * FROM ordem_servico WHERE id = '$id' LIMIT 1"; $resultado_usuario = mysqli_query($conn, $result_usuario); $row_usuario = mysqli_fetch_assoc($resultado_usuario);  
      Alguém pra dar uma força?
       
      Obrigado!
       
       
    • By Kefatif
      Prezados, bom dia.
       
      Tenho uns um sistema com uns relatórios em PDF na pasta do meu domínio onde chamo pelo comando abaixo:

                 
      <div class="row">             <div class="col-md-4 img-portfolio">                 <a href="relatorios/teste.pdf" target="_blank">                 <img class="img-responsive img-hover" src="../img/jan-700x400.jpg" alt=""></a><h3>                 <center><a href="relatorios-teste/relatorios-producao.php">Janeiro/2021</a></center></h3>             </div>  
      Mas se uma pessoa acessar o PDF, copiar o link e enviar para uma outra pessoa que não tem acesso ao sistema, essa pessoa não autorizada terá acesso a esses relatórios, existe alguma forma para restringir esse acesso?
       
      Uso a autenticação da seguinte forma.
       
      Arquivo "Autenticação":
       
      <?php session_start(); //se não(!) existir a sessao login if(!isset($_SESSION["nome"])){ session_destroy(); $msg = "Acesso negado!"; header("location:../login.php?msg=".$msg); }elseif( $_SESSION["perfil"] != 'relatorios' ){ $msg = "Acesso negado!"; header("location:../painel.php?msg=".$msg); } ?>  
       
      Agradeço a todos desde já.
    • By Diego Tolentino
      Fala Galera!! procuro uma solução a tempos para um leitor de pdf que leia pdf com mídias (no meu caso vídeos).
       
      Tenho um ebook em pdf que preciso disponibilizá-lo online, porém esse pdf contem um vídeo e não roda apenas com os navegadores normais. 
       
      A solução não poderia ser através de plugin ou apps, pois preciso que as pessoas que acessarem esse ebook abram sem maiores dificuldades.
       
      Eu já uso um leitor em javaScript, o PDF.js mas ele não lê o video
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.