因为要把文档生成PDF,百度了一下,有不少库,但是最被推荐的是这个TCPDF。
一开始我去的官网,到github下载了安装包,回来之后发现要用composer安装,服务器没有安装composer因此放弃。

整个百度是找不到什么安装教程的,所以我又上了Bing,搜索到了IBM的一个Library,里面不仅有安装教程,教程里的下载地址是Sourceforge,从这个网站搜索TCPDF下载了安装包后,终于看到了一个能看明白的版本。

Capture.JPG

之后再从博客园的这篇博客【使用PHP生成PDF文档】里面,把code复制到同目录下的index.php,浏览器访问此文件,此时会出现错误提示,找不到字体,把文件里的所有的stsongstdlight替换成helvetica,即可生成文档。

Capture.JPG

接下来添加字体以支持中文。

在tools文件夹里有一个tcpdf_addfont.php文件,就是用来添加字体的,但是需要在命令行执行。cmd打开控制台,然后使用php.exe执行此文件,命令行如下(请注意全都替换成自己电脑上的绝对路径):

Capture.JPG

之后会出现成功提示:

Capture.JPG

然后在文件里面就可以直接使用这个字体了。

Capture.JPG

再次打开index.php,出现中文内容如下。想要添加其它字体,按同样的方法操作即可。

Capture.JPG

也可以一次添加多个字体:

$ /path/to/tcpdf/tools/tcpdf_addfont.php -i /path/to/fonts/arialb.ttf,/path/to/fonts/arialbi.ttf,/path/to/fonts/ariali.ttf

接下来是如何打印一个HTML/CSS页面

如果需要接入外部css文件,可以添加以下变量:

$html .= '<style>'.file_get_contents(_BASE_PATH.'stylesheet.css').'</style>';

--20200916--

今天折腾了很久,最后放弃了TCPDF了,因为对html的支持太差了,我使用css和div生成出来的文件,无论如何都不能按照页面上展示的那样的排版和格式,无奈只好寻找别的方案,目前找到的方案是使用HTML2CANVAS和JSPDF结合的办法,将内容转成图片后再使用PDF打印出来,记录在另一篇博客里吧。

最后编辑:2021年01月05日 ©著作权归作者所有

发表评论