# 安装字体,解决中文乱码
参考: https://blog.51cto.com/lampzxr/1916038
```
首先下载composer curl -sS https://getcomposer.org/installer | php 下载dompdf包 php composer require dompdf/dompdf 下载load_font.php,此文件的功能是安装中文字体 1.git clone https://github.com/dompdf/utils.git 2. 复制 load_font.php到 dompdf目录中,与lib 和 src 目录同级。 下载中文字体,推荐下载 Droid Sans Fallback 字体,也可用雅黑字体,【雅黑字体会导致导出文档过大】 下载链接【http://www.17ziti.com/info/71250.html】 安装字体,将字体传到服务器目录下,运行load_font.php php load_font.php 'Droid' /data/DroidSansFallback.ttf。 运行后,若没报错,则在 vendor/dompdf/dompdf/lib/fonts/下生了 Droid.ttf,Droid.ufm 这两个文件。 在PHP代码中设置中文字体
<?php
require 'vendor/autoload.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$html=
<<<HTML
<html>
<head>
</head>
<body>
<!-- font-family:yahei; china-->
<div style="font-family:Droid; color: #f00;font-size: 14px"> 中文123 </div>
</body>
</html>
HTML;
$html = iconv('gb2312','utf-8',$html);
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();
注意 CSS 样式中的 font-family 设置为 之前运行load_font.php中设置的字体名。
``` # 解决中文换行问题
修改文件: dompdf/dompdf/src/FrameReflower/Text.php
找到关键字: // split the text into words
```php
$words = preg_split('/([\s-]+)/u', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
$wc = count($words);
```
修改为
```php
preg_match_all('/./u', $text, $array);
$words = $array[0];
$wc = count($words);
```

[PHP] dompdf 使用记录的更多相关文章

  1. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  2. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  3. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  4. 2015 西雅图微软总部MVP峰会记录

    2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...

  5. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  6. 我是如何在SQLServer中处理每天四亿三千万记录的

    首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...

  7. 前端学HTTP之日志记录

    前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两 ...

  8. ASP.NET Core应用中如何记录和查看日志

    日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...

  9. python+uwsgi导致redis无法长链接引起性能下降问题记录

    今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...

随机推荐

  1. spring-mvc.xml 和 application-context.xml的配置与深入理解

    在java框架这个话题,前几篇文章是基于搭建ssm项目框架,以及web.xml的配置讲解,本篇主要就ssm框架的其他配置文件进行深入讲解,他们分别是:1.application-context.xml ...

  2. Java 执行

    java -cp****.jar ****.****.className [args] linux 下 -cp 参数使用 : 分割 一般都是 .:lib/* windows 下使用 ; 分割

  3. python函数 | 三元运算

    三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式: [on_true] if [expression] else [on_false] 三元运算只适用于简单的if else判断,再多一层 ...

  4. Android 系统Action大全

    常用Action说明: String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式.. “android.intent.action.ADD_SHORTCUT” String ...

  5. STL next_permutation 全排列

    调用方法: ]={,,,}; )){ ;i<;i++) printf("%d ",arr[i]); puts(""); } 测试效果: 注:可以看到1 2 ...

  6. 【题解】洛谷 P1449 后缀表达式

    目录 题目 思路 \(Code\) 题目 P1449 后缀表达式 思路 栈.题目说的不是很清楚,没说包含什么操作.除法用整数除法就行. 先string读入字符串,然后从前往后看如果是个数字就入栈,如果 ...

  7. PKUSC2019滚粗记

    PKUSC2019滚粗记 Day -INF 在\(\text{APIO}\)时得知省选考崩的自己居然能参加\(\text{SC}\),真是非常意外啊. Day 0 上午机房充斥着放假的气息,居然还成功 ...

  8. lintcode-828. 字模式

    题目描述: 828.字模式 给定一个模式和一个字符串str,查找str是否遵循相同的模式.这里遵循的意思是一个完整的匹配,在一个字母的模式和一个非空的单词str之间有一个双向连接的模式对应. 样例 给 ...

  9. ArrayMap和HashMap区别

    什么是Map? Map的三个特点 1.包含键值对 2.键唯一 3.键对应的值唯一 一:hash 什么是Hash Hash,也可以称为“散列”,就是把任意长度的输入,通过散列算法,变换成固定长度的输出, ...

  10. tinylib

    tinylib.h /* -------------------------------------------------------------------------------- oooo ` ...