Недавно он помог своему коллеге с функцией экспорта PDF. Он выбрал dompdf и нашел в нем несколько маленьких дырочек. Просто запишите, что произошло и как это решить 1. Китайские иероглифы не поддерживаются В начале, я обнаружил , что до тех пор, пока все китайские иероглифы были изменены, проверил это и обнаружил, что это проблема поддержки шрифтов. Нашел относительно надежный способ, скачал и установил шрифт, но обнаружил, что он бесполезен. В соответствии с требованиями к содержанию ссылки я проверил, что во всех местах не было проблем, но это не сработало. Наконец, я попытался изменить файл dompdf ﹣ семейство шрифтов ﹣ кэш. php, а также семейство шрифтов dompdf ﹣ cache.dist.php. После модификации проблема была решена гладко, и китайские иероглифы могли отображаться нормально.
2. Сгенерированный PDF-файл очень велик. Еще одна проблема возникла после нормального отображения китайских иероглифов. Я сгенерировал три страницы PDF, но размер файла достиг 3,9 м. После того, как все фотографии были удалены, осталось 3,6 м. После проверки я обнаружил, что проблема все еще была в китайских иероглифах. Я выбрал шрифт песни, и размер шрифта шрифта песни достиг 6,69 м. Похоже, что при создании PDF файлы шрифтов будут встроены вместе. Затем я начал искать файлы со сверхмалыми шрифтами и вернул проблему автору на GitHub, спросив, есть ли какие-либо параметры для решения проблемы. Наконец, мы нашли более подходящий шрифт, основатель супер полужирный черный упрощенный, 1,6 м, и сгенерировали 7 страниц PDF, что составляет менее 2 м, но это все еще слишком большой размер и может достигать сотен К с tcpdf. Позже автор ответил, что есть параметр, который не указан в документе. Это называется включить подмножество шрифтов, включено ли подмножество шрифтов. Подмножество шрифтов использует только шрифт, существующий в PDF, для повторного создания шрифта. Для любого идеографического языка с большим количеством подмножеств символов можно сэкономить большое количество места. (жаль, что в документе нет фотографии.)
$dompdf = new Dompdf()
$dompdf->set_option('isFontSubsettingEnabled', true);С добавлением этого параметра размер файла 7 страниц PDF уменьшается до 729 кб.
3. Добавить номер страницы Этот метод был найден и изменен в overstackflow,
$pdfManager = new DOMPDF();
$pdfManager->loadHtml($html);
$pdfManager->render();
$canvas = $pdfManager->get_canvas();
$footer = $canvas->open_object();
$w = $canvas->get_width();
$h = $canvas->get_height();
$canvas->page_text($w-60,28," {PAGE_NUM} / {PAGE_COUNT}", '',12);
$canvas->close_object();
$canvas->add_object($footer,"all");
return $pdfManager->stream();
$$html-это HTML-код, который должен вступить в силу после его передачи
4. совместимость Из-за использования холодного шрифта PDF не может отображать китайские иероглифы после выхода из Windows. Это может быть решено только с помощью более часто используемого китайского шрифта. Шрифт песни может отображаться одновременно в Windows/MAC/IOS/Android. Этот вопрос был поднят на GitHub. Если у автора будет ответ, я вернусь и буду продолжать обновлять