Battisti – Blog

Tecnologia, Web e um pouco de cultura inútil

battisti On novembro - 25 - 2009

O Problema

Gerar arquivo pdf contendo etiquetas cujo papel não possui um tamanho padrão;

O arquivo será gerado utilizando a lib domPdf que pode ser baixada aqui.

Como resolver

Para resolver este problema você precisa no momento de criar o seu documento passar um vetor com as configurações do papel, veja o exemplo abaixo:

    require_once(SISTEMA_DIR."componente/pdf/dompdf_config.inc.php");
    spl_autoload_register('DOMPDF_autoload');
 
    $html = "O html da etiqueta";
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
 
    $papel = array(0,0,355.00,866.20);
    $dompdf->set_paper($papel, 'portrait');
 
    $dompdf->render();
    $dompdf->stream("etiqueta.pdf");
    return;

A função set_paper por padrão recebe uma string com o nome do papel porém olhando no código fonte eu vi que se for passado um vetor ele emula um novo papel com as informações passadas.

Vale lembrar que o tamanho deve ser informado em pontos e que para converter de mm para pp multiplique por 2.84!

Categories: PHP

3 Responses

  1. Alexandre Pereira Menezes disse:

    Ola, muito legal seu post. Mas estou com um problema. Toda vez que mando gerar ele gera tudo colado em cima da página, dai acaba ficando algumas coisas por cima das outras.
    Help me please!

  2. battisti disse:

    voce precisa definir as margens através de css, por exemplo

    body {margin: 30px 30px 30px 30px}

    bem simples!

  3. Carlos disse:

    Como faço para que a impressão do pdf saia a 05 px do topo do arquvo?

    Esta saindo mais ou menos dois dedos a altura do topo do papel até o inicio da impressão.

    Eu queria diminuir isso.

    Grato.

Leave a Reply