From 56806a0befa4cc0b73f606ea001501f756f0292e Mon Sep 17 00:00:00 2001 From: gauthiier Date: Mon, 25 May 2015 21:27:37 +0200 Subject: [PATCH] Added export script and dependencies --- export.js | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 5 ++++ 2 files changed, 74 insertions(+) create mode 100644 export.js diff --git a/export.js b/export.js new file mode 100644 index 0000000..c05e88a --- /dev/null +++ b/export.js @@ -0,0 +1,69 @@ +var fs = require('fs') +var gs = require('ghostscript') +var path = require('path') + +var reckon_path = "." +var export_path = "export" +var index_name = "index.json" + +if(!fs.existsSync(export_path)) + fs.mkdirSync(export_path); + +var index = []; +var index_path = path.join(export_path, index_name); +if(fs.existsSync(index_path)) + index = JSON.parse(fs.readFileSync(index_path, 'utf8')); + + +fs.readdir(reckon_path, function(err, files) { + if(err) + throw err; + files.map(function (f) { + return {"name" : f, "path" : path.join(reckon_path, f)}; + }).filter(function (f) { + return (fs.statSync(f.path).isFile() && path.extname(f.path) === '.pdf' && !exists(f.name)); + }).forEach(function (f) { + var img_fname = extract_img(f.path); + var entry = {} + entry.name = f.name; + entry.imgs = []; + entry.imgs.push(img_fname); + index.push(entry); + }) + + var index_content = JSON.stringify(index, null, 2); + fs.writeFile(index_path, index_content, function(err) { + if(err) return console.log(err); + console.log(index_path + '>' + index_content); + }); + +}); + + + +function extract_img(file) { + + var out_name = path.basename(file) + ".png" + var out = path.join(export_path, out_name); + + gs() + .batch() + .quiet() + .nopause() + .device('pngalpha') + .input(file) + .output(out) + .r(72) + .spawn(); + + return out_name; + +} + +function exists(fname) { + for (var e in index) { + if(index[e].name === fname) + return true; + } + return false; +} diff --git a/package.json b/package.json index 7543b34..7005e9f 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,11 @@ }, "homepage": "https://github.com/gauthiier/reckon", "dependencies": { + "ghostscript": "https://github.com/gauthiier/node-ghostscript/tarball/master", "nodegit": "^0.4.0" + }, + "scripts" : { + "export": "node export.js", + "index": "node index.js > index.html" } }