mprince2k18/typesetter

电子书从Markdown生成PDF的主要排版服务。

资助包维护!
aaronsaray

dev-main 2024-02-10 16:41 UTC

This package is auto-updated.

Last update: 2024-09-10 17:49:58 UTC


README

License Packagist Downloads Github Workflow Status

Typesetter

这是Typesetter的主要服务。如果您愿意,可以直接在自己的项目中使用。但您可能需要前往typesetter-cli

安装

这需要PHP 8.1或更高版本。

composer require typesetterio/typesetter

用法

创建一个配置数组,并将其传递给配置生成器。然后创建Typesetter类的新实例。使用您的配置调用generate方法,从MPDF获取PDF二进制返回值。

示例

$config = [
    'title' => 'Benjamin Button',
    'author' => 'F. Scott Fitzgerald',
    'theme' => 'bb',

    'toc-enabled' => true,
    'toc-links' => true,
    'toc-header' => 'Table of Contents',

    'footer' => '{PAGENO}',

    'markdown-extensions' => ['md', 'markdown'],
    'observers' => [
        new \Typesetterio\Typesetter\Observers\DefaultMarkdownConfiguration(),
        new \Typesetterio\TypesetterCLI\Observers\FirstElementInChapterCSSClass(),
        new \Typesetterio\TypesetterCLI\Observers\BreakToPageBreak(),
        new \Typesetterio\TypesetterCLI\Observers\Credits(),
    ],
];

$config = new \Typsetterio\Typesetter\Config($config);
$service = new \Typesetterio\Typesetter\Typesetter();
$pdfContent = $service->generate($config);
file_put_contents('my-pdf.pdf', $pdfContent);

要了解更多信息,请参阅文档。这包括配置、定制、主题和封面生成、观察者、监听器等内容。

致谢

该项目受到了Ibis项目的很大影响,但进行了完全的重写。

此包站在像MPDF、部分Laravel以及League Commonmark库这样的巨人的肩膀上。

Aaron Saray是主要作者和维护者。