本文概述
- 重要事项, 请继续
- 1.下载所需字体的源文件
- 2.生成TCPDF使用的字体文件
- A.使用免费的在线服务
- B.在更新版本的TCPDF中使用命令行工具
- 例子
重要事项, 请继续 你只能将TTF或OTF字体导入到TCPDF中, 这意味着你将使用UTF-8编码, 因此请确保使用设置为true和utf-8的unicode格式实例化PDF:
<
?php$unicode = true;
$format = "UTF-8";
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, "letter", $unicode, $format, false);
否则, 当你生成PDF时, 你会看到奇怪的字符, 而不是所需的字符。话虽如此, 让我们继续吧!
1.下载所需字体的源文件 为了使该示例易于理解并说明向TCPDF添加自定义字体有多么容易, 我们将使用一种非常奇怪的自定义字体, 即Just Beautiful Simplicity。值得一说的是, 也许没有人想要在PDF上使用这种字体:
文章图片
但是如上所述, 这只是一个演示。你可以自由选择想要的字体类型, 例如Roboto, Arial等。从字体的源文件中, 你将需要带有TTF扩展名的文件, 因为在你可以找到的每种字体上都很容易找到这些文件。如果你在Google上搜索字体的源文件, 就可以很容易地找到它, 通常会找到带有几个文件的zip文件, 这些文件代表不同字体类型的字体。
注意 在使用字体之前进行验证非常重要, 它也支持特殊字符(TrueType unicode)。
2.生成TCPDF使用的字体文件 TCPDF不能直接使用字体文件来嵌入TrueType字体(.TTF)文件, 而是需要提取字体规格并使用TCPDF库上提供的实用程序来构建所需的表。有2个选项可以从TCPDF字体生成3个必需文件, 你可以使用适用于任何TCPDF版本的免费在线服务, 也可以使用更新版本的TCPDF上的命令行工具:
A.使用免费的在线服务 对于任何版本的TCPDF, 你都可以依靠免费的在线服务来生成该版本所需的文件。如果检查TCPDF库的fonts文件夹, 将看到3种文件类型:
- 字体文件已压缩([fontname] .z)
- CIDToGIDMap已创建并压缩([字体名称] .ctg.z)
- 生成的字体定义文件([fontname] .php)
- justbeatifulsimplicity.ctg.z
- justbeatifulsimplicity.z
- justbeatifulsimplicity.php
B.在更新版本的TCPDF中使用命令行工具 使用更新版本的TCPDF, 有两种方法可以实现你的目标:
B.A使用命令行实用程序
在tcpdf / tools文件夹中, 你将找到tcpdf_addfont.php文件。可以通过以下方式在命令行中使用它:
php tcpdf_addfont.php i- [your-font.ttf]
该命令将在项目的tcpdf / fonts文件夹内自动创建所需的文件, 并显示可在代码中使用的字体名称。例如, 使用其他字体(“ 爱丽丝与邪恶的怪物” )时, 命令行显示以下输出:
文章图片
B.B手动编写脚本
如果你不愿意使用命令行创建文件, 则可以手动使用命令行使用的类。 TCPDF_FONTS类提供了静态方法addTTFfont来创建文件。你可以使用以下代码, 将其存储到PHP文件(build-fonts.php)中, 然后使用php build-fonts.php运行它。请注意, 你需要替换字体路径:
<
?php // Add more files if the font offers for// Bold styles, Oblique etc.$pathTTFFiles = array('justbeautifulsimplicity.ttf');
foreach($pathTTFFiles as $ttfFile){$fontname = TCPDF_FONTS::addTTFfont($ttfFile, 'TrueTypeUnicode', '', 96);
echo "The processed font '$ttfFile' can be used with the name: $fontname";
}
注意 通常, 你不使用单一字体格式, 而是使用诸如Bold, Oblique等之类的更多表示形式。pathTTFFiles是一个数组, 其中包含要导入的所有字体的路径。
例子 要使用先前的字体生成PDF, 我们只需要在PDF的SetFont方法中设置生成字体的名称即可:
<
?php // Create new PDF$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// Set Font, not the TTF file but the php filename inside tcpdf/fonts$pdf->
SetFont("justbeautifulsimplicity", '', 10);
在打印一些HTML的情况下, 在使用之前的代码生成PDF之后, 你将获得带有自定义字体的PDF:
文章图片
【如何在TCPDF中实现自定义字体】编码愉快!
推荐阅读
- 如何在WinForms中使用C#使用SharpZipLib创建和提取zip文件(压缩和解压缩zip)
- 检查已签名的用户在Symfony 2和3中是否具有特定角色
- 如何使用TCPDF在PDF上添加水印
- 在WinForms中使用EasyTabs创建具有Chrome样式选项卡的C#应用??程序
- 使用C#在Windows 10(控制中心样式)中创建通知
- CS201 分配
- CSc 360 简单文件系统
- Android上点击EditText将不会显示软键盘
- 如何在iPhone或Android上打开WhatsApp打开数字,如+55(51)9988-7766