# Tahir Hassan's Blog

My Technical Notes

## Monday, 27 March 2017

### Converting ORG to PDF with custom CSS styling

OrgMode is a very simple and easy to use plugin for Emacs that allows you to organize yourself using text only.

One drawback of it is that Emacs/OrgMode has a high learning curve: too many keyboard shortcuts to remember, requires use of lisp to customise output etc.

However, its main strength is that OrgMode files are purely text - and text is very easy to process.

Emacs OrgMode already has PDF output capability (via LaTeX). However, to style its output, you have to use custom Lisp functions containing LaTeX code. As I am unfamiliar with both LaTeX and Lisp, I wanted to use familiar technologies, such as CSS, to style the content, and use Emacs purely for editing the OrgMode files.

Installing Pandoc   Pandoc needs to be installed first.

Installing wkhtmltopdf   wkhtmltopdf also needs to be installed because that is what actually does the HTML to PDF conversion. You also have to add C:\Program Files\wkhtmltopdf\bin to the PATH variable so it is visible to Pandoc.

Including CSS   Below is a sample css file sample.css which makes .done tasks green:


.done {
color: green;
}


Place it in the same folder as the .org folder for the commands below, which reference its path, to work.

OrgMode file   The commands will be run against the following OrgMode file, doc.org:


* DONE this is a done task
* DONE this is a second done task.


Pandoc Command   Execute the following command to create doc.pdf from doc.org:


pandoc -t html5 --css sample.css doc.org -o doc.pdf


The -t html5 in the command ensures that it uses wkhtmltopdf to create the PDF document instead of LaTeX.

#### Sources

• StackOverflow.com An answer explaining the user of pandoc to convert OrgMode to PDF