Skip to content

Instantly share code, notes, and snippets.

@rhaseven7h
Created April 9, 2014 21:27
Show Gist options
  • Save rhaseven7h/10318670 to your computer and use it in GitHub Desktop.
Save rhaseven7h/10318670 to your computer and use it in GitHub Desktop.
var fs = require('fs');
var Iconv = require('iconv').Iconv;
var iconv = new Iconv('UTF-8', 'UTF-16');
function fdfFileBuild(data, fileName) {
var header, body, footer, dataKeys;
header = Buffer([]);
header = Buffer.concat([ header, new Buffer("%FDF-1.2\n") ]);
header = Buffer.concat([ header, new Buffer((String.fromCharCode(226)) + (String.fromCharCode(227)) + (String.fromCharCode(207)) + (String.fromCharCode(211)) + "\n") ]);
header = Buffer.concat([ header, new Buffer("1 0 obj \n") ]);
header = Buffer.concat([ header, new Buffer("<<\n") ]);
header = Buffer.concat([ header, new Buffer("/FDF \n") ]);
header = Buffer.concat([ header, new Buffer("<<\n") ]);
header = Buffer.concat([ header, new Buffer("/Fields [\n") ]);
footer = Buffer([]);
footer = Buffer.concat([ footer, new Buffer("]\n") ]);
footer = Buffer.concat([ footer, new Buffer(">>\n") ]);
footer = Buffer.concat([ footer, new Buffer(">>\n") ]);
footer = Buffer.concat([ footer, new Buffer("endobj \n") ]);
footer = Buffer.concat([ footer, new Buffer("trailer\n") ]);
footer = Buffer.concat([ footer, new Buffer("\n") ]);
footer = Buffer.concat([ footer, new Buffer("<<\n") ]);
footer = Buffer.concat([ footer, new Buffer("/Root 1 0 R\n") ]);
footer = Buffer.concat([ footer, new Buffer(">>\n") ]);
footer = Buffer.concat([ footer, new Buffer("%%EOF\n") ]);
dataKeys = Object.keys(data);
body = new Buffer([]);
for(var i=0; i<dataKeys.length; i++) {
var name = dataKeys[i];
var value = data[name];
body = Buffer.concat([ body, new Buffer("<<\n") ]);
body = Buffer.concat([ body, new Buffer("/T (") ]);
body = Buffer.concat([ body, iconv.convert(name) ]);
body = Buffer.concat([ body, new Buffer(")\n") ]);
body = Buffer.concat([ body, new Buffer("/V (") ]);
body = Buffer.concat([ body, iconv.convert(value) ]);
body = Buffer.concat([ body, new Buffer(")\n") ]);
body = Buffer.concat([ body, new Buffer(">>\n") ]);
}
fs.writeFileSync(fileName, Buffer.concat([ header, body, footer ]));
}
var myInfo = {
myField01: "Ramón Muño@",
myField02: "Lázaro Cárdenas #3245, Ciudad Juárez, Chihuahua, México."
}
fdfFileBuild(myInfo, "test2.fdf");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment