использовать шрифт в документе, сгенерированном mPDF

Я хотел бы, чтобы вы помогли мне с этой проблемой, я имею дело в первый раз с mPDF, который я думаю, что это здорово, но я хочу отобразить отчет с тем же типом шрифта, что и мой веб, который в своей документации объясняет, как этого достичь, но он все еще не работает для меня. То, что я делал до сих пор:

  1. добавьте url-адрес, чтобы открыть Sans из google в мой документ, который будет сгенерированный после него,<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>.
  2. затем я добавляю файл таблицы стилей который содержит использование шрифта <link rel="stylesheet" href="<?php echo base_url(); ?>assets/publicidad/css/reporte.css" type="text/css"> Внутрь журналистам в среду представител.css, который я уже добавил, У меня есть определение для использования шрифта "Open Sans"

    тело { шрифт-семейство: 'Open Sans', sans-Serif; } который отображает шрифт, как ожидалось.

  3. я генерирую pdf с mPDF, который работает хорошо, но когда я хочу
    отображение открытых Sans в качестве документации стоит, он не показывает нужный шрифт, я загрузил файл ttfs "Open Sans" из http://www.fontsquirrel.com/fonts/open-sans, и добавил внутри папки ttfonts каталога mPDF, как говорится в его документации.


После этого я следую этой четкой документации http://mpdf1.com/manual/index.php?tid=453, но до сих пор я не получаю желаемый шрифт, отображаемый в моем PDF-документе, чего я не делал до сих пор, это часть, которая говорит "4. Чтобы использовать шрифт с определенными языками, необходимо также изменить конфигурацию файл (config_cp.php); давайте представим, что Frutiger содержит полный набор символов, необходимых для тайского языка:", но я не думаю, что это проблема, потому что я использую конфигурацию по умолчанию, которую я положил.

function pdf_create($html, $filename, $stream = TRUE) {
            require_once(APPPATH . 'helpers/mpdf/mpdf.php');
            $mpdf = new mPDF();
            $mpdf->SetAutoFont();
            $mpdf->WriteHTML($html);
            if ($stream)
            {
                $mpdf->Output($filename . '.pdf', 'D');
            }
            else
            {
                $mpdf->Output('./uploads/temp/' . $filename . '.pdf', 'F');

                return './uploads/temp/' . $filename . '.pdf';
            }
        }

и в моем контроллере я делаю это.

$html = $this->load->view('publicidad/reporte_x_curso', $data, true);
$this->load->helper('mpdf');
pdf_create($html, 'Reporte_por_cursos', true);

(вышеуказанное не распознается редактором stackverflow)

и, наконец, то, что я сделал до сих пор, что должен делать все, что я хочу, следуя документации есть:

$this->fontdata = array(
    "'Open Sans'" => array(
    'R' => 'OpenSans-Regular.ttf'
    )

PD: я поставил одинарные кавычки, потому что я добавлял таким образом в свой html-документ, но я также пытался без них, без успеха. Надеюсь, вы сможете мне помочь, заранее спасибо.

3 ответов


Примечания:

во-первых, не используйте mpdf1.com веб-сайт, он закрыт. Использовать https://github.com/mpdf/mpdf. Существуют различные коды для версии 6 и 7 )

пример (v7):

(источник)
1) Загрузите MyFont.ttf на /mpdf/ttfonts
2) в /mpdf/config_fonts.php внутри $this->fontdata массив, добавить ваш:

"my_custom_fonttt" => array( 
                    'R' => 'MyFont.ttf',            //Regular- REQUIRED
                    'I' => "MyFont-Oblique.ttf",    //Italic - OPTIONAL
                    'B' => "MyFont-Bold.ttf",       //Bold   - OPTIONAL
                    ),


3) затем, где бы вы ни выполняли свой пользовательский скрипт, используйте my_custom_fonttt в css:

<?php
$mpdf=new mPDF();
$texttt= '
    <html><head><style>
    body {font-family: "my_custom_fonttt";}
    </style></head>
    <body>My SAMPLE TEXTTTTT </body>
    </html>';
$mpdf->WriteHTML("$texttt");
$mpdf->Output(dirname(__FILE__).'/new_created_file.pdf','F');
?>

Я решил свою проблему, в определении шрифта не должно быть пробелов, поэтому я заменил объявление шрифта css на "opensans" и

$this->fontdata = array(
    "opensans" => array(
    'R' => 'OpenSans-Regular.ttf'
    )

имейте в виду, что тип шрифта ('OpenSans-Regular.ttf') должен находиться внутри папки ttfonts папки mpdf


Я столкнулся с теми же проблемами: Убедитесь, что у вас нет пробелов при определении имени шрифта, держите его в нижнем регистре.

Это сработало для меня