Skip to content

phppdf/markdown-converter

Repository files navigation

markdown-converter

CI

Convert Markdown into PDF documents on top of phppdf/phppdf.

Markdown is parsed directly into layout primitives (text, lists, tables) — there is no intermediate HTML step.

Installation

composer require phppdf/markdown-converter

Requires PHP 8.4+.

Usage

MarkdownConverter::fromMarkdown() never registers fonts for you — you must register a font under each resource name MarkdownConverterConfig expects (F1F5 by default) before calling $builder->build().

use PhpPdf\Builder\PdfDocumentBuilder;
use PhpPdf\Markdown\MarkdownConverter;
use PhpPdf\Markdown\MarkdownConverterConfig;
use PhpPdf\Output\PdfMemoryOutput;
use PhpPdf\Serialization\PdfDocumentSerializer;

$markdown = "# Hello World\n\nWelcome to the PDF.";

$config = new MarkdownConverterConfig();

$builder = new PdfDocumentBuilder();
$builder->globalFont($config->getRegularFontName(), 'Helvetica')
    ->globalFont($config->getBoldFontName(), 'Helvetica-Bold')
    ->globalFont($config->getItalicFontName(), 'Helvetica-Oblique')
    ->globalFont($config->getBoldItalicFontName(), 'Helvetica-BoldOblique')
    ->globalFont($config->getCodeFontName(), 'Courier');

MarkdownConverter::fromMarkdown($markdown, $config, $builder);

$output = new PdfMemoryOutput();
(new PdfDocumentSerializer($output))->writeDocument($builder->build());

header('Content-Type: application/pdf');
echo $output->getContent();

Supported Markdown

ATX and Setext headings, paragraphs, bold, italic, bold italic, inline code, fenced code blocks, ordered/unordered lists (with nesting and GFM task-list checkboxes), blockquotes, thematic breaks, GFM pipe tables (with column alignment), hyperlinks, standalone images, and footnotes.

See the full syntax reference and known limitations.

Documentation

Full documentation, including custom layout and custom fonts, is available at phppdf.github.io/markdown-converter.

License

MIT

About

Convert Markdown markup into phppdf documents.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors