2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

ReceiptLineをCLIでSVG変換

レシート記述言語ReceiptLinenpmで提供されている。
マクドナルドのレシートを再現した際に、「ビジュアルエディタでなくコマンドラインから簡単に実行したいな」と思ったのでコマンドrltosvgを書いた。(GitHubはこちら)

実装

rltosvg
#!/usr/bin/node

// $ npm -g install receiptline
// $ ./rltosvg <cpl int> <encoding> <import filepath> <export filepath>
const usage = './rltosvg <cpl int> <encoding> <import filepath> <export filepath>';

// print args
// console.log(process.argv);
const args = process.argv;
if (args.length !== 6) throw `Err: ${usage}`;

// read lib
const receiptline = require('receiptline');
const fs = require('fs');

// configrate
const option = {
    cpl: parseInt(args[2]),
    encoding: args[3],
    upsideDown: false,
    gamma: 1.8,
    command: 'svg'
};

// import
const input = fs.readFileSync(args[4], 'utf8').toString();

// compile
const data = receiptline.transform(input, option);

// export
fs.writeFile(args[5], data, {flag: 'w'}, (err) => {
  if (err) throw err + "\nErr: export";
  console.log('Success.');
});

実行例

ハマりどころは、エンコードを日本語を含んだときはcp932、英語のみならcp437にするところ

./rltosvg 48 cp932 code.rl out.svg

問題点

この方式だと、現時点でbase64画像が表示できない
解決方法募集中です

v1.0.2で修正済み

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?