eliepse/working-grid-pdf

库,可轻松创建工作网格并将其导出为PDF

2.5.0 2021-03-28 17:52 UTC

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
}

自定义页眉和页脚

在创建模板时,您可以通过实现 CustomizableHeaderCustomizableFooter 来自定义页眉和页脚。方法包括访问用于渲染文档的 mPDF 实例,以及包含当前绘制页面信息的 PageInfo 对象。

额外功能

笔画顺序

要打印显示笔画顺序的帮助,只需在您的模板中实现 WithDrawingTutorial 接口。

拼音

如果您想显示字符的拼音,请在您的模板中实现 WithPinyin 接口。

配置

您可以使用不同的属性来自定义您的文档。所有这些属性都在模板中可用,其中一些作为模板构造函数的参数可用。

功能

构建工具