« 2009年10月 | トップページ | 2009年12月 »

2009年11月の7件の記事

2009/11/28

RubyとPrawnでPDFに線を引く

RFPDFからPrawnに移行して、いろいろと使っていますが、こなれてくると何の問題も感じなくなってきました。
特に日本語の扱いで、余計なところに頭を悩ませないところがいいですね。

ということで、知人にPrawnを紹介してみたら、線の描画でコードの書き方をど忘れしてしまったので、備忘のためにブログの記事にしておきます。

PrawnのWebサイトとはちょっと違う書き方をサンプルにしてみました。
下記のコードを実行する前にIPAフォントの最新版ではなくTTF版をダウンロードして、ソースと同じフォルダに入れておいて下さい。

#!/usr/bin/ruby

require 'rubygems'
require 'prawn'
require 'prawn/measurement_extensions'

#PDFの初期化
pdf = Prawn::Document.new(:page_size => "A4", :page_layout => :landscape)

#明朝体での文字列出力
pdf.font "ipam.ttf"
pdf.text "表ソフトPDFがきちんと出力されるかテスト", :at => [100,200], :size => 24

#ゴシック体での文字列出力
pdf.font "ipag.ttf"
pdf.text "フォントを変えて出力してみたり...", :at => [100,300], :size => 16

#普通の直線を書いてみる
pdf.line_width = 1
pdf.line [100,100], [200, 200]
pdf.line [100,100], [100, 200]
pdf.stroke

#破線を書いてみる
pdf.dash = 5
pdf.line_width = 3
pdf.line [30.mm,10.mm], [2.mm, 2.mm]
pdf.line [30.mm,10.mm], [10.mm, 20.mm]
pdf.stroke

#ファイルの生成
pdf.render_file("sample.pdf")

少し説明をすると、位置の設定は基本的にポイントという単位で行いますが、エクステンションをrequireすることで簡単に単位を変換する事ができます。

textにおける:at => [left, top]が文字列を表示する位置の指定になるのですが、これは先頭文字の左下を指定することになりますので、ご注意下さい。

また、lineの数値は始点と終点の順番で

line [felt, top], [left, top]

という意味になっています。
dashの指定をすると、指定した長さ毎の破線を描画でき、dash = 0 とすると普通の直線に戻ります。

帳票や一覧を作成する時にとても便利。
どうですか?PDFの生成でお困りの方がおられましたら、Prawnを使ってみられませんか

##### 追記 #####
投稿当時のPrawnのバージョンは0.6でしたが2014年1月のバージョンは0.14で上記のスクリプトはそのままでは動かなくなっているようです。
既知の対策として、「pdf.text」の部分を「pdf.draw_text」に変更すると動きますので、ご利用時にはご注意下さい。

もし他にも修正の必要な箇所がありましたら、コメントなどでご指摘いただけると助かります。

| | コメント (4) | トラックバック (0)

2009/11/26

Inkscape 0.47 正式版出た!

待ちに待ったInkscape 0.47がリリースされていました。

Inkscape 自由に描く

早速、ダウンロード&インストール。
Snow Leopardで使っていて、これまで問題だったコピー&ペーストがきちんとできようになっています。

職場のWindows版も更新しておこう。

| | コメント (0) | トラックバック (0)

2009/11/19

Ruby + Prawn = PDF

覚え書き程度に...

$ sudo gem install prawn

以下のスクリプトを"sample.rb"としてUTF-8で保存。

#!/usr/local/bin/ruby
# -*- coding: UTF-8 -*-

require 'prawn'

pdf = Prawn::Document.new(:page_size => "A4", :page_layout => :landscape)

pdf.font "ipam.ttf"
pdf.text "PDFがきちんと出力されるかテスト", :at => [100,200], :size => 16

pdf.render_file("sample.pdf")

ついでにIPAからIPAフォントをダウンロードし、上記のスクリプトと同じ場所に保存。

$ ruby sample.rb

すると、スクリプトと同じ場所にsample.pdfが...
罫線とか描いてると、出力結果に少し挙動がおかしいところもあるけれど、それなりに使いやすい。

gemが必要なので、どのレンタルサーバでも動作する保証はないけれど、とりあえず僕の回りの環境には一通り入れておきました。

ちなみに、プロキシがあってgemがうまく使えない(Linuxの)場合、

$ export http_proxy=http://[proxyのURLまたはIPアドレス]:[ポート番号]
$ sudo gem install prawn

で無事に成功...するかも。
これでもだめなら、

$ sudo gem install prawn --http-proxy http://[proxyのURLまたはIPアドレス]:[ポート番号]

としてみると、成功...するかも。

帳票出力をするのにPDFを利用しているのだけれど、UTF-8を基本的に使用した場合RFPDFではSJISに変換する必要があったりして少し不満。その点、Prawnは標準でUTF-8をサポートするのでちょっと使いやすい。

これからもう少しPrawnを使い込んでみようかな。

| | コメント (0) | トラックバック (0)

2009/11/13

バイオリンリサイタルを聞きにいきました。

東出雲出身のバイオリン奏者、野々内夏子さんのバイオリンリサイタルが県民会館で行われ、知人の紹介で聞きに行ってきました。

久しぶりにバイオリンとピアノの素敵な生演奏を聞き、日頃の疲れが取れるようでした。
あまり音楽に造詣がなく、稚拙な表現しかできないので曲毎の解説は控えておいた方が良さそう...

長女がバイオリン、妻がピアノをやるので、二人ともとても一生懸命聞き入っていました。
帰ったら早速長女が「練習する」と言い出したりして、とても嬉しくなりました。

また、松江SNSにてこのリサイタルの紹介をしていたら、野々内さんがそれをご覧になったようで、帰りに少しお話をさせて頂きました。
これからもがんばって下さい。

さて、このブログも遅々として更新されないので、また生存記録として今月を振り返ってみたいと思います。

7日
妻がNPO法人おやこ劇場のイベントで留守なので、子供と一緒にちょっとだらだら。
100円の回転寿しで夕飯を済ませ、溜まりに溜まっているHDD内のデータ整理をしていました。もちろん終わっていません...というより終わるのか?...というより必要なデータなのか?

8日
小学校の発表会。長女(3年生)は歌とリコーダーの演奏、マットや跳び箱の披露で、次女(1年生)はミュージカルタッチな歌の披露でした。他の学年の子もみんな、一生懸命練習した成果が表れて、見ていてとても気持ちよかったです。
最後に茉奈佳奈の「いのちの歌」を全校生徒で合唱したのですが、中には感動の涙を流している親御さんもおられました。
こういう事に感動し、幸せを感じられるのは、子を持つ親のささやかな特権なのかな。

12日
空手の昇級審査。本当は8日だったのですが、我が子と同じ学校に通う子供は上述の通り発表会だったので参加出来ず、予備日を設けてもらいました。
正直、子供達の上達ぶりに驚きました。
今年に入って教室生が4人もやめてしまうというハプニングもありましたが、残っている子供達が一生懸命練習している成果を見る事ができて、何となく救われたような気持ちになります。
もう1年間昇級出来ていない娘達も、審査中に指示されたことがわからないでおろおろしたり、きょろきょろと回りを見たりする事無く、正面を向いて技を披露することができるようになっていて、成長を感じさせられました。
僕もがんばらないとだめですね。

13日
バイオリンリサイタルがあったのは上述したとおりですが、もう一つ「カキが届いた」というのがあります。地元に戻ってから知り合ったタケボン氏のつながりで、去年から岡山のカキを一斗缶で何度か購入していて、今年もその注文の品が届きました。送料込みの約6,000円で、殻付きのカキがおよそ200個入っていました。もちろん我が家のみでは食べきれないので、職場の有志を募って共同購入し、4人で分けて帰りました。
子供もカキが大好きなので、とても喜んでいます。
来月もう一回注文するから、また声かけますよ。>なまさん。

他にも、amazonからWirewire800to400のケーブルが届きました。MacBook Pro(Late 2008)にしてからFirewire400のポートが無くなり、これまで昔の機器が使えずちょっと困ってましたが、これで復活。

また、詳細を語る事はできないものの、家で作って職場で動かしていたRuby製の文書・資産管理Webアプリケーションの導入が(半ば強引ではあったものの)正式に決定しました。しかもWindows全盛の職場において、家の開発環境と同じリンゴのマシンを使用することにまで許可が出て、早速発注、発注!!
購入に至るまでには一悶着どころではないごたごたもありましたが、来週には納品されるであろうマシンに心がワクワク、ウキウキ。
最終的にはそれを使って何がしかの成果を出さないといけないので、実際の苦労はこれから始まるのかもしれませんが、今はそんなことを少し忘れて浮かれていたい気分。

というところで、生きてますよ。
反省はたくさんしているものの、未だに大騒ぎする癖が治らない日々を送っています。

| | コメント (0) | トラックバック (1)

2009/11/04

何か大きな事をしたかったら、まず小さな事で「変わった事をする奴だ」と思われてしまうのが近道なのかもしれない

ホントかどうかはわからない。
証明もできない。
実例もよく知らない。
...けど、そんな気がする。

何か事を起こす時、人を説得するのはなかなか難しいです。
対等な立場の人を説得するのもそれなりに難しい。
自分と上下関係のある人を説得するのは、特に難しい。

別に説得なんてしなくても、勝手にやってしまうことだってできるかもしれない。
でも、あまり理解の無い行動は長続きしないのかもしれません。

そこで、「説得する」というプロセスに焦点を当てた時、それを簡素化することは可能なのかもしれないと感じるときがあります。

それが、タイトルにある『何か大きな事をしたかったら、まず小さな事で「変わった事をする奴だ」と思われてしまうのが近道なのかもしれない』です。

いちいち詳細を説明しなくても、それは「この人だから」というのが理由の一つとして利用できるようになれば、大きな事も意外とスムースに進むのかもしれない。

さて、「変わった事をする奴だ」と思われる方法はと言うと...

突飛なことでは意味が無い。
人のためにならないことでも意味が無い。

それは、地道で、人のためになり、そしてまだ誰もやっていないこと。
それでいて、突飛な印象を与え、ためにならないと感じさせ、誰でもできそうなこと。
...それを見つけるのが難しいかな。

さて、「気がする」とか「...かもしれない」とか、全然説得力の無い文の羅列になってしまいました...でも、これが実は小さな自信の現れだったりして。

| | コメント (0) | トラックバック (0)

2009/11/02

インターネットによって世界の広がった人、狭くなった人

最近、インターネットによって何が変わったのかというのをよく考えます。

いろいろと良くなった事もあると思います。
いろいろと悪くなった事もあると思います。

ただ、よく言われている「インターネットの登場によって世界が広がった」というのはどうなのかなと思うようになってきました。

確かに、一人ではできなかったようなことがインターネットによって複数人でできるようになって、そのおかげで大きな成果を出している事例はたくさんあります。僕自身、その恩恵を受ける事もたくさんあります。

しかし、インターネットに加えて検索サイトの登場により、情報の収集が簡単になった反面、検索サイトで検索できる範囲しかわからくなってきているということもあるように感じます。

自分で動く事なく、人が集めた情報を検索サイトで集めて、あたかも自分が調べたような錯覚に陥ったまま情報を利用し、実はそこに恣意的なものが入り込んでいたり、嘘があったりするかもしれないのに検証することなく信じ込んでしまっている人を時々見かけます。

かく言う、僕もその一人かもしれません。

そもそも、検索サイトに入力する文字列は自分が知りたい事であって、自分が興味の無い事を入力することなんてほとんど無いのではないでしょうか。そして、知りたい事や聞きたい事の中でも、自分と同じ意見や自分が望むことを選別し、情報として吸収する恐れがあります。
その情報が世界を広げるというのは、難しいのではないでしょうか。

むしろ、狭くなってしまうような気がします。

こんな事、昔から言われていて、今更なことなのかもしれません。
でも、こんな事を最近本当に頻繁に考えるようになってきたので、記事にしてみました。

近年では、ブログやネット上のニュースにコメントを投稿する事が一般的になり、そのコメントを読むことでネット上の個人の意見というものに触れる機会が多くなりました。しかし、そのコメントのほとんどは、「きちんと考えて投稿されたものなのかな」と疑ってしまうような内容ばかりに感じられます。
しかも、そのほとんどが一般的に追跡不可能な情報で、ゴミのようにインターネット上に放置されています。

きっと、「そんなコメントはとるに足りないものだから気にする必要は無い」と言われる人がいるでしょう。

僕もそう思います。
しかし、そんなとるに足りないものの多さに驚かされます。

そんなことに浪費する時間があるなら、その時間を他の事に使おうよ。
って、それは僕にも言える事かな...

僕のブログもそのような情報の一つかもしれません。

ただ、本当に欲しいものはインターネット上には無いからね。
情報だけでは世界は広がらないですよ。

それは、僕にとっての今後の課題です。

| | コメント (0) | トラックバック (0)

2009/11/01

なかうみマラソン全国大会

安来市で行われた、なかうみマラソン全国大会に参加してきました。
でも、自分の名前では出てないので、「きむらしのぶ」を探しても見つからないですよ。

どうしてそうなったかというと、職場で数人が申し込みをしていたのですが、その中でどうしても外せない用事ができてしまった人がいて、代わりに走る人を捜していたら白羽の矢が当たったということです。

走るのは嫌いではないので、二つ返事で「はい」と言い、当日は別人に成り代わって5km男子45歳以下のコースを走る事になりました。

一度は練習しようと思っていたのですが、結局練習なしで当日を迎え、結果は21分41秒で、53位(200人中)。
特に訓練するわけでもないのに、これくらい走れれば問題なし(と、自分を説得中)。

うーん、それでも抜かれていくとあまり気持ちよくないなぁ...この気持ちが続けば来年リベンジのために本名で参加してしまいそう。

しかし、大会の途中から大雨で大変。
屋台など、いろいろと準備されてきたことと思われますが、多くの人が走り終わると早々に帰ってしまってちょっと残念な感じでした。

そう言えば、去年の年末にチャリティージョギング駅伝に参加した時も雨だったような...もしかして、僕のせいか?

| | コメント (2) | トラックバック (0)

« 2009年10月 | トップページ | 2009年12月 »