From 1d4215f104ceb56d282f00034d50d4bf9d6bcd8d Mon Sep 17 00:00:00 2001 From: Nemo <me@captnemo.in> Date: Sat, 16 Jun 2018 21:39:00 +0530 Subject: [PATCH] Adds possible PDF (doesn't work yet) --- RoboFile.php | 27 +++++++++++++++++++++++---- template.tex | 5 +++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/RoboFile.php b/RoboFile.php index caa2507..0e4747f 100644 --- a/RoboFile.php +++ a/RoboFile.php @@ -156,10 +156,10 @@ $file = "_problems/$category/$problem.json"; if (file_exists($file)) { $document = json_decode(file_get_contents($file), true); - $content = $document['body']; + $content = "<article>" . $document['body'] . "</article>"; $bookContent .= "<h2>" . $document['problem_code'] . "</h2>"; - $content = strip_tags($content, '<p><a><b><i><br><h2><h3><h1><h4><pre>'); + $content = strip_tags($content, '<p><a><b><i><br><h2><h3><h1><h4><pre><article>'); $bookContent .= $content; } @@ -174,7 +174,6 @@ $options = [ "from" => "html", "to" => "epub", - // "css" => "/assets/css/documents.css", "toc" => null, "toc-depth" => 2, "epub-metadata" => "metadata.xml", @@ -185,12 +184,30 @@ return $pandoc->runWith($html, $options); } + private function _runPandocPDF($html) { + $pandoc = new Pandoc(); + $options = [ + "from" => "html", + "to" => "pdf", + "toc" => null, + "toc-depth" => 2, + "pdf-engine" => "xelatex", + "template" => "template.tex", + "variable" => 'title:"CodeChef - The Problems"', + ]; + + return $pandoc->runWith($html, $options); + } + public function generateBook() { $html = $this->_generateSingleHtmlFile(); $this->say("HTML generated"); + + file_put_contents('codechef.epub', $this->_runPandocEPUB($html)); + $this->say("EPUB generated"); - $epub = $this->_runPandocEPUB($html); - file_put_contents('codechef.epub', $epub); + file_put_contents('codechef.pdf', $this->_runPandocPDF($html)); + $this->say("PDF generated"); } public function generateCollection($category = self::ALL) { diff --git a/template.tex b/template.tex index e5d9310..150e752 100644 --- a/template.tex +++ a/template.tex @@ -11,6 +11,8 @@ \usepackage{lmodern} $endif$ +\usepackage[utf8x]{inputenc} + $if(linestretch)$ \usepackage{setspace} \setstretch{$linestretch$} @@ -22,7 +24,6 @@ \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} - \usepackage[utf8]{inputenc} $if(euro)$ \usepackage{eurosym} $endif$ @@ -281,4 +282,4 @@ $include-after$ $endfor$ -\end{document}+\end{document} -- rgit 0.1.5