diff options
author | Samy Pessé <samypesse@gmail.com> | 2014-04-06 05:25:22 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2014-04-06 05:25:22 +0200 |
commit | cc096d225332ad779a414bb74c00e03c08d40c09 (patch) | |
tree | 375ae73ea8b3c042be23981118429ae4e8794bb8 /lib/generate/pdf/index.js | |
parent | a4c1cf93340eb3938ef39b9d455892ae0afcd4ce (diff) | |
download | gitbook-cc096d225332ad779a414bb74c00e03c08d40c09.zip gitbook-cc096d225332ad779a414bb74c00e03c08d40c09.tar.gz gitbook-cc096d225332ad779a414bb74c00e03c08d40c09.tar.bz2 |
Rename Index.js to index.js
Diffstat (limited to 'lib/generate/pdf/index.js')
-rw-r--r-- | lib/generate/pdf/index.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/generate/pdf/index.js b/lib/generate/pdf/index.js new file mode 100644 index 0000000..185eabd --- /dev/null +++ b/lib/generate/pdf/index.js @@ -0,0 +1,56 @@ +var util = require("util"); +var path = require("path"); +var Q = require("q"); +var _ = require("lodash"); +var exec = require('child_process').exec; + +var fs = require("../fs"); +var parse = require("../../parse"); +var BaseGenerator = require("../page"); + +/* + * This generator inherits from the single page generator + * and convert the page output to pdf using gitbook-pdf + */ +var Generator = function() { + BaseGenerator.apply(this, arguments); + + // Options for PDF generation + this.options = _.defaults(this.options, { + paperformat: "A4" + }); +}; +util.inherits(Generator, BaseGenerator); + +Generator.prototype.finish = function() { + var that = this; + + return BaseGenerator.prototype.finish.apply(this) + .then(function() { + var d = Q.defer(); + + var command = [ + "gitbook-pdf", + "generate", + path.join(that.options.output, "index.html"), + path.join(that.options.output, "index.pdf"), + "--format="+that.options.paperformat + ].join(" "); + + exec(command, function (error, stdout, stderr) { + if (error) { + if (error.code == 127) { + error.message = "Need to install gitbook-pdf using: npm install gitbook-pdf -g"; + } else { + error.message = error.message + " "+stdout; + } + return d.reject(error); + } + d.resolve(); + }); + + return d.promise; + }); +}; + +module.exports = Generator; |