html2pdf не полностью конвертирует арабский язык, а RTL немного испорчен

Я использую html2pdf и передаю $this->renderpartial('view',array(..),true) в $content.

Вот код:

$content = $this->renderpartial('view',array(..),true);     
$html2pdf = new HTML2PDF('P','A4','en');
$html2pdf->pdf->SetDisplayMode('real');
$html2pdf->WriteHTML($content);
$html2pdf->Output('/var/www/myapp/images/example.pdf','F');

Представление объявляет шрифт otf.. который я успешно импортировал в tcpdf с помощью онлайн-конвертера.

Но в выводе pdf есть какие-то арабские, но какие-то буквы и странно английские буквы в квадратики. Хуже то, что хотя в моем html есть директива RTL.. некоторые части документа все еще в LTR.

У меня есть выходной html, если вам нужно его увидеть.. без бита html2pdf.. прямо из $this->renderpartial. Если нужно, вставлю или прикреплю как картинку.


person omar-ali    schedule 09.12.2013    source источник
comment
помните, что вам нужен полный html в вашем представлении, который обрабатывается renderParialed, например html, открывающий тег окончания и тела и...   -  person Developerium    schedule 09.12.2013
comment
Все, что там есть. внутри, но об этом в любом случае позаботится renderpartial, верно?   -  person omar-ali    schedule 09.12.2013
comment
Очевидно, html2pdf не поддерживает арабский язык. См. эту тему stackoverflow.com/questions/12647917 /   -  person Joe Miller    schedule 09.12.2013
comment
html2pdf полагается на tcpdf.. tcpdf поддерживает арабский язык.. Я просмотрел эту ветку, и в ней запутанно сказано, что да, html2pdf должен поддерживать арабский язык.. Я получаю много арабских букв в выводе.. ирония в том, что английский материал не выходит и несколько других букв ... может быть, мой файл шрифтов не подходит?   -  person omar-ali    schedule 09.12.2013


Ответы (2)


html2pdf поддерживает арабский язык, который я использую. Вы должны указать шрифт в теге страницы и обернуть остальную часть вашего HTML-кода внутри тега.

<page backtop="10mm" backbottom="20mm" backleft="20mm" backright="20mm" style="font-family: dejavusans">

#rest of HTML code here

</page>

person Kal    schedule 04.06.2015

Хорошо, значит нет проблем. Просто шрифт, который я использовал, не был полностью преобразован в нужный формат tcpdf. Отсутствуют некоторые символы, в том числе английский набор символов.

Я попробовал использовать другой арабский шрифт, и все заработало.

Это важно: html2pdf поддерживает utf-8 из коробки при использовании с библиотекой tcpdf.

person omar-ali    schedule 09.12.2013