Пользовательские шрифты для DOMPDF

Я использую DOM PDF 0.6.0 Beta 2. Я хочу использовать пользовательские шрифты (шрифты: «Segeo Print», «Lucida Handwriting», «Самолеты в ночном небе») в файле PDF.

Я следовал инструкциям по установке и использованию шрифтов в моем PHP-коде, который приведен здесь http://code.google.com/p/dompdf/wiki/CPDFUnicode

Но я не могу получить желаемые шрифты в моем PDF-файле. Вы можете найти мой код в этом посте. Пожалуйста, дайте мне знать, как я могу решить эту проблему.

<?php     
    require_once("dompdf_config.inc.php");

   $html = "<html>
                <head>   
                    <meta http-equiv='Content-Type' content='text/html;charset=utf-8'>
                    <style>
                        *{font-size:15px;}  
                        div.ClJ{font: nightsky;}   
                    </style>      
                </head>
                <body>            
                   <div class='ClJ'>This text is in DIV Element</div><br /><br />
                </body>
          </html>";

    $dompdf = new DOMPDF();    
    $dompdf->load_html($html);
    $dompdf->render();
    $pdf = $dompdf->output();
    $dompdf->stream("dompdf_out.pdf", array("Attachment" => false));

?>    

person pinaldesai    schedule 25.09.2012    source источник
comment
Если вы все еще находитесь на бета-версии 2, попробуйте перейти на бета-версию 3. Она лучше поддерживает пользовательские шрифты, теперь поддерживает подстановку шрифтов и имеет более простой механизм загрузки шрифтов (необходимо обновить инструкции, чтобы отразить эти изменения. ).   -  person BrianS    schedule 25.09.2012
comment
К вашему сведению, ваш код выглядит нормально, поэтому, вероятно, проблема с самим шрифтом (например, шрифт не загрузился правильно).   -  person BrianS    schedule 25.09.2012
comment
Спасибо за комментарий. Попробуем перейти на бета-версию 3, посмотрим, что получится.   -  person pinaldesai    schedule 28.09.2012


Ответы (3)


  1. перейдите в папку DOMPDF
  2. скопируйте свой шрифт как .ttf (TrueType Font) или .otf (OpenType Font) в корень DOMPDF
  3. open your command line and run
    php load_font.php your_fonts_name ./your-normal.ttf ./your-bold.ttf ./your-bold-italic.ttf
  4. DOMPDF now created Adobe Font Metrics and copied it to lib/fonts/* - you can now use it with
    font-family: your_fonts_name;
person Ueli    schedule 05.08.2013
comment
@ueli: Я не устанавливал, а просто копировал вставленный dompdf. как мне сделать? - person logan; 22.06.2014
comment
Я думаю, что после второго имени файла есть запятая, которая может вызвать ошибку, код должен быть: php load_font.php your_fonts_name ./your-normal.ttf ./your-bold.ttf ./your-bold-italic.ttf - person Macumbaomuerte; 01.10.2014
comment
У меня это не работает. Вытащил свежую версию с github (github.com/dompdf/dompdf). При запуске команды получаю: Warning: require_once(/Users/me/Downloads/dompdf-master/lib/php-font-lib/classes/Font.php): failed to open stream: No such file or directory in /Users/me/Downloads/dompdf-master/dompdf_config.inc.php on line 332 - person FooBar; 17.03.2015
comment
@Kannu, почему это неуместно? - person Ueli; 13.07.2015
comment
@Mattias и все, кто извлекает DOMPDF из github. Вы должны инициализировать и обновить подмодули. Вот почему вы получили ошибку «файл не найден» git submodule init && git submodule update - person Chris Gibb; 29.01.2016
comment
ответ не работает для инсталляции DomPDF на основе композитора. Кроме того, это неправильный способ изменить основной каталог - person Bhumi Shah; 02.01.2018

вы можете добавить шрифт css:

@font-face {
    font-family: new_font;
    src: url('my_font.ttf');
}

и тогда

div.ClJ{
    font-family: new_font; 
}
person chokrijobs    schedule 25.09.2012
comment
Я не думаю, что это аксессуар, поскольку я уже установил шрифты для DOM PDF, а определение шрифтов уже доступно в файле dompdf_font_family_cache.dist - person pinaldesai; 25.09.2012
comment
где мне хранить эту часть css? - person logan; 22.06.2014

Если вы хотите установить пользовательские шрифты на сервер без интерфейса на основе команд, вы можете использовать следующую веб-модель для установки пользовательских шрифтов.

  1. Загрузите ejaz.php с здесь
  2. Поместите этот файл в корень dompdf и следуйте написанной в нем инструкции

нет необходимости в корневом или командном / терминальном доступе

person Ejaz47    schedule 05.01.2016