Skip to content

Instantly share code, notes, and snippets.

Forked from Arakade/build.gradle
Created October 7, 2015 18:27
What would you like to do?
Updated 2014/07/05 for newer repositories syntax and missing Xalan dependency (needed on Windows)
import com.petebevin.markdown.MarkdownProcessor
import org.xhtmlrenderer.pdf.ITextRenderer
import org.ccil.cowan.tagsoup.Parser
import org.apache.xalan.xsltc.trax.SAX2DOM
import org.xml.sax.InputSource
repositories {
mavenCentral() // i.e.
maven { url "" }
maven { url "" }
maven { url "" }
dependencies {
classpath "org.markdownj:markdownj:0.3.0-1.0.2b4"
classpath "org.ccil.cowan.tagsoup:tagsoup:1.2"
classpath "org.xhtmlrenderer:core-renderer:R8"
classpath "xalan:xalan:2.7.1"
task run <<{
def source = "resume.markdown"
def target = "resume.pdf"
//Convert from markdown to html
def mp = new MarkdownProcessor()
def html = "<html><body>${mp.markdown((new File(source).text))}</body></html>"
//Convert from html to w3c document
def parser = new Parser()
def sax2dom = new SAX2DOM()
parser.setFeature(Parser.namespacesFeature, false);
parser.parse(new InputSource(new ByteArrayInputStream(html.getBytes())));
//Use Document to create pdf
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(sax2dom.getDOM(), null);
renderer.createPDF((new File(target).newOutputStream()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment