TCPDF_tcpip详解套装共3册pdf

TCPDF_tcpip详解套装共3册pdf简介这篇博客主要是记录tcpdf在使用中的一些要点和注意事项。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

简介

这篇博客主要是记录 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 函数控制行间距,在额外利用换行符对间距进行控制的。大家可以根据自己的情况指定相应的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195861.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 转行学习3D游戏建模,你需要了解的职业分类及发展

    转行学习3D游戏建模,你需要了解的职业分类及发展王者荣耀、LOL、梦幻西游,近几年在线人数破千万,带动了越来越多的企业在游戏上的开发,3D游戏建模将游戏的画面感、真实感高度还原,给游戏者更强烈的体验感,更加身临其境。游戏模型师是目前非常热的职业岗位,目前国内动漫游戏产业已经非常成熟,需要大量优质青年加入游戏美术行业,在游戏企业里可以成为优秀的次世代场景模型师,次世代角色模型师,底模手绘贴图模型师。成功进入游戏企业之后经过项目的锻炼,薪资也会逐年有所提升。游戏建模职业分类及发展:进入游戏模型行业你可以选择不同的发展方向,比如:(1)手绘3D美术设

    2022年5月19日
    63
  • Python下载M3U8加密视频示例[通俗易懂]

    Python下载M3U8加密视频示例[通俗易懂]大家好,我是小小明。最近看到几个视频网站的地址依然是m3u8格式,不禁有了使用python进行下载的想法,虽然下载m3u8格式视频的工具很多,但如果我们自行编码就能应对更多的情况。关于m3u8的基础知识可以参考:Python实时下载B站直播间视频(M3U8视频流)下面我们将使用Python下载m3u8格式的加密离线视频流。游览器抓包过滤能够获取该影片的m3u8播放地址:首先,测试一下该地址:importm3u8headers={“User-Agent”:”Mozilla/

    2022年6月15日
    51
  • 香港科技大学计算机专业世界排名_世界顶尖计算机科学家排名

    香港科技大学计算机专业世界排名_世界顶尖计算机科学家排名近日,Guide2Research网站发布了2020年度全球计算机科学和电子领域顶级科学家排名。该排名旨在为学术社区提供更多可见性,让更多人了解计算机科学领域影响力较大的研究贡献。…

    2022年8月30日
    3
  • 【众说区块链】从阿里区块链医疗聊起,落地应用要突破中心机构数据壁垒

    【众说区块链】从阿里区块链医疗聊起,落地应用要突破中心机构数据壁垒

    2021年5月28日
    91
  • 常见的测试用例设计方法_条件覆盖测试用例

    常见的测试用例设计方法_条件覆盖测试用例文章目录前言测试用例概述常见用例设计方法等价类边界值用例设计考虑层面复杂系统如何设计用例结尾前言大家好,我是洋子。今天给大家分享在做软件测试时,最容易忽略但却重要的知识点,那就是测试用例设计。用例设计就是软件测试工程师的灵魂,体现了你的测试思维,以及对业务需求的熟悉程度。有时侯出现线上事故,可能就是测试用例没有覆盖全面测试用例概述考虑部分同学是转行做软件测试,我先说一下测试用例是什么测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需

    2022年10月10日
    4
  • 字节与bit的关系_bit和byte换算关系

    字节与bit的关系_bit和byte换算关系bit、byte、位、字节、汉字的关系

    2022年4月21日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号