Intereting Posts
как активировать динамическое расширение SOAP, CURL, OPENSSL? Как запускать скрипт PHP, если сервер вызывает его PHP, получающий месячные даты и размещение в массиве Существуют ли чистые виртуальные функции в PHP, например, с C ++ Yii Помните меня функциональность? Regex найти ссылку Youtube в строке Как получить объект Builder из строк, связанных с точкой поворота – Laravel preg_match_all () – проблема с получением строки для соответствия в цикле foreach Symfony. Почему моя форма получает каждый ответ, который существует в таблице? Запрос MySQL возвращает нежелательные строки при извлечении строк на основе конкретных комбинаций тегов $ db = new PDO ("mysql: host = $ host; db_name = $ db_name", $ user, $ pass); сохранить изображение из URL-адреса, а затем сохранить его в каталог php Другой вопрос, связанный с циклом php-массива Зачем нам нужен «возврат истины» к этому методу? Связывание php-формы с databse

Как обосновать текст в fpdf

мы делаем отчет в PDF с помощью FPDF. мы получаем текст в нашем pdf-отчете, используя $pdf->WriteHTML(utf8_decode($main)); , теперь мы хотим оправдать текст в отчете, но мы не можем сделать то же самое.

Пожалуйста, предложите решение для этого.

Благодаря!

В этом уроке вы узнаете, как обосновать с помощью WriteHTML .

http://www.fpdf.org/en/script/script41.php

демонстрация

Код:

 <?php require('fpdf.php'); class PDF_HTML extends FPDF { var $B=0; var $I=0; var $U=0; var $HREF=''; var $ALIGN=''; function WriteHTML($html) { //HTML parser $html=str_replace("\n",' ',$html); $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE); foreach($a as $i=>$e) { if($i%2==0) { //Text if($this->HREF) $this->PutLink($this->HREF,$e); elseif($this->ALIGN=='center') $this->Cell(0,5,$e,0,1,'C'); else $this->Write(5,$e); } else { //Tag if($e[0]=='/') $this->CloseTag(strtoupper(substr($e,1))); else { //Extract properties $a2=explode(' ',$e); $tag=strtoupper(array_shift($a2)); $prop=array(); foreach($a2 as $v) { if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3)) $prop[strtoupper($a3[1])]=$a3[2]; } $this->OpenTag($tag,$prop); } } } } function OpenTag($tag,$prop) { //Opening tag if($tag=='B' || $tag=='I' || $tag=='U') $this->SetStyle($tag,true); if($tag=='A') $this->HREF=$prop['HREF']; if($tag=='BR') $this->Ln(5); if($tag=='P') $this->ALIGN=$prop['ALIGN']; if($tag=='HR') { if( !empty($prop['WIDTH']) ) $Width = $prop['WIDTH']; else $Width = $this->w - $this->lMargin-$this->rMargin; $this->Ln(2); $x = $this->GetX(); $y = $this->GetY(); $this->SetLineWidth(0.4); $this->Line($x,$y,$x+$Width,$y); $this->SetLineWidth(0.2); $this->Ln(2); } } function CloseTag($tag) { //Closing tag if($tag=='B' || $tag=='I' || $tag=='U') $this->SetStyle($tag,false); if($tag=='A') $this->HREF=''; if($tag=='P') $this->ALIGN=''; } function SetStyle($tag,$enable) { //Modify style and select corresponding font $this->$tag+=($enable ? 1 : -1); $style=''; foreach(array('B','I','U') as $s) if($this->$s>0) $style.=$s; $this->SetFont('',$style); } function PutLink($URL,$txt) { //Put a hyperlink $this->SetTextColor(0,0,255); $this->SetStyle('U',true); $this->Write(5,$txt,$URL); $this->SetStyle('U',false); $this->SetTextColor(0); } } ?> 

Применение:

 <?php require('WriteHTML.php'); $pdf=new PDF_HTML(); $pdf->AddPage(); $pdf->SetFont('Arial'); $pdf->WriteHTML('You can<br><p align="center">center a line</p>and add a horizontal rule:<br><hr>'); $pdf->Output(); ?> 

Используйте скрипт форматирования на основе тегов . Я не использую класс PDF_HTML, таким образом, только «грязное» решение:

 <?php require('fpdf.php'); class PDF_HTML extends FPDF { ... elseif($this->ALIGN == 'center') $this->Cell(0,5,$e,0,1,'C'); elseif($this->ALIGN == 'justify') { //$this->SetStyle("p","arial","N",7,"0,0,0"); //TODO $this->WriteTag(180, 11, $e, 0, "J");// TODO parameters } else ... } class PDF_WriteTag extends PDF_HTML { ... } ob_start(); // TODO delete after correcting any errors (only for demo) $pdf = new PDF_WriteTag(); $pdf->AddPage(); $pdf->SetFont('Arial'); $pdf->WriteHTML('You can<br><p align="center">center a line</p>and add a horizontal rule:<br><hr>'); $pdf->WriteHTML('You can<br><p align="justify">Et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque vitae erat. Vivamus porttitor cursus lacus. Pellentesque tellus. Nunc aliquam interdum felis. Nulla imperdiet leo. Mauris hendrerit, sem at mollis pharetra, leo sapien pretium elit, a faucibus sapien dolor vel pede. Vestibulum et enim ut nulla sollicitudin adipiscing. Suspendisse malesuada venenatis mauris. Curabitur ornare mollis velit. Sed vitae metus. Morbi posuere mi id odio. Donec elit sem, tempor at, pharetra eu, sodales sit amet, elitCurabitur urna tellus, aliquam vitae, ultrices eget, vehicula nec, diam. Integer elementum, felis non faucibus euismod, erat massa dictum eros, eu ornare ligula tortor et mauris. Cras molestie. </p>and add a horizontal rule:<br><hr>'); ob_clean(); //TODO delete after correcting any errors $pdf->Output();