2020/01/26

gnu-barcodeで作成したバーコードをエクセルに貼り付ける

前回『Linux/debianでバーコード作成』からの続きです。

作成したバーコードをWindows/エクセルに貼り付けようとしたところ、貼り付けられないことがわかりました。gnu-barcodeの出力ファイルフォーマットはEPSまたはSVGですが、私が持っているエクセルは古いバージョンのため、どちらのフォーマットも対応していないようです。そこでSVG→EMF変換してエクセルで読めるようにします。

EMFへの変換は"Inkscape"というソフトを使用します。コマンドラインで使用することができます。

前提条件


  • OS: Debian 10 "buster"
  • ソフトウェア:gnu-barcode, Inkscape, EXCEL2010

インストール方法


$ sudo apt install inkscape

バーコード作成例


$ barcode -b 4901957044627 -S -o ean.svg
$ inkscape -z -f ean.svg -M ean.emf

2020/01/25

Linux/debianでバーコード作成

Linux/debianでバーコードを作成する方法を調べたので備忘録として記します。

前提条件


  • OS: Debian 10 "buster"
  • ソフトウェア:gnu-barcode

インストール方法


$ sudo apt install barcode

バーコード作成例


$ barcode -b 4901957044627 -S -o ean.svg
4 9 0 1 9 5 7 0 4 4 6 2 7

2019/09/29

【pdftk】コマンドラインでPDF編集する

pdftkの使い方を備忘録として残します。

目的


pdftkはPDFファイルの編集を行うソフトウェアです。
複数のpdfファイルを結合させて一つのpdfファイルにまとめたり、その逆をしたり、特定のページだけ別pdfとして抜き出したり、ページを回転させたりすることができます。

インストール方法


debian, raspbianでは下記方法でインストールできます。
# apt update
# apt install pdftk

使い方


ページ回転


in.pdfを全ページ回転させたものをout.pdfとして保存
$ pdftk in.pdf cat 1-endright output out.pdf ;; 右回転(時計回り)
$ pdftk in.pdf cat 1-endleft output out.pdf ;; 左回転(反時計回り)

1枚ずつばらす


in.pdfを1ページずつばらして別々のpdfとして保存。
# pdftk in.pdf burst

抜き出す


in.pdfから指定したページだけ抜き出してout.pdfとして保存
# pdftk in.pdf cat 1 output out.pdf ;; 1頁目だけを抜き出す
# pdftk in.pdf cat 2-end output out.pdf ;; 1頁目以外を抜き出す

結合


in1.pdfとin2.pdfを合体してout.pdfとして保存
# pdftk in1.pdf in2.pdf cat output out.pdf

2019/08/19

GDグラフィックライブラリ(GD Graphics Library)の使い方

C言語でpng画像を生成したいと思い、その方法を調査したので備忘録として以下に示します。


試験環境


いつもの如くOSはdebianを使用します。


GDグラフィックライブラリとは


- Wikipediaより抜粋

GDグラフィックライブラリ(GD Graphics Library)はトーマス・ボーテル(Thomas Boutell)他によって作られたイメージを動的に操作するライブラリである。本来のプログラミング言語はANSI Cであるが、他の多くのプログラミング言語とのインタフェースが作成されている。GIF、JPEG、PNG、WBMP を生成できる。


インストール方法


debian環境では、以下のコマンドでインストールできます。

# apt update
# apt install libgd-dev

サンプルプログラム


256x256ピクセルのpng画像を生成します。ピクセル毎に着色し、赤成分を横方向に0から255まで、緑成分を縦方向に0から255まで変化させます。


リスト1(main.c)
#include <stdio.h>
#include <gd.h>

int main() {
  gdImagePtr im;
  FILE *pngout;

  int x, y;

  im = gdImageCreateTrueColor(256, 256);

  for (x = 0; x < 256; x++) {
    for (y = 0; y < 256; y++) {
      gdImageSetPixel(im, x, y, (x << 16) + (y << 8));
    }
  }

  pngout = fopen("test.png", "wb");
  gdImagePng(im, pngout);
  fclose(pngout);
  gdImageDestroy(im);

  return 0;
}

GDグラフィックライブラリ関数の仕様はこちらを参照ください。


リスト2 コンパイル&実行
$ cc -o ex1 -lgd -O3 -Wall main.c
$ ./ex1

図1 実行結果(test.png)

バーニングシップフラクタル

bsf.knit 今回は『バーニングシップフラクタル』についての備忘録です。 バーニングシップフラクタルとは? Wikipedia ...