Skip to content

Instantly share code, notes, and snippets.

@jakub300
Created October 23, 2015 17:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakub300/4bd7ebcbe9e9df0caf65 to your computer and use it in GitHub Desktop.
Save jakub300/4bd7ebcbe9e9df0caf65 to your computer and use it in GitHub Desktop.
Podstawy baz danych convert
var cornersY = [779, 2606, 4433],
cornerX = 546,
size = [2394-546, 2166-779]; //x, y
var fs = require('fs'),
path = require('path');
Canvas = require('canvas'),
Image = Canvas.Image,
spawnSync = require('child_process').spawnSync;
var file = process.argv[2];
if(!file) {
console.log('Use: convert.js file.pdf');
process.exit(1);
}
console.log('Converting PDF to pages');
spawnSync('convert', ['-density', '600', file, 'tmp.png']);
console.log('PNGs created');
var target = path.parse(file).name
var files = fs.readdirSync('./');
function zeros(n) {
var nn = 1000/(n || 1), str = '';
for(; nn > 10; nn /= 10)
str += '0';
return str+n;
}
files.forEach(function(file) {
if(file.indexOf('tmp') != 0 || file.substr(-4) != '.png') return;
console.log('Loading file '+file);
var index = path.parse(file).name.split('-')[1];
index = (index ? parseInt(index) : 0)*cornersY.length;
var image = new Image();
image.src = fs.readFileSync(file);
cornersY.forEach(function(corner, cornerId) {
var canvas = new Canvas(size[0], size[1]);
var ctx = canvas.getContext('2d');
ctx.drawImage(image, cornerX, corner, size[0], size[1], 0, 0, size[0], size[1]);
var targetName = target+'-'+zeros(index+cornerId+1)+'.png';
console.log('Saving '+targetName);
fs.writeFileSync(targetName, canvas.toBuffer());
})
fs.unlinkSync(file);
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment