3

Using pandoc like:

pandoc -o output.pdf input.md 

does not give me a result with word-wrapping.

For instance, three liner input.md looks like the following:

# Introduction

Lorem ipsum dolor sit amet, scelerisque natoque, in etiam erat nibh lacus, porta quam penatibus, at metus, purus leo est. Sed faucibus odio in amet, in sapien ut sapien eu, vehicula pede vel pellentesque, ut hac lacinia mauris ridiculus rhoncus ligula. Sit congue, ac montes, lorem ligula etiam ac fusce ipsum, lacus dolor in suscipit aliquet vitae. Blandit neque aliquam, amet vel, ante nullam neque. Adipiscing nullam, neque elit, nunc non mauris libero vivamus tortor.

running the above command yields a pdf document with some content as the following:

Introduction
    Lorem ipsum dolor sit amet, scelerisque natoque, in etiam erat nibh lacus,

Is there a fast way of converting a markdown(.md) file to pdf with word-wrapping (similar to the way done in here)?

Pablo Bianchi
  • 17,371

2 Answers2

4

Markdown to PDF

With Pandoc

On my Ubuntu 20.04:

pandoc Manual.md --latex-engine=xelatex -o Manual.pdf

If you get the error

pandoc: xelatex not found. xelatex is needed for pdf output.

install the huge (~600 MB) package

sudo apt install texlive-xetex

Markdown to HTML from/to clipboard

You can also:

thisOutputMarkdown | pandoc -s -f markdown -t html | xclip -selection clipboard -t text/html

to get formatted HTML to clipboard. If you have the Markdown text on clipboard replace thisOutputMarkdown with xsel -b.

With markdown-pdf NodeJS package

npm install -g markdown-pdf
markdown-pdf /path/to/markdown
Pablo Bianchi
  • 17,371
0

I just convert from HTML instead. This works for my needs:

https://github.com/dompdf/dompdf

I found that in general Markdown is not a good format to convert to PDF, as it doesnt have native CSS support. Here is the script I use:

<?php
require 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;

$dompdf = new Dompdf();
$dompdf->getOptions()->setIsFontSubsettingEnabled(true);
$s_in = file_get_contents('index.html');
$dompdf->loadHtml($s_in);

$dompdf->render();
$s_out = $dompdf->output();
file_put_contents('index.pdf', $s_out);

This solution just needs PHP (25 MB) and DomPdf (4 MB), so quite lightweight compared to other options.

Zombo
  • 1