zegomes 0 Denunciar post Postado Março 4, 2015 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
zegomes 0 Denunciar post Postado Março 4, 2015 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