iText の表に斜線を引く

帳票印刷等で、表のセルに斜め線を入れたいことがあります。
PdfPTable や PdfPCell には斜線を引くメソッドがありませんが、
PdfContentByte で、直接、描画する方法が考えられます。

座標の原点は左下で、A4用紙の幅は595ユニット、高さは842ユニットです。
なので例えば、上下左右に30ユニットずつ余白をとって作成した表の、左上隅のセルに斜線を入れたい場合には次のようにします。(セルの高さが20ユニット、セルの列幅が、表の幅の1/3の場合の例。)

float  w = (595 - 60)/3;
float  h = 20;
float px = 30;
float py = 842 - 30;
PdfContentByte cb = pdfwriter.getDirectContent();
cb.moveTo(px, py);
cb.lineTo(px+w, py-h);
cb.stroke();

サンプルコード

tebletest

iText 5.0 で iTextAsian.jar を使う

iText 5.0.0 では、パッケージ名が com.lowagie から com.itextpdf に変更されています。そのため、iTextAsian.jar をそのまま使うことができません。

以下のように jar を解いて、パッケージ名を変更したのち、また jar に固めれば OK です。

> jar xvf iTextAsian.jar
> cd com
> ren lowagie itextpdf
> cd ..
> jar cvf iTextAsian.jar com

JavaDBの使い方

| コメント(4)

JavaDBを使うと、Javaアプリケーションにデータベースを埋め込むことができます。

Javaでスタンドアローンのデスクトップアプリ等を書くときに、
別途PostgreSQLやMySQLを利用する必要がなく、便利です。

JavaDBでは、テーブル名やフィールド名に漢字を使うこともできます。

サンプルコード

<実行結果>
>java -classpath derby.jar;. JavaDBTest
2008年12月13日に出席したのは、
三鷹 太郎さん
吉祥寺 花子さん
です。

プログラムで祝祭日を扱う

カレンダーに関連するプログラムを書いていると、
祝祭日を機械的に割り出したくなることがあります。

日付を入力すると、その日が祝日だった場合、祝日名を返すプログラムを
Javaで書いてみました。

ソースコード

<実行結果>
% java HolidaySample
2008年3月20日(木)は、春分の日です。
2008年3月21日(金)は、平日です。
2008年5月3日(土)は、憲法記念日です。
2008年5月4日(日)は、みどりの日です。
2008年5月5日(月)は、こどもの日です。
2008年5月6日(火)は、振替休日です。
2008年5月7日(水)は、平日です。
2009年9月15日(火)は、平日です。
2009年9月21日(月)は、敬老の日です。
2009年9月22日(火)は、国民の休日です。
2009年9月23日(水)は、秋分の日です。

以前、ソースコードの公開されていた、webcal2のロジックを参考にさせて頂きました。
ありがとうございます。

Qステア PWM制御実験

| コメント(12)

Qステアを改造して、プロポーショナル・システム化しようとしています。

オリジナルのQステアは、前後左右の動きが全てON/OFFスイッチの所謂「トイラジ」なので、
運転の面白みがいまひとつです。

そこで、ラジコン用のプロポで、
ステアリング切れ角に応じて前輪の舵角が変化し、
スロットル量に応じてスピードが変化するように改造しようと思ったわけです。

今回は計画の第2段階として、PICでPWM信号を作り出して実験してみました。

qsteer_pwm_ex.jpg 

Qステアの回路解析

Qステアを改造して、プロポーショナル・システム化してみようと思います。
つまり送信機のステアリング切れ角に応じて前輪の舵角が変化し、
スロットル量に応じてスピードが変化するようにしたいわけです。

送信機も付属のコントローラ(ON/OFFスイッチ)ではなく、
ラジコン用のプロポや、PCにつないだステアリングコントローラを使えるようにします。

改造の方針は、なるべく基盤上の素子は活用するようにして、
制御用マイコンのみ、自作プログラムを組み込んだPICマイコンに置き換えようと思います。

第1段階として、ノーマルな基盤上の回路を解析してみることにしました↓

qsteer.jpg

Qステア用自作iアプリ

| コメント(16)
赤外線の解析結果をもとに、 Qステア操縦用のiアプリを自作してみました。
私にとっては、純正のiアプリより操作し易いです。

Qステア赤外線解析

| コメント(3)

Qステアを操縦する赤外線リモコンの信号を解析してみました。
解析には、LIRC(Linux Infrared Remote Control)を、
私の愛用しているZaurus SL-C700にインストールして使用しました。
LIRCのSL-C700用バイナリは、こちらこちらをダウンロードさせて頂きました。

PCdeRCtoCCD.jpg

以前、ハンドル型ゲームコントローラでラジコンカーを運転するシステムを作ったのだが、
今回、車載カメラを搭載してみた。