简介

这篇博客主要是记录 tcpdf 在使用中的一些要点和注意事项。这里使用的 tcpdf 版本是 6.2.13。

Fonts

使用方式

There are two ways to use a new font: embedding it in the PDF (with or without subsetting) or not.

两种使用字体的方式:在 PDF 文件中嵌入字体和不嵌入字体。在 PDF 中嵌入字体的好处是,即使查看这个 PDF 的 PC 上没有安装这个 PDF 用到的字体,这个 PDF 也能正常显示,但缺点就是因为在 PDF 文件中嵌入了字体,PDF 文件的体积会增大;不嵌入字体这种方式则相反,两种方式可以根据实际情况选择使用。

然后嵌入字体这种方式,又分为在 PDF 文件中嵌入所用字体的一个子集和完全嵌入。嵌入子集能减小 PDF 文件中体积,但是限制了对这个 PDF 进行修改的能力,如果我们在修改时键入了一个子集中不包含的字符,这个字符就无法显示。

中文字体

如果我们要在 pdf 中打印中文,就需要设置中文字体,tcpdf 默认支持两种中文字体:stsongstdlight 和 cid0cs。但我们可以使用 tcpdf 基于 ttf 字体文件生成字体的功能,可以自由使用其他字体。

打印 HTML 注意事项

当我们使用 tcpdf 打印 html 时,我们会发现,同一段 html 代码通过 tcpdf 打印出来的效果,和通过浏览器查看的效果并不一样;当你进一步尝试为这段 html 代码添加一些 css 控制其表现时,你又会发现,添加的很多 css 并没有起任何作用。Why?原因和同一段 html 代码通过 chrome 查看和通过 ie 查看效果不一样相同,因为浏览器要渲染 html,chrome 和 ie 的渲染引擎不同,自然表现就不一样,而且对 css 的支持也不一样。同样,tcpdf 也是自己渲染 html,所以同一段 HTML 代码的渲染效果和浏览器不同也是正常的,然后对于很多 CSS 不支持也正常,因为毕竟 tcpdf 不是浏览器,又是自己解释 html,不可能做到像浏览器那样。

ok,现在我们知道,tcpdf 对 html 的渲染效果和浏览器有差别,支持的 CSS 有限,支持的 HTML 标签也有限。那怎样在使用 tcpdf 打印 pdf 时尽可能的调整出自己想要的效果呢?答案就是搞清楚一些坑,然后多尝试。下面就谈谈我遇到的一个坑。

标签的间距

首先,tcpdf 并不支持 CSS margin 属性;然后 tcpdf 为每个 html 标签都设置了默认的 margin;最后我们通过 setHtmlVSpace 函数对每个标签的 margin 进行调整。

这里面最大的问题在于 tcpdf 为每个 html 标签设置的默认 margin 并不合适,比如 tcpdf 竟然为 div 标签也设置了 margin,fuck;然后 tcpdf 对间距的计算是直接累加的,不会像浏览器那样根据实际情况对间距进行处理。

所以,怎么弄处理标签的间距很重要。没有固定方法,比如我的做法就是通过 setCellHeightRatio 函数控制行间距,在额外利用换行符对间距进行控制的。大家可以根据自己的情况指定相应的解决方案。

tcpdf 使用总结相关推荐

  1. php使用TCPDF生成PDF文件教程

    functioncreatePdfFile($frontData) { /*新建一个pdf文件: Orientation:orientation属性用来设置文档打印格式是"Portrait& ...

  2. tcpdf html 格式重叠,html - tcpdf(html2pdf)无法正确生成表格边框 - 堆栈内存溢出...

    我正在使用html2pdf生成pdf文件(即使用tcpdf库_tcpdf_5.0.002). 不幸的是,我无法正确生成表格边框. require_once('inc/html2pdf/html2pdf ...

  3. php+tcpdf+表格,PHP中使用TCPDF生成PDF文档实例

    实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速生成PDF文件的PHP5函数包 ...

  4. tcpdf 设置pdf尺寸_AutoCAD中施工图审查PDF、DWF批量输出并自动命名

    批量CAD转pdf.dwf.dwg并命名插件使用说明:    (1) 建立自己公司的图签(带属性块的图签,图框和图签可以分开)    (2) 根据AutoCAD版本下载相应的输出插件    (3) 启 ...

  5. php生成pdf乱码_php+tcpdf生成pdf: 中文乱码

    TCPDF是一个生成PDF的不错的库,可惜,官方对包括中文在内的东亚字体支持不怎么样的. 场景:某项目需要根据数据库信息生成pdf格式的发票,考虑采用稳定的tcpdf,虽然还有许多其它选择,但是这个应 ...

  6. PHP生成PDF完美支持中文,解决TCPDF乱码

    PHP生成PDF完美支持中文,解决TCPDF乱码 2011-09-26 09:04 418人阅读 评论(0) 收藏 举报 phpfontsheaderttfxhtml文档 PHP生成PDF完美支持中文 ...

  7. TCPDF中文生僻字解决方案

    根据网上方法中文乱码解决 但是出现生僻字还是乱码 官网下载最新包 创建个新文件 代码如下 <?php require_once('tcpdf.php'); $pdf = new TCPDF(); ...

  8. php将pdf文件存入数据库,关于tcpdf:在我的php数据库中制作pdf文件

    我在PHP中有我的代码,我打算从我的数据库中制作一个pdf. 我尝试阅读并找到tcpdf来创建pdf. 我下载并尝试了一些代码..在创建pdf时真的需要$ html吗? 或者我的代码下面的回声是好的吗 ...

  9. php 生成pdf 中文,php采用tcpdf生成pdf支持中文,图片

    发表于 2012-08-30 11:55:05 by 月小升 上次找到fpdf发现文档支持不足.而且含有php5.4不能用了的过期函数,图片进去也显示不了等问题. 特意找到这个tcpdf. 下载的地址 ...

  10. Thinkphp 整合tcpdf

    网上查了些关于tcpdf 使用教程,整合到TP的话,会有些小问题,由于基础还不是很扎实,花了点时间终于整合OK了.下面介绍步骤: 环境: TP版本:TP3.2.2 tcpdf:tcpdf_6_2_3 ...

最新文章

  1. 数据结构—顺序表的插入算法
  2. 通过修改EIP寄存器实现强行跳转并且注入DLL到目标进程里
  3. mysql5.6源码编译_MySQL 5.6 源码编译安装
  4. 使用Visual Studio Code 运行编写第一个html文件
  5. JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)
  6. SPList和SPDocumentLibrary 通过代码更新审批状态
  7. Forensic Challenge 9 - Mobile Malware
  8. LeetCode 1717. 删除子字符串的最大得分
  9. 关于CSS浮动(float,clear)的通俗讲解(经验分享)
  10. Linux学习笔记十三——文件压缩、解压缩和归档
  11. 如何创建和配置SQL Server代理警报
  12. [Java] 蓝桥杯ALGO-103 算法训练 完数
  13. python基础知识-Python基础知识
  14. MVC生成CheckBoxList并对其验证
  15. matlab 2018 ccs,Matlab2018a 与ccs7生成tms320F2812代码调试记录
  16. StarUML接口视图修改为类的形式
  17. 使用汉化版srvinstw.exe安装/卸载Windows系统服务
  18. win10键盘失灵一键修复方法
  19. 浅析机器学习算法的应用场景!
  20. ps关于去除脸上的痘痘问题和美白问题

热门文章

  1. Git下载安装以及基本指令使用
  2. 做数据分析不得不看的书有哪些?
  3. Hart 常用命令 命令格式+命令含义 中文翻译
  4. 下载 嵌入式qt实战教程pdf_嵌入式QT基础视频教程免费分享!
  5. 安装cmsv7的具体方法
  6. ucgui 字体生成与字体个性化编辑
  7. 微信小程序图片布满整个窗口
  8. 计算机二级用的ms什么版本,计算机二级ms office用的哪个版本
  9. steam邮箱服务器设置,Steam游戏通用进服教程
  10. RTMP直播推流Video(视频)