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 Guilherme Morete Felix
      Olá,
      Estamos upando arquivos em nossa plataforma via moodle, como base de regra, tais arquivos são em formato pdf.
      Temos como objetivo que o aluno apenas abra e visualize o documento, porém não consiga fazer o download, cópia, impressão ou algo no sentido mencionado.
      Caso não seja possível, uma saída secundária seria permitir a impressão dos arquivos com o cpf do aluno e um termo de compromisso como marca d'água.
      Alguém poderia me relatar se essas alternativas são possíveis, quais são as possibilidades e se alguma pessoa pode ajudar nesse aspecto? Desde já, muito obrigado!
    • By helkton
      oi galera, como criar uma listagem de mesas disponíveis ou produtos cadastrados pra uma lanchonete e restaurante
       
      tipo esta imagem abaixo no caso é de um hotel, mais o esquema seria o mesmo, só mudando o ramo de atividade rsss
       

    • By helkton
      galera minha duvida é a seguinte....
      faço a seguinte busca e monto um pdf pra um certificado, e neste certificado preciso coletar todas as materias referente ao curso do mesmo
      $sqlConteudoCurso = "SELECT * FROM conteudo_curso where idCursoConteudo = '$idCurso' order by idConteudo ASC; $conectaConteudoCurso = $conecta->query($sqlConteudoCurso); //conteudoCurso $pdf->SetFont('Arial', '', 11); // Tipo de fonte e tamanhos $pdf->SetTextColor(10,15,35); $pdf->SetXY(10,75); //Parte chata onde tem que ficar ajustando a posição X e Y while($resultConteudoCurso = $conectaConteudoCurso->fetch_object()){ $conteudoCurso = $resultConteudoCurso->nomeConteudo; $pdf->MultiCell(75, 5, $conteudoCurso,'0', 'L', 0);// Tamanho width e height e posição } ok esta é a consulta que realizo no banco de dados ele me retorna a materia referente ao curso certinho, digamos que o curso tenha umas 20 matérias, ele vai imprimir certinho conforme as configurações de espaçamentos...
      AGORA O B.O é seguinte quando o curso acontece de ter tipo umas umas 40 MATÉRIAS ele acaba gerando outra página de pdf
      o que eu queria era que não gerasse outra pagina e sim partisse para o lado direito, pois é um certificado
      TIPO ASSIM....
      MATERIA 1 DO CURSO 1 MATERIA 11 DO CURSO 1 MATERIA 2 DO CURSO 1 MATERIA 12 DO CURSO 1 MATERIA 3 DO CURSO 1 MATERIA 13 DO CURSO 1 MATERIA 4 DO CURSO 1 MATERIA 14 DO CURSO 1 MATERIA 5 DO CURSO 1 MATERIA 15 DO CURSO 1 MATERIA 6 DO CURSO 1 MATERIA 16 DO CURSO 1 MATERIA 7 DO CURSO 1 MATERIA 17 DO CURSO 1 MATERIA 8 DO CURSO 1 MATERIA 18 DO CURSO 1 MATERIA 9 DO CURSO 1 MATERIA 19 DO CURSO 1 MATERIA 10 DO CURSO 1 MATERIA 20 DO CURSO 1  
    • By helkton
      oi galera estou criando um sistema para gerenciar certificado de uma escola de cursos ja fiz as condições, pra bloquear conforme as horas aulas, conforme pagamentos, agora estou preso no certificado fPDF
      consegui desenhar a primeira pagina mais o certificado precisará imprimir algumas informações no verso tbm como desenhar a segunda pagina do certificado??
      ja AddPage(), ele adiciona a nova pagina mais como desenhar nesta pagina?? atualmente consegui fazer assim, desenho os 2 pdf separado, tipo clico em um botãoFrente e pego as info da frente do certificado e outro para imprimir apenas a parte do verso rsss
      como juntar tudo e imprimir a frente e o verso
      //***** PDF *****// $pdf = new AlphaPDF(); // Orientação Landing Portraid Page /// $pdf->AddPage('L'); $pdf->SetLineWidth(1.5); // desenha a imagem do certificado $pdf->Image('certificadoBM.jpg',0,0,295); // opacidade total $pdf->SetAlpha(1); // Mostrar texto no topo $pdf->SetFont('TwClassified', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(109,46); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $texto1, '', 'L', 0); // Tamanho width e height e posição //Nome_do_Aluno $pdf->SetFont('Arial', '', 30); // Tipo de fonte e tamanho $pdf->SetXY(20,90); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $nomeAluno, '', 'C', 0); // Tamanho width e height e posição // Mostrar o corpo $pdf->SetFont('Arial', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(20,110); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $texto2, '', 'C', 0); // Tamanho width e height e posição // Mostrar a data no final $pdf->SetFont('Arial', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(20,172); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(165, 10, $texto3, '', 'L', 0); // Tamanho width e height e posição $pdfdoc = $pdf->Output('', 'S'); // $certificado="arquivos/$nomeAluno.pdf"; //atribui a variável $certificado com o caminho e o nome do arquivo que será salvo (vai usar o CPF digitado pelo usuário como nome de arquivo) // $pdf->Output($certificado,'F'); //Salva o certificado no servidor (verifique se a pasta "arquivos" tem a permissão necessária) // Utilizando esse script provavelmente o certificado ficara salvo em www.seusite.com.br/gerar_certificado/arquivos/999.999.999-99.pdf (o 999 representa o CPF digitado pelo usuário) $pdf->Output(); // Mostrar o certificado na tela do navegador  
    • By Overtron8000
      Ola galera, estive fazendo um app simples de impressao de formulario usando o ireport mas não estou conseguindo passar os parametros do formulario para o documento jmxl ja tentei de toda forma mas simplesmente esta caindo no catch e saindo sem criar o arquivo.
      private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { HashMap parametros = new HashMap(); parametros.put("fornecedor", fornecedortF.getText()); parametros.put("ncontrato", ncontratoF.getText()); String caminhoRelJasper = "geradorcontrato/relatorio.jrxml"; InputStream fonte = this.getClass().getClassLoader().getResourceAsStream(caminhoRelJasper); try { JasperReport report = JasperCompileManager.compileReport(fonte); JasperPrint print = JasperFillManager.fillReport(report,parametros, new JREmptyDataSource()); JasperExportManager.exportReportToPdfFile(print,"teste.pdf"); System.out.println("imprimiu"); }catch(JRException e){ System.out.println("caiu no catch");} System.out.println("saiu"); } Dai era para esses parametros do map irem pro jxml nao estao indo, nem cria um novo pdf na pasta.
      link do projeto: https://github.com/regis404/Gerador-de-Contratos
×

Important Information

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