Skip to content

Instantly share code, notes, and snippets.

@ninjayoto
Created March 25, 2018 13:47
Show Gist options
  • Select an option

  • Save ninjayoto/53d362ecda3460c7d3e2ff104f889879 to your computer and use it in GitHub Desktop.

Select an option

Save ninjayoto/53d362ecda3460c7d3e2ff104f889879 to your computer and use it in GitHub Desktop.
Fixed to work with grade-2.3
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
buildscript{
repositories {
mavenCentral()
maven {
url 'http://scala-tools.org/repo-releases'
url 'http://download.java.net/maven/2/'
}
}
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 build <<{
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.setContentHandler(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.layout();
renderer.createPDF((new File(target).newOutputStream()))
}
@ninjayoto
Copy link
Copy Markdown
Author

from mark down to pdf, also for wikis

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment