Ir para conteúdo

POWERED BY:

Arquivado

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

zegomes

ezPDF relatório com alinhamento FULL utf8

Recommended Posts

Caros colegas,

Estou com um problema que já estou arrancando os cabelos:

 

Estou gerando o contrato dos clientes através de um sistema em PHP usando ezPDF. O relatório tem vários parágrafos justificados "full".

 

O que ocorre é que se eu não usar nenhum carácter acentuado, o texto é justificado certinho na direita e na esquerda. Já ao usar caracteres acentuados, o ezPDF não calcula a margem direita corretamente. Fica uma bagunça, alguma linhas não chega até a margem e outras passam da margem.

 

Utilizo o PHP e o ezPDF em uma máquina debian.

 

Alguém de vocês já tiveram esse problema? Como resolveram?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse código de testes ilustra bem o problema:

<?php
include 'pdf/src/Cezpdf.php';

$cm = 28.3465; // um centímetro em pontos

$pdf = new CezPDF('a4', 'portrait', 'none', null);
$pdf->ezSetMargins(3*$cm, 2*$cm, 3*$cm, 2*$cm); // sup, inf, esq, dir
$pdf->setStrokeColor(0.4, 0.4, 0.4); // setar a cor do retangulo 
$pdf->rectangle($pdf->ez['topMargin'], $pdf->ez['leftMargin'], $pdf->ez['pageWidth']-$pdf->ez['leftMargin']-$pdf->ez['rightMargin'], $pdf->ez['pageHeight']-$pdf->ez['topMargin']-$pdf->ez['bottomMargin']);
$pdf->ezStartPageNumbers(565, 1.55*$cm, 11,"right", "<i>Página {PAGENUM} de {TOTALPAGENUM}</i>");

$pdf->selectFont("Helvetica");

// esse texo não contem caracteres especiais e fica alinhado corretamente
$pdf->ezText("Um rapaz ouviu o chamado e ligou para a policia. <b>Por volta das 20 horas o Corpo de Bombeiros chegou ao local e tentou destravar as portas, sem sucesso. </b>Em seguida, eles acionaram a gerencia do banco e, como o idoso nao estava passando mal, decidiram esperar para que o gerente abrisse a porta. Cerca de 15 minutos depois de ser acionado, o gerente chegou e libertou o idoso. Ja do lado de fora da agencia, Ele afirmou que vai processar o banco. \"Foi um sufoco danado, muito desagradavel. O ar condicionado estava desligado, senti muito calor\", contou.", 12, ["justification" => "full"]);

$pdf->ezSetDy(-40);

// com caracteres especiais o alinhamento se perde. os cálculos do ezPDF ficam errados
$pdf->ezText("Um rapaz ouviu o chamado e ligou para a polícia. <b>Por volta das 20 horas o Corpo de Bombeiros chegou ao local e tentou destravar as portas, sem sucesso.</b> Em seguida, eles acionaram a gerência do banco e, como o idoso não estava passando mal, decidiram esperar para que o gerente abrisse a porta. Cerca de 15 minutos depois de ser acionado, o gerente chegou e libertou o idoso. Já do lado de fora da agência, Ele afirmou que vai processar o banco. \"Foi um sufoco danado, muito desagrádavel. O ar condicionado estava desligado, senti muito calor\", contou.", 12, ["justification" => "full"]);

$pdf->ezStream(array('compress'=>0));
?>

O resultado (PDF gerado) pode ser visto aqui:

 

https://drive.google.com/open?id=0B3xjQ8l5hUgBOE94NnJYcFU4bEk&authuser=0

 

Abraços,

zegomes :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.