dilneiss / php-ebook-generator
该软件包最新版本(1.0.1)没有可用的许可信息。
PHP和Markdown电子书生成器。
1.0.1
2023-03-17 01:30 UTC
Requires
- php: ^7.0.0|^8.0.0
- dompdf/dompdf: 2.0.3
- michelf/php-markdown: ^1.5
This package is auto-updated.
Last update: 2024-09-17 04:29:32 UTC
README
PHP Ebook Generator是一个PDF电子书生成器,可以接受Markdown格式,目前处于开发中。我已经用它生成预算提案和书籍,功能非常强大。
安装
要安装,请下载zip文件或使用Composer。
composer require webdevbr/php-ebook-generator dev-master
使用方法
您可以使用实体创建电子书,配置Dompdf,并在生成PDF的对象上注入它,使用make
命令完成整个过程。
例如,创建一个名为example.php的文件,并按如下方式配置
在这个存储库中有这个可执行的示例,只需克隆(或下载)并在项目的根目录中运行php example.php
。
<?php
/** Gerador de livros em PDF */
require 'vendor/autoload.php';
/**
* O componente aceita strings, então você pode puxar os dados do banco de dados
* ou diretamente de um arquivo local, ou até escrever em uma variável para incluir,
* nestes exemplos estou utilizando o file_get_contents() para ter acesso ao conteúdo
* de um arquivo local, mas qualquer string vai bem ali.
*/
//Eu uso esta entidade para construir a estrutura do meu livro
$book = new WebDevBr\Ebook\BookEntity;
//adiciono a capa
$book->addCover(file_get_contents('example/cover.md'));
/**
* Uma informação a ser exibida antes do livro começar
* por exemplo: sobre o autor ou prefacio
* não aparece no indice
*/
$book->addBefore(file_get_contents('example/intro.md'));
//adiciono os capítulos do livro
$book->addChapter(file_get_contents('example/cap1.md'));
$book->addChapter(file_get_contents('example/cap2.md'));
/**
* E algo que eu queira mostrar no final do livro
* por exemplo: bibliogragia
* não aparece no indice
*/
$book->addAfter(file_get_contents('example/encerramento.md'));
/**
* Aqui eu configuro o domPdf da forma que eu precisar.
* Você pode encapsular daqui pra frente em uma classe
* para reutilizar rapidamente.
*/
$dompdf = new Dompdf\Dompdf;
$dompdf->setPaper('A4', 'portrait');
$dompdf->set_option('defaultFont', 'Helvetica');
$dompdf->set_option('dpi', 120);
/**
* Ccomeço a gerar o pdf injetando o livro que já montei
* e também o dompdf
*/
//
$generate = new WebDevBr\Ebook\Generate($book, $dompdf);
//opcionalmente um pouco de css pra personalizar a capa
$css = '
@page :first {
margin: 0;
padding: 0;
border: none;
}
.container-cover-0 {
background-color:#c0392b;
height: 100%;
}
';
$generate->setCss($css);
//opcionalmente altero o padrão da numeração de páginas do rodapé
$generate->setPageFooter('Página $current_page de $total_pages - www.webdevbr.com.br', 400);
/**
* Finalmente crio o livro
* Se o segundo parametro for true (padrão é false)
* um arquivo html será gerado também.
*/
$generate->make('book.pdf', true);
不要忘记在example目录中创建文件
如何贡献
创建一个问题,或者查看已经创建的内容,评论您将做什么或提出疑问,分支项目,在修复后进行pull request。
就是这样简单。