Relatório de html para pdf Hola a todos Tenho que imprimir um formulario de conhecimento de cargas, montei um html formatado, carrego os dados e mando abrir o html, mostra em tela beleza, mas quando mando salvar em pdf sai todo sem formatação. onde estou errando. ...
NM
Relatório de html para pdf  
Hola a todos

Tenho que imprimir um formulario de conhecimento de cargas, montei um html formatado, carrego os dados e mando abrir o html, mostra em tela beleza, mas quando mando salvar em pdf sai todo sem formatação.

onde estou errando.

<?php
<?phpclass ConhecimentoImprimirFrente extends TPage{    private $html;    public function __construct( )    {        parent::__construct();                // Carregar dados da tabela        $crt_id = TSession::getValue('id_crt');        TTransaction::open('crtmic');        $conn         = TTransaction::get();        $registro_crt = ViewConhecimentoGeral::where( 'co_id', '=', $crt_id )->load();        foreach ($registro_crt as $reg_crt)        {            $crt = new stdClass;            $crt->co_numero = $reg_crt->co_numero;                        // Remetente            $crt->reme_nm_comple = $reg_crt->reme_nm_comple;             $crt->reme_endere1   = $reg_crt->reme_endere1;            if ($reg_crt->reme_pais == 'BRASIL' )            {                $crt->reme_endere2   = trim($reg_crt->reme_cep) . ' - ' . trim($reg_crt->reme_cidade) . ' - ' . trim($reg_crt->reme_estado) . ' - ' . trim($reg_crt->reme_pais)  ;                $crt->reme_endere3   = $reg_crt->reme_endere2;                $crt->reme_endere4   = $reg_crt->reme_endere3;            }            else            {                $crt->reme_endere2   = trim($reg_crt->reme_cidade) . ' - ' . trim($reg_crt->reme_pais)  ;                $crt->reme_endere3   = $reg_crt->reme_endere2;                $crt->reme_endere4   = $reg_crt->reme_endere3;            }            $crt->reme_documento = $reg_crt->reme_documento;            // Destinatario            $crt->dest_nm_comple = $reg_crt->dest_nm_comple;             $crt->dest_endere1   = $reg_crt->dest_endere1;            if ($reg_crt->dest_pais == 'BRASIL' )            {                $crt->dest_endere2   = trim($reg_crt->dest_cep) . ' - ' . trim($reg_crt->dest_cidade) . ' - ' . trim($reg_crt->dest_estado) . ' - ' . trim($reg_crt->dest_pais)  ;                $crt->dest_endere3   = $reg_crt->dest_endere2;                $crt->dest_endere4   = $reg_crt->dest_endere3;            }            else            {                $crt->dest_endere2   = trim($reg_crt->dest_cidade) . ' - ' . trim($reg_crt->dest_pais)  ;                $crt->dest_endere3   = $reg_crt->dest_endere2;                $crt->dest_endere4   = $reg_crt->dest_endere3;            }            $crt->dest_documento = $reg_crt->dest_documento;                        // Consignatário            $crt->cons_nm_comple = $reg_crt->cons_nm_comple;             $crt->cons_endere1   = $reg_crt->cons_endere1;            if ($reg_crt->cons_pais == 'BRASIL' )            {                $crt->cons_endere2   = trim($reg_crt->cons_cep) . ' - ' . trim($reg_crt->cons_cidade) . ' - ' . trim($reg_crt->cons_estado) . ' - ' . trim($reg_crt->cons_pais)  ;                $crt->cons_endere3   = $reg_crt->cons_endere2;                $crt->cons_endere4   = $reg_crt->cons_endere3;            }            else            {                $crt->cons_endere2   = trim($reg_crt->cons_cidade) . ' - ' . trim($reg_crt->cons_pais)  ;                $crt->cons_endere3   = $reg_crt->cons_endere2;                $crt->cons_endere4   = $reg_crt->cons_endere3;            }            $crt->cons_documento = $reg_crt->cons_documento;            // A Notificar            $crt->noti_nm_comple = $reg_crt->noti_nm_comple;             $crt->noti_endere1   = $reg_crt->noti_endere1;            if ($reg_crt->noti_pais == 'BRASIL' )            {                $crt->noti_endere2   = trim($reg_crt->noti_cep) . ' - ' . trim($reg_crt->noti_cidade) . ' - ' . trim($reg_crt->noti_estado) . ' - ' . trim($reg_crt->noti_pais)  ;                $crt->noti_endere3   = $reg_crt->noti_endere2;                $crt->noti_endere4   = $reg_crt->noti_endere3;            }            else            {                $crt->noti_endere2   = trim($reg_crt->noti_cidade) . ' - ' . trim($reg_crt->noti_pais)  ;                $crt->noti_endere3   = $reg_crt->noti_endere2;                $crt->noti_endere4   = $reg_crt->noti_endere3;            }            $crt->noti_documento = $reg_crt->noti_documento;            // Transportador            $crt->transp1 = $reg_crt->transp1;            $crt->transp2 = $reg_crt->transp2;            $crt->transp3 = $reg_crt->transp3;                            // Cidades            if ($reg_crt->lpe5_pais=='BRASIL')            {                $crt->lpe5_cida = trim($reg_crt->lpe5_cida) . ' - '. $reg_crt->lpe5_esta . ' - ' . trim($reg_crt->lpe5_pais);            }            else            {                $crt->lpe5_cida = trim($reg_crt->lpe5_cida) . ' - '. trim($reg_crt->lpe5_pais);            }                         if ($reg_crt->lpp7_pais=='BRASIL')            {                $crt->lpp7_cida = trim($reg_crt->lpp7_cida) . ' - ' . $reg_crt->lpp7_esta . ' - ' . trim($reg_crt->lpp7_pais) . ' - ' . $reg_crt->co_cd_local_pais_data_data;            }            else             {                $crt->lpp7_cida = trim($reg_crt->lpp7_cida) . ' - ' . trim($reg_crt->lpp7_pais) . ' - ' . $reg_crt->co_cd_local_pais_data_data;            }                        if ($reg_crt->lppe8_pais=='BRASIL')            {                $crt->lppe8_cida = trim($reg_crt->lppe8_cida) . ' - ' . $reg_crt->lppe8_esta . ' - ' . trim($reg_crt->lppe8_pais);            }            else            {                $crt->lppe8_cida = trim($reg_crt->lppe8_cida) . ' - ' . trim($reg_crt->lppe8_pais);            }                       // Transportes sucessivos            $crt->co_transp_sucess = $reg_crt->co_transp_sucess;                                  //new TMessage('info', $reg_crt->co_numero);        }                $this->html = new THtmlRenderer('app/resources/crt_print_frente.html');        $replaces   = [];        $replaces['crt'] = $crt;                $this->html->enableSection('main', $replaces);                $panel = new TPanelGroup('crt');        $panel->add($this->html);          $panel->addHeaderActionLink('Salvar PDF', new TAction([$this, 'onSalva_PDF'], ['static'=>'1']), 'fa:save');        $panel->addHeaderActionLink('Voltar', new TAction([$this, 'onFechar'], ['static'=>'1']), 'fa:exit');                parent::add($panel);    }    public static function onFechar()    {         TApplication::loadPage('ConhecimentoForm', 'onReload');    }    public function onSalva_PDF( $param )    {        try        {            $html = clone $this->html;            $contents = file_get_contents('app/resources/styles-print.html') . $html->getContents();                        $dompdf = new \Dompdf\Dompdf();            $dompdf->loadhtml($contents);            $dompdf->setPaper('A4', 'portrait');            $dompdf->render();                        $file = 'app/output/crt_' . trim($param['co_numero']) . '.pdf';                        file_put_contents($file, $dompdf->output());                        $window        = TWindow::create('Crt', 0.8, 0.8);            $object        = new TElement('object');            $object->data  = $file;            $object->type  = 'application/pdf';            $object->style = 'width: 100%; height:calc(100% - 10px)';            $window->add($object);            $window->show();                 }        catch (Exception $e)        {            new TMessage('error', $e->getMessage());        }             }}?>






Aqui o HTML:
<?php<!--[main]--><!DOCTYPE html><html>    <link href="app/resources/styles.css" rel="stylesheet" type="text/css" media="screen" />    <head>        <style type="text/css">            @page{                margin-top: 3cm;                margin-left: 3cm;                margin-bottom: 2cm;                margin-left: 2cm;                font-family: FreeSans,Verdana,Comic Sans MS;             }                .campo_titulo{                text-align: left;                font-size: 10px;                font-family:FreeSans,Verdana,Comic Sans MS;                    font-weight: bold;                margin-top: 5px;                margin-left: 5px            }            .campo_titulo_nro{                text-align: left;                font-size: 16px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-right: 5px            }                        .campo_conteudo{                text-align: left;                font-size: 10px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-left: 5px            }            .campo_conteudo_direita{                text-align: right;                font-size: 10px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-right: 5px            }            .campo_conteudo_centro{                text-align: center;                font-size: 14px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-right: 5px            }                        .campo_titulo_nro{                text-align: left;                font-size: 16px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-right: 5px            }                .campo_titulo_rodape{                text-align: left;                font-size: 16px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-right: 5px            }                .td_padrao{                text-align: left;                                font-size: 10px;                font-family:FreeSans,Verdana,Comic Sans MS;                    margin-top: 5px;                margin-right: 5px                padding-top: 0px;                  padding-bottom: 12px;            }                    </style>        </head>    <body>        <table BORDER CELLPADDING=2 CELLSPACING=0>          <tr  width="100%" height="30">            <td colspan="3">                    <table CELLPADDING=0 CELLSPACING=0>                    <tr>                    <td width="10%" height="100%"><img src="crt_logo.png" alt="Girl in a jacket" width="100%" height="100%"></td>                    <td width="30%" height="30"><P STYLE="font-size:20px;font-family:Comic Sans MS,Verdana;margin-right: 2px;margin-left: 2px;"><b>Conhecimento de Transporte Internacional por Rodovia<br>Carta de Porte Internacional por Carretera</b></p></td>                    <td width="60%" height="30"><P STYLE="font-size:12px;font-family:Comic Sans MS,Verdana;margin-right: 3px;margin-left: 3px;text-align: justify;">O transporte realizado ao amparo deste Conhecimento de Transporte Internacional está sujeito as disposições do Convenio sobre o Contrato de        Transporte e a Responsabilidade Civil do Transportador no Transporte Terrestre Internacional de Mercadorias, as quais anulam toda estipulação        contraria as mesmas em prejuicio do remetente ou do consignatário<br>El transporte realizado bajo esta Carta de Porte Internacional está sujeto a las disposiciones del Convenio sobre el Contrato de Transporte y la        Responsabilidad Civil del Porteador en el Transporte Terrestre Internacional de Mercancias, las cuales anulan toda estipulación que se aparte de ellas        en perjuicio del remitente o del consignatario<br>        </p></td>                          </tr>                </table>            </td>                    </tr>          <tr>            <td rowspan="2" valign="top">                <P class="campo_titulo">1 - Nome e endereço do remetente / Nombre y domicilio de remitente</P>                <P class="campo_conteudo">{{crt->reme_nm_comple}}<br>                  {{crt->reme_endere1}}<br>                {{crt->reme_endere2}}<br>                {{crt->reme_endere3}}<br>                {{crt->reme_endere4}}</p>                <p class="campo_conteudo_direita">{{crt->reme_documento}}</p>            </td>                        <td valign="top">                <P class="campo_titulo">2 - Número / Número</P>                <P class="campo_conteudo_centro">{{crt->co_numero}}</P>            </td>          </tr>          <tr>            <td valign="top">                <P class="campo_titulo">3 - Nome e endereço do transportador / Nombre y domicilio del porteador</P>                <P class="campo_conteudo">{{crt->transp1}}<br>                {{crt->transp2}}<br>                {{crt->transp3}}</P>            </td>           </tr>                          <tr>            <td rowspan="2" valign="top">                <P class="campo_titulo">4 - Nome e endereço do destinatário / Nombre y domicilio del destinatário</P>                <P class="campo_conteudo">{{crt->dest_nm_comple}}<br>                {{crt->dest_endere1}}<br>                {{crt->dest_endere2}}<br>                {{crt->dest_endere3}}<br>                {{crt->dest_endere4}}</P>                <p class="campo_conteudo_direita">{{crt->dest_documento}}</p>            </td>                        <td width="50%" height="50px" valign="top">                <P class="campo_titulo">5 - Localidade e país de emissão / Lugar y país de emisión</P>                <P class="campo_conteudo">{{crt->lpe5_cida}}<br>            </td>          </tr>          <tr>            <td width="50%" height="50px" valign="top">                <P class="campo_titulo">7 - Localidade, país e data em que o transportador se responsabiliza pela mercadoria / Lugar, país y fecha en que el porteador se hace cargo de las mercancias</P>                <P class="campo_conteudo">{{crt->lpp7_cida}}</P>            </td>          </tr>                        <tr>            <td width="50%" height="50px" valign="top">                <P class="campo_titulo">6 - Nome e endereço do consignatário / Nombre y domicilio del consignatário</P>                <P class="campo_conteudo">{{crt->cons_nm_comple}}<br>                {{crt->cons_endere1}}<br>                {{crt->cons_endere2}}<br>                {{crt->cons_endere3}}<br>                {{crt->cons_endere4}}</P>                <p class="campo_conteudo_direita">{{crt->cons_documento}}</p>                        </td>                        <td width="50%" height="50px" valign="top">                <P class="campo_titulo">8 - Localidade, país e prazo de entrega/ Lugar, país y plazo de entrega</P>                <P class="campo_conteudo">{{crt->lppe8_cida}}</P>            </td>          </tr>          <tr>            <td width="50%" height="50px" valign="top">                <P class="campo_titulo">9 - Notificar a / Notificar a</P>                <P class="campo_conteudo">{{crt->noti_nm_comple}}<br>                {{crt->noti_endere1}}<br>                {{crt->noti_endere2}}<br>                {{crt->noti_endere3}}<br>                {{crt->noti_endere4}}</P>                <p class="campo_conteudo_direita">{{crt->noti_documento}}</p>                        </td>                        <td width="50%" height="50px" valign="top">                <P class="campo_titulo">10 - Transportadores sucessivos / Porteadores sucesivos</P>                <P class="campo_conteudo">{{crt->co_transp_sucess}}</P>            </td>          </tr>        </table>                <table BORDER CELLPADDING=2 CELLSPACING=0>                <tr>            <td class="td_padrao" rowspan="3" width="70%" valign="top">                <P class="campo_titulo">11 - Cantidad y clase de bultos, marca y números, tipo de mercancías, contenedores y accesorios / Quantidade e categoria de volumes, marcas e números, tipo de mercadorias, conteineres e peças</P>                <P class="campo_conteudo">(4200,000) SACOS AVEIA PARA RAÇÃO ANIMAL</p>            </td>                        <td valign="top">                <P class="campo_titulo">12 - Peso bruto em Kg / Peso bruto em Kg</P>                <P class="campo_conteudo_direita">168.420,000<br>                <P class="campo_conteudo_direita">168.000,000<br>            </td>          </tr>          <tr>            <td valign="top">                <P class="campo_titulo">13 - Volumen em m.cu. / Volume em m.cu.</P>                <P class="campo_conteudo_direita"><br>            </td>          </tr>              <tr>            <td valign="top">                <P class="campo_titulo">14 - Valor / Valor</P>                <P class="campo_conteudo_direita">FCA<br>                <P class="campo_conteudo_direita">21.336,00<br>                <P class="campo_conteudo_direita">US$<br>            </td>          </tr>            </table>        <table BORDER CELLPADDING=2 CELLSPACING=0 width="100%">                  <tr>                <td class="td_padrao" width="50%" valign="top" rowspan="2">                    <table BORDER RULES=cols width="100%" height="100%">                        <tr>                            <td class="td_padrao" width="40%" valign="top">                                <P class="campo_titulo">15 - Gastos a pagar / Gastos a pagar</P>                                <P class="campo_titulo">Frete / Flete</P>                                <p class="campo_conteudo">A.GRANDE/JAGUARÃO</p><br>                                <p class="campo_conteudo">JAGUARÃO/MELO</p><br>                                                                <P class="campo_titulo">Outros / /otros</P>                                                        </td>                                                        <td valign="top" width="20%">                                <P class="campo_titulo">Valor remetente</P>                                <P class="campo_titulo">Monto remitente</P>                            </td>                            <td valign="top" width="10%">                                <P class="campo_titulo">Moeda</P>                                <P class="campo_titulo">Moneda</P>                            </td>                                                        <td valign="top" width="20%">                                <P class="campo_titulo">Valor Destinatário</P>                                <P class="campo_titulo">Monto Destinatário</P>                                <p class="campo_conteudo_direita">540,00</p><br>                                <p class="campo_conteudo_direita">2.160,00</p>                            </td>                            <td valign="top" width="10%">                                <P class="campo_titulo">Moeda</P>                                <P class="campo_titulo">Moneda</P>                                <p class="campo_conteudo_direita">US$</p><br>                                <p class="campo_conteudo_direita">US$</p>                            </td>                        </tr>                    </table>                        <table width="100%" height="100%">                        <tr>                            <td class="td_padrao" width="50%" valign="top">                            Dois Mil e Setecentos Dolares                                </td>                        </tr>                    </table>                        <table width="100%" height="100%">                        <tr>                            <td class="campo_titulo" width="40%" valign="top">TOTAL</td>                            <td class="campo_conteudo_direita" width="20%" valign="top"><b>0,00</b></td>                            <td class="campo_conteudo_direita" width="10%" valign="top"><b></b></td>                            <td class="campo_conteudo_direita" width="20%" valign="top"><b>2.740,00</b></td>                            <td class="campo_conteudo_direita" width="10%" valign="top"><b>US$</b></td>                        </tr>                    </table>                    </td>                                <td valign="top" width="40%">                    <P class="campo_titulo">16 - Declaração do valor das mercadorias / Declaración del valor de las mercancias</P>                    <P class="campo_conteudo">FCA<br>                    US$ 15.000,00<br>                    Quinze mil dolares</p>                    </td>                          </tr>            <tr>                <td valign="top" width="50%">                    <P class="campo_titulo">17 - Documentos anexos / Documentos anexos</P>                    <P class="campo_conteudo">FACTURA COMERCIAL NRO: 165/2020<br>                    DUE NRO:</p>                </td>            </tr>        </table>        <table <table BORDER CELLPADDING=2 CELLSPACING=0 width="100%">            <tr>                <td valign="top" width="50%">                    <P class="campo_titulo">19 - Valor do frete externo / Monto del flete externo</P>                    <P class="campo_conteudo">0,00</p>                </td>                            <td valign="top" width="50%">                    <P class="campo_titulo">18 - Instrução sobre formalidades de alfândega / Instrucciones sobre formalidades de aduana</P>                    <P class="campo_conteudo">DESDE JAGUARÃO - RS - BRASIL / MELO URUGUAY</p>                </td>            </tr>                        <tr>                <td valign="top" width="50%">                    <P class="campo_titulo">20 - Valor de reembolso contra entrega / Monto de reembolso contra entrega</P>                    <P class="campo_conteudo">0,00</p>                </td>                            <td rowspan="2" valign="top" width="50%">                    <P class="campo_titulo">22 - Declaraçôes e observações / Declaraciones y observaciones</P>                    <P class="campo_conteudo">ORIGEM BRASIL / DESTINO: URUGUAY</p>                </td>            </tr>            <tr>                <td valign="top" width="50%">                    <P class="campo_titulo">21 - Nome e assinatura do remetente ou seu representante / Nombre y firma del remitente o su representante</P>                    <P class="campo_conteudo">--- x ---</p><br>                    <p class="campo_titulo" valign="bottom">Data / Fecha</p>                    </td>            </tr>            <tr>                <td valign="top">                    <p class="campo_titulo">As mercadorias consignadas neste Conhecimento de Transporte foram recebidas pelo transportadoraparentemente em bom estado, sob as condições gerais que figuram no verso<br>Las mercancías consignadas en esta Carta de Porte fueron recebidas por el porteador aparentementeen buen estado, bajo las condiciones generales que fuguran al dorso.</p>                    <P class="campo_titulo">23 - Nome, assinatura e carimbo do transportador ou seu representante / Nombre, firma y sello del porteador o su representante</P>                                    <p class="campo_conteudo_centro">COOPERATIVA DE TRANSP. AUTÔNOMO DO SUL</p>                        <p class="campo_conteudo_centro">22/04/2020</p>                    <p class="campo_titulo">Data / Fecha</p>                </td>                <td valign="top" width="50%">                    <P class="campo_titulo">24 - Nome e assinatura do destinatário ou seu representante / Nombre y firma del destinatario o su representante</P>                    <P class="campo_conteudo">--- x ---</p>                    <p class="campo_titulo" valign="bottom">Data / Fecha</p>                    </td>                            </tr>        </table>        <p class="campo_conteudo">1º Original - Aduana Partida -- Primera via alfandega de partida.</p>    </body></html><!--[/main]-->?>

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


JP

Estou enfrentando o mesmo problema. O HTML está perfeito, porém o PDF ficar totalmente desconfigurado.