eliepse / working-grid-pdf
库,可轻松创建工作网格并将其导出为PDF
Requires
- php: ^8.0
- ext-mbstring: *
- mpdf/mpdf: ^8.0
README
库,可轻松创建工作网格并将其导出为PDF
这个库与SVG一起工作。如果您正在寻找有关汉字、笔画作为SVG的资源,您可能想看看 Make Me A Hanzi。
安装
您可以使用composer安装此库。
$ composer require eliepse/working-grid-pdf
用法
使用此库的最基本方式如下。您可以在 public 目录中查看更完整的示例。
use Eliepse\WorkingGrid\Character; use Eliepse\WorkingGrid\Elements\Word; use Eliepse\WorkingGrid\Template\Examples\DefaultTemplate; use Eliepse\WorkingGrid\WorkingGrid; // Use the static method to generate pdf // passing a template and an array of words WorkingGrid::inlinePrint( new DefaultTemplate, [ new Word([new Character("中", [strokes data here])]), new Word([new Character("国", [...])]), new Word([ new Character("中", [...]), new Character("国", [...]) ]) ] );
词汇、字符和笔画数据
词汇
此库支持多字符词汇。为了标准化数据,您必须使用带有 Drawable 元素的 Word 类实例化您的 Drawable。
字符
Character 类接受两个参数:作为字符串的字符以及该字符的笔画。为了绘制字符,此库使用SVG数据。将笔画数据作为数组传递。如果您想显示绘制字符的正确顺序的帮助,也可以对数组进行排序。使用此类不是必需的,您也可以创建自己的类,但它必须实现 Drawable 接口。
字符“四”的笔画数组示例
[
"M 326 667 Q 283 663 312 640 [...] Q 420 673 326 667 Z",
"M 329 421 Q 304 417 332 392 [...] Q 435 441 329 421 Z",
"M 130 165 Q 102 162 122 139 [...] Q 643 210 130 165 Z"
]
要查看更多示例数据,请检查 /samples/strokes 文件夹中的内容,其中存储了一些字符的JSON。查看 Make Me A Hanzi 获取更多开源笔画数据!
模板
为了提供灵活性和定制,此库使用模板系统。为了创建自定义工作网格,创建一个扩展 Template 的类,或使用 预定义示例。
class MyTemplate extends Template { // You can override parameters here, // see configuration chapter of this file }
自定义页眉和页脚
在创建模板时,您可以通过实现 CustomizableHeader 和 CustomizableFooter 来自定义页眉和页脚。方法包括访问用于渲染文档的 mPDF 实例,以及包含当前绘制页面信息的 PageInfo 对象。
额外功能
笔画顺序
要打印显示笔画顺序的帮助,只需在您的模板中实现 WithDrawingTutorial 接口。
拼音
如果您想显示字符的拼音,请在您的模板中实现 WithPinyin 接口。
配置
您可以使用不同的属性来自定义您的文档。所有这些属性都在模板中可用,其中一些作为模板构造函数的参数可用。
功能
构建工具
- mPDF:PHP库,从UTF-8编码的HTML生成PDF文件
- Make Me A Hanzi:免费、开源的汉字数据
- Source Han Sans:Adobe的一种字体
- 源汉黑体提示模板:源汉黑体的提示版本