2010年12月28日火曜日

Sony Reader 用に 自炊 PDF を調整する手順の防備録

自炊した PDF は、そのままでも Sony Reader で表示できますが、 文字がかすれたりして、かなり読みにくいものになります。 そこで、一手間かけて、Sony Reader 専用の PDF ファイルに変換することにしました。 以下は、その手順の防備録です。

PDF ファイルから画像を取り出す

自炊した PDF ファイルは画像のみで構成されていますので、その画像を取り出します。 この例では、page-連番.jpg という名前で取り出されます。

$ mkdir tmpdir
$ cd tmpdir
$ pdfimages -j fromdir/元文書.pdf page

表紙を編集

表紙を読み込む際際、可能であれば切断せず、長尺読み取り機能を利用して読み込んでいます。 自炊 PDF を作成する際に、ScanSnap 付属のソフトウェアで90度回転したりトリミングしたりして、 PDF ビュワーで表示させる分には問題ないように編集しています。 ところが pdfimages はこれを処理できないようで、編集前の画像をそのまま出力します。

これでは困るので、gimp で表紙などを編集します。 基本的に向きの変更とトリミングのみ。 この例は、カバーと帯の表裏を編集する場合です。

$ gimp page-00[0-3].jpg

画素数の変更と余白の切り落とし

ImageMagick の convert で処理します。 Sony Reader の画素数は 600 x 800 らしいのですが、画像を表示する場合は 584 x 754 にあわせると、 劣化が発生しないそうです。 余白部分を多少削ると、文字の表示に使用できる面積が増えます。 削りすぎに注意。

$ mkdir a
$ (for f in page-*.jpg; do convert -resize 654x824
    -type GrayScale -shave 35x35 -normalize $f a/$f; done)

表紙やイラストなど、余白がない頁は別枠で変換します。

$ (for f in page-00[0-3].jpg; do convert -resize 584x754
    -type GrayScale -normalize $f a/$f; done)

調整済み PDF ファイルの作成

ImageMagick の convert で処理します。

$ convert a/*.jpg a.pdf

ただ、convert は作成する PDF ファイルのタイトル属性に、 作成するファイル名を設定します。 Sony Reader は、ファイルの一覧で、この属性を表示するのですが、 日本語の名前だと文字化けします。 属性が設定されていなければファイル名が使用されるのですが、 ファイル名に日本語が使用されている場合は問題ありません。

私の使用している版の ImageMagick では、 この動作をしないようにするオプションが存在しませんので、 ソースコードを変更して対応しました。

--- coders/pdf.c.back Wed Apr 28 22:05:40 2010
+++ coders/pdf.c Tue Dec 28 15:33:26 2010
@@ -2459,9 +2459,11 @@
   (void) FormatMagickString(buffer,MaxTextExtent,"%lu 0 obj\n",object);
   (void) WriteBlobString(image,buffer);
   (void) WriteBlobString(image,"<<\n");
+#if 0
   (void) FormatMagickString(buffer,MaxTextExtent,"/Title (%s)\n",
     EscapeParenthesis(image->filename));
   (void) WriteBlobString(image,buffer);
+#endif
   seconds=time((time_t *) NULL);
 #if defined(MAGICKCORE_HAVE_LOCALTIME_R)
   (void) localtime_r(&seconds,&

これで、Sony Reader 上でそれなりに読める PDF の完成です。 画質の改善は、今後の課題ということで。

おまけ: Solaris 機から Sony Reader 用の SDHC カードに書き込む

Sony Reader 用に調整した PDF ファイルは、 /m/books0/00-Sony-Reader/ にまとめて置いています。 Sony Reader は直接接続せず、SDHC カードを介して、PDF を渡すようにしています。 ファイルを一つ一つコピーするのは面倒なので rsync コマンドで一発。 --modify-window=1 を忘れると、毎回書き込みが発生するので要注意。

$ rsync -a --modify-window=1 -v /m/books0/00-Sony-Reader/
       /media/NO\ NAME/books

2010年12月21日火曜日

AES って食べられますか?

久しぶりに、Xperia から OpenSolaris 機 (そろそろ OS を入れ替えないとね) にアクセスし、ファイルをダウンロードしようとしたところ、なぜか接続に失敗。以前は出来たので、何か変わったか。。。

解決策は、NEC のホーム WiMAX ルータ Aterm WM3400RN に、WEP ではなく、PA/WPA2-PSK(AES) で接続すること。さらにいえば、ネットワーク分離機能を使用しないこと。

有線 LAN と無線 LAN がネットワーク的に分離される設定なので、通信できなくなるのは当たり前です。 初期設定で、この機能は WEP で有効、AES で無効になっていました。暗号化の強度によって異なる設定なのは、納得できるところです。最初から AES を使っておけば良かったという話でした。

事務所のネットワークは、つい最近まで OKI 製の WiMAX ルータを使用していました。こちらも無線 LAN と有線 LAN の両方に対応した製品です。一年以上良い感じで使えていたのですが、数度、再起動が必要な状況に陥り、その後有線・無線 LAN 経由のアクセスに反応しなくなりました。仕方ないので、修理より安いということで WM3400RN を購入。導入があまりに楽だったので、設定をあまり考えなかったのが敗因でしょうか。

2010年5月26日水曜日

久々の ImageMagick

スキャナで取り込んだ画像を PDF に変換するために ImageMagick をインストールしたので、その防備録。

なぜ ImageMagick かというと、「convert JPEG to PDF linux」で探したら、ImageMagick で出来るよと言いうのがあったから。 ImageMagick は大昔は自分でインストールして使用していた時代がありましたが、最近はさっぱり。 標準のリポジトリを検索しましたが、見つからなかったので、自分でインストールすることに。

Google で「imagemagick source」を検索すると、一番上に求めるページが出てくるので、 素直にそこからソースコードをダウンロード。

$ wget -P /PATH/TO/DOWNLOAD/ ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz

続いて展開。

$ cd /PATH/TO/BUILD/
$ gtar xfz /PATH/TO/DOWNLOAD/ImageMagick.tar.gz
$ cd ImageMagick-6.6.2-0/

そして構築。 個人的に、ImageMagick のコマンド名の命名規則は許容範囲を大きく外れているので、 専用のディレクトリを作成してその下に入れることにします。 本当は Sun 謹製のコンパイラを使いたかったのですが、 構築時に警告メッセージ(軽微なものですが)が大量に表示されるので、 gcc を使うことにしました。

$ ./configure --prefix=/opt/free/imagemagick CC=/usr/gcc/4.3/bin/gcc CXX=/usr/gcc/4.3/bin/g++
$ gmake
$ gmake check
$ gmake install

実際に複数の JPEG ファイルを一つの PDF ファイルに変換するにはこんな感じ。

$ cd /PATH/TO/JPEG/
$ /opt/free/imagemagick/bin/convert *.jpeg target.pdf
$ acroread target.pdf

2010年5月17日月曜日

Ubuntu 10.04 を入れてみた

VirtualBox の更新があったので、 ついでに先日ダウンロードした Ubuntu 10.04 を VirtualBox に入れてみました。

驚いたのはインストールが早いこと。正味十分ほど。 インストールの途中は、自分の名前、パスワード、ホスト名を入れたくらいで、 何もすることが無くて寂しい。 後で df -k でディスクの使用量を見ると 3181052 となっていましたので、 約3GB を十分で書き込んだことになります。

ちなみに、Ubuntu 10.04 のダウンロードも、ほぼ同じく十分かかっていました。

$ wget -P /PATH/TO/DOWNLOAD/ http://ftp.jaist.ac.jp/pub/Linux/ubuntu-jp-cdimage/releases/10.04/ubuntu-ja-10.04-desktop-i386.iso
--2010-05-06 11:48:41--  http://ftp.jaist.ac.jp/pub/Linux/ubuntu-jp-cdimage/releases/10.04/ubuntu-ja-10.04-desktop-i386.iso
ftp.jaist.ac.jp (ftp.jaist.ac.jp) をDNSに問いあわせています... 150.65.7.130
ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 733184000 (699M) [application/octet-stream]
`/PATH/TO/DOWNLOAD/ubuntu-ja-10.04-desktop-i386.iso' に保存中

100%[======================================>] 733,184,000 1.12M/s 時間 10m 3s  

2010-05-06 11:58:44 (1.16 MB/s) - `/PATH/TO/DOWNLOAD/ubuntu-ja-10.04-desktop-i386.iso' へ保存完了 [733184000/733184000]

そしてログインすると、 アップデート・マネージャが重量なセキュリティアップデートを入れろとせかしてくるわけです。 こちらも数分で終わり。

続いて VirtualBox の Guest Additions を入れる。 「デバイス」から「Guest Additions のインストール」を選択。 /media/VBOXADDITIONS_3.1.8_61359 に移動し、

$ sudo ./VBoxLinuxAdditions-x86.run
と実行。

再起動せよと言われるので素直に再起動。 すると、う〜ん、なぜか画面が大きくなりました。 ま、この大きさにするつもりだったのでよかったわけですが。

2010年4月21日水曜日

せっかく ispell 入れたけど aspell に…

せっかく ispell を導入したのですが、 What's the Difference Between Ispell and Aspell? に気になることが書かれています。

...Its primary advantage is that it is better at making suggestions when a word is seriously misspelled... Its disadvantage is that the approximate-matching algorithm is specific to English.

私が綴りを確認したいのは英語なので、aspell の方が適しているのかもしれません。

となれば、早速 aspell をインストールします。 過去には OpenSolaris のリポジトリに存在したようなのですが、 最新のビルドでは見つからないため、自前で構築します。

まずは、インストール先の確保。 個人的な習慣なのですが、GNU 系のモジュールを自分で構築した場合は、/opt/gnu に配置することにしています。 最近は欲しいものがほとんどリポジトリから入手できるので、インストール先のディレクトリすら作成してませんでした。

$ pfexec mkdir /opt/gnu
$ mkdir /export/opt/gnu
$ pfexec vi /etc/vfstab
$ tail -1 /etc/vfstab
/export/opt/gnu - /opt/gnu lofs - yes -
$ pfexec mount /opt/gnu

続いて、aspell 本体を構築します。 実は最初は Sun 謹製のコンパイラを使用したのですが、コンパイルエラーになりました。 ならばということで gcc を試したのですが、これもコンパイルエラー。 gcc --version で確認すると 3.4.3。ちょっと古めです。 そういえばと言うことでパッケージマネージャーで gcc を検索すると 4.3.3 があったのでこちらをインストール。 ところがこのコンパイラでもエラー。 エラーメッセージに wget_wch というシンボルがでているので man コマンドで確認すると、XPG4 の curses ライブラリに含まれていることがわかります。 該当するファイル prog/check_funs.cpp を眺めても、curses がらみであることは明らかです。 となれば、CXXFLAGS を設定すればと考えたのですが、関係ない部分に影響を与えるのは馬鹿っぽいです。 README を眺めていると、--enable-curses--enable-curses-include を使えば良さそうです。

$ wget -P /PATH/TO/WAREHOUSE ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz
$ gtar xfz /PATH/TO/aspell-0.60.6.tar.gz 
$ cd aspell-0.60.6
$ ./configure --prefix=/opt/gnu CC=/usr/gcc/4.3/bin/gcc CXX=/usr/gcc/4.3/bin/g++ --enable-curses='-L/usr/xpg4/lib -R/usr/xpg4/lib -lcurses' --enable-curses-include=/usr/xpg4/include
$ gmake
$ gmake install

aspell をインストールした後は、辞書をインストールします。 こちらのインストールには先にインストールした aspell が使用されます。

$ wget -P /PATH/TO/WAREHOUSE ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-6.0-0.tar.bz2
$ bzip2 -d -c /PATH/TO/aspell6-en-6.0-0.tar.bz2 | gtar xf -
$ cd aspell6-en-6.0-0
$ PATH=/opt/gnu/bin:$PATH ./configure 
Finding Dictionary file location ... /opt/gnu/lib/aspell-0.60
Finding Data file location ... /opt/gnu/lib/aspell-0.60
$ gmake
$ gmake install

Emacs の中からは ispell という名前で起動しますので、 aspell が提供している ispell 互換スクリプトをインストールします。

$ cp -p scripts/ispell /opt/free/bin/ispell

ここで Emacs から M-x ispell を実行してみるとエラーになります。

Error: No word lists can be found for the language "ja_JP".

綴りを調べたいのは英語だけですので、先ほどのスクリプトで言語を指定することにします。

$ diff -u scripts/ispell /opt/free/bin/ispell
--- scripts/ispell 水 10月 27 02:12:17 2004
+++ /opt/free/bin/ispell 水  4月 21 16:59:50 2010
@@ -6,6 +6,8 @@
 #   mapping when checking files with the "ispell command".
 #CHECK_FLAGS="--keymapping=ispell"
 
+LANG=en_US.UTF-8 export LANG
+
 command=""
 
 for p

これで無事に aspell が使えるようになりました。

Emacs でスペルチェックしたいので

Emacs で ispell を使いたくなったのですが、OpenSolaris のリポジトリには無いので、久しぶりに自分で構築することにしました。

GNU Emacs FAQ を見ると、ispell は International Ispell から持ってくるのが良さそうです。現行のバージョンということで、ispell-3.3.02.tar.gz をダウンロード。

wget -P ~/PATH/TO/WAREHOUSE http://www.lasr.cs.ucla.edu/geoff/tars/ispell-3.3.02.tar.gz

README ファイルを見ると、local.h.solarislocal.h にコピーして、必要があれば編集しろとのこと。 多少の試行錯誤の結果、次のように変更。 TERMLIB は変更しないと "-lncurses" が使用されて、コンパイルに失敗します。 ファイルの置き場所は基本的に好みの問題ですが、セクション番号はシステムの流儀にあわせます。

--- local.h.solaris 水  4月 27 07:40:08 2005
+++ local.h 水  4月 21 11:16:08 2010
@@ -67,6 +67,8 @@
 #define USG  /* Define on System V or if term.c won't compile */
 #define HAS_RENAME
 
+#define TERMLIB "-lcurses"
+
 /*
  * Important directory paths.  If you change MAN45DIR from man5 to
  * something else, you probably also want to set MAN45SECT and
@@ -73,11 +75,11 @@
  * MAN45EXT (but not if you keep the man pages in section 5 and just
  * store them in a different place).
  */
-#define BINDIR "/usr/local/bin"
-#define LIBDIR "/usr/local/lib"
-#define MAN1DIR "/usr/local/man/man1"
-#define MAN45DIR "/usr/local/man/man4"
-#define MAN45EXT ".4"
+#define BINDIR "/opt/free/bin"
+#define LIBDIR "/opt/free/share/ispell"
+#define MAN1DIR "/opt/free/share/man/man1"
+#define MAN45DIR "/opt/free/share/man/man5"
+#define MAN45EXT ".5"
 
 /*
  * Place any locally-required #include statements here

そして構築してインストール。 ディレクトリの自動作成がうまくいっていないようなので、自分で作成。 そして単に make install とすると不要なファイルまでインストールされるので、 必要なファイルだけということで partial-install を指定。

$ make
$ mkdir /opt/free/share/ispell
$ make partial-install

これで、無事に ispell が Emacs から使用できるようになりました。

2010年4月14日水曜日

radiko.jp でエラー

最近、radiko.jp をよく利用しているのですが、選局でエラーになることに気づきました。 選局タブを選び、別のラジオ局を選ぶと、エラーウィンドウが表示されます。

Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.].

そこで VirtualBox 内で Windows 7 を起動。 Firefox で radiko.jp にアクセスすると、、、問題ありません。 でも、Adobe Flash Player のバージョンが微妙に古い? そこで最新に更新してみると、問題が再現しました。 バージョンが上がってバグ発生?

っと、もう一度選局してみると、もう問題が起きません。。。う〜ん、キャッシュの問題か。 別プロファイルで Firefox を起動し radiko.jp にアクセスしてみると、はい、問題ありません。 確定っぽいです。

radiko.jp は専用のプロファイルを使用してアクセスしていますので、 プロファイルを作成し直して、無事一件落着。

2010年4月13日火曜日

印刷できない!

firefox 上で Ctrl+P を押して印刷しようとしたのですが、プリンタがうんともすんとも言いません。 仕方ないのでファイルにPSとして出力し、無事印刷。 最近、両面印刷に設定を変えたのですが、ちゃんと両面に印刷。 当たり前といえば当たり前ですか。

しばらくして、渡してしまう書類の複写がほしくて、xsane のお世話に。 「コピー」を選択しておけば、一気に印刷できるのが便利。


でも、片面印刷で二枚でてしまったのが残念。両面印刷に出来るか確認せねば。

さらにしばらくして、firefox から別のページを印刷。 やっぱり何も言わずに終了。 今度は truss を使用して確認。

6164: forkx(0)     Err#12 ENOMEM [sys_resource]
6164: lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
6164: write(83, "FFFFFFFF", 4)   = 4
6164: write(81, "03\0\0\0", 4)   = 4
6164: write(81, "\f\0\0\0", 4)   = 4
6164: _exit(1)

fork で失敗、ENOMEM ということなのでメモり空間不足は確定。 top によれば、物理メモリ4G、スワップ2G、空き2G位で、 firefox-bin の大きさは1G弱。ふむ。 ログをもう一度見てみると、forkを二回していることに気づきました。 なるほどと言うことで、とりあえず無関係の VirtualBox を停止。 これで無事印刷できるように。 何というか、次にPC買うときはメモリは8Gか16Gにせねばと。

2010年4月9日金曜日

増殖するメールアドレス

ふと思ったのですが、個人的なメールアドレスの数がとても増えてます。

  • @gmail.com - 複数のアドレスを取得し、目的にあわせて使い分けています。 Firefox でアクセスしていますので、 用途に合わせてプロファイルを作成して、混乱しないようにしています。
    $ firefox -ProfileManager -no-remote
  • @yahoo.co.jp - とあるサービスの利用のために、メールアドレスを取得しました。 こちらも Firefox 経由ですね。
  • @xxxxxx.ocn.ne.jp - ウィルコムの通信サービスに入った際に、 OCN のサービスが必須だったため、流れで取得しました。 お金の支払い等が絡んだり、実名を登録しなければならない場合は、 このメールアドレスを使用することにしていました。 こちらは、Emacs で Mew を使用して POP でアクセスしています。
  • @docomo.ne.jp - iモード携帯電話を使用していますので、必然的に。
  • 090xxxxxxxx - SMS。iモード携帯電話でも使用できますが、 実際には自分で使ったことはありません。
  • @mopera.net - 最近 Xperia を購入したので、その流れで取得。 今のところ、利用する予定なし。
  • 090xxxxxxxx - SMS。Xperia 用です。こちらも利用する予定なし。
  • @nifty.com - 大昔に、nifty を利用していたことがあるので。
  • @地域ドメイン.jp - 以前、UUCP サイトを自前で運用していたのですが、 IIJ が UUCP サポートを廃止したので、それに伴い停止。

どうでも良いメールアドレスもありますが、重要なメールアドレスもあります。 その重要なメールアドレスの一つに、@xxxxxx.ocn.ne.jp があります。

実は今日、ウィルコムの通信サービスの解約手続きを始めました。 契約した当初はそれなりの目論見があったのですが、 実績を見ると、まったくではないものの、ほぼ無駄だったようです。 ここしばらくは、通信カードは取り出されて、埃をかぶっていました。

解約となると、問題となるのは @xxxxxx.ocn.ne.jp のメールアドレス。 このメールアドレスは残したいので、いきなり解約手続きに入ることはためらわれます。

そこでまず www.ocn.ne.jp を見てみると、 微妙に探しづらいプランに、OCNダイヤルアクセス「コミ・デ・プラン」があります。 一番安いもので月額420円。 プランの変更は Web から出来るようです。

それでも事故があると困るので、サポートに電話して相談。 事情を説明すると「OCN バリュープラン」が良いのではと即座に提案されました。 「OCN 各プラン比較」というリンクから行ける同名ページに記載されていたのですが、 自分では見つけられなかったプランで、262.5円からの従量制なのだとか。 その場で手続きをしてもらい、完了。

続いて、ウィルコムの解約手続き。 こちらはウェブの構成が壊れていますが、結局は電話をしなければならないことを理解。 電話して、手続きを進めてもらいました。

2010年3月18日木曜日

ついでに Windows 7 に Guest Additions を追加

ついでに、Windows 7 にも入れてみることに。 Windows 7 ゲストを起動し、 「VirtualBox」->「デバイス」->「Guest Additions のインストール」。
いきなり CD/DVD ドライブが開きどっきり。 物理ボタンを押して閉じると、今度は Windows 7 で自動再生。 「VirtualBox」->「デバイス」->「CD/DVD デバイス」を見ると、 ISO イメージがマウントされているようです。なぜか二つ表示されていますが。
以下のスナップショットは流れの通り。

アクセスは、「ネットワーク」->「VBOXSVR」の下なのね。

Guest Additions を更新するのを忘れていた件

OpenSolaris (ホスト)上の VirtualBox 内で実行している Ubuntu 8.0.4 (ゲスト)から、 ホスト上のファイルにアクセスできなくなっていました。 「VirtualBox」->「デバイス」->「共有フォルダ」では設定されいて、 以前使えていた時から設定は変更していません

ゲスト上でマウントするときのコマンドはこんな感じ。

$ sudo mount -t vboxsf name /path/to/mount/point

そういえば、、、最近 VirtualBox を更新したことを思い出しました。 USB を使えるようになった時のあれ。

ということで、さっくり Guest Additions を更新。 「VirtualBox」->「デバイス」->「Guest Additions のインストール」。 さくっと進めて、ゲストを再起動。 無事にホストのファイルにアクセスできるようになりました。

めでたしめでたし。

2010年3月17日水曜日

radiko.jp

IP(Internet Protocol)サイマルラジオ」の実用化試験配信が始まった (2010-03-15) ので試してみました。

推奨環境ではない OpenSolaris snv_134 上の Firefox でそのページを開くと、 結構人気? 「ただいま混み合ってます」とのこと。 潜在的な需要は多かったということなのでしょうか。

少し間を開けて、再度アクセス。今度は成功です。 ところが、なぜだか地域外と判定され、聴くことが出来ませんでした。 場所は東京都区内の事務所なのです。 回線は UQ WiMAX (無線) です。う〜ん、がっかり。

とは言いつつも、今日 (2010-03-17) もう一度試してみると、聴取できるようになっていました。 「お知らせ」タブに「地域判別について」という項目があり、ここから問い合わせが出来るようです。 きっと、どなたかが問い合わせをされたのでしょう。

2010年3月15日月曜日

Color Model

xsane がらみでいろいろ試していて、「コピー」をやってみた。 スキャナは ScanSnap S1500、プリンタは PIXUS iP4600。 印刷は出来たのだけど、色が変。 以前に印刷した地図の色も、よくよく見れば変。 そのときは、所詮こんなものでしょと思いこんでいたのだけれど、 画面に表示されたものと明らかに異なる。

そこで、CUPS のプリンター管理画面から「プリンターオプションの変更」を選択。 Color Model という項目に気づいた。 ここは初期値のままに放置していたので「RGB Color」。 ほかに「CMY Color」「CMYK」「KCMY」の三つがカラー印刷に関係ありそうだったので、 全部で試しに印刷してみた。 印刷イメージには、ぐるなびクーポンの地図を使用。

結果は、 CMYK と KCMY の二つは見分けがつかない。 赤(オレンジ)の発色は良い(鮮やか)のだけれど、 緑色の部分がかなり薄め。 図上の黒い字もかすれ気味。 それに対して CMY Color は画面表示にかなり近い。 図上の黒い字はしっかり印刷されているし、緑色もしっかり出てる。 赤(オレンジ)の発色は抑えめにはなっていて、微妙な感じではある。

ということで、これからは「CMY Color」で運用。

2010年3月12日金曜日

スキャナは動くのか?

SnapScan S1500 を購入したのですが、 無事画像を取り込めるようになりました。 使用しているのは snv_134 です。

関係したソフトウェア

  • SANE スキャナソフトウェア
    OpenSolaris パッケージimage/scanner/xsane 
    OpenSolaris パッケージimage/scanner/xsane/sane-backends 
    OpenSolaris パッケージimage/scanner/xsane/sane-frontend 
    xsane ソースコードhttp://www.xsane.org/メニューを日本語にするため
    sane-backends ソースコードhttp://www.sane-project.org/最新の版にするため
  • GIMP 画像エディタ
    OpenSolaris パッケージimage/editor/gimp連係して動作するので
  • コンパイラ
    OpenSolaris パッケージsunstudioexpresssunstudio12u1 でも問題ないと思います

パッケージを導入

OpenSolaris のパッケージを導入しました。 パッケージマネージャーを使ったので、とても簡単。 GIMP と Sun Studio Express は以前に導入していたので、今回は何もしていません。

xsane のメニューを日本語に

xsane のソースコードをダウンロード、展開し、日本語のメッセージファイルを取り出します。

$ wget -P /PATH/TO/DOWNLOADDIR/ http://www.xsane.org/download/xsane-0.997.tar.gz
$ gtar xfz /PATH/TO/DOWNLOADDIR/xsane-0.997.tar.gz
$ cp -p xsane-0.997/po/ja.gmo /PATH/TO/CATALOGDIR/xsane.mo

sane-backends をコンパイル

OpenSolaris のリポジトリにある sane-backends は 1.0.19 で、 これには SnapScan S1500 のサポートが含まれていません。 /etc/sane.d/fujitsu.conf を編集すれば認識しますが、 多々問題があるようです。 そこで、1.0.20 のソースコードをコンパイルして、必要なモジュールを使用します。

$ wget -P /PATH/TO/DOWNLOADDIR/ ftp://ftp.sane-project.org/pub/sane/sane-backends-1.0.20/sane-backends-1.0.20.tar.gz
$ gtar xfz /PATH/TO/DOWNLOADDIR/sane-backends-1.0.20.tar.gz 
$ cd sane-backends-1.0.20/
$ CC=cc ./configure --prefix=/usr
$ gmake
$ gmake
$ cp .libs/libsane-fujitsu.so.1 /PATH/TO/LIBDIR/

gmake 中にエラーが起きたのですが、無視して再度 gmake。これで最後までいきました。

xsane 起動スクリプトを作る

メッセージファイルとライブラリをシステム側に放り込むことも出来るのですが、 将来的に正式に入った場合にいやなことが起きるのはいやなので、 このようなスクリプトを作って自分の bin に置きます。 NLSPATH を設定すると、 自分のディレクトリにおいたメッセージファイルを参照させることが出来ます。 LD_PRELOAD を設定すると、 指定した共有ライブラリを、 システム側に存在する同名のライブラリの代わり使用することが出来ます。 このライブラリの置き換えが正しく行われたかどうかは、 pldd コマンドで調べることが出来ます。

$ cat ~/bin/xsane
#!/usr/bin/sh

NLSPATH="/PATH/TO/CATALOGDIR/%N.mo" export NLSPATH
LD_PRELOAD=/PATH/TO/LIBDIR/libsane-fujitsu.so.1 export LD_PRELOAD

exec /usr/bin/xsane "${@}"

GIMP に xsane 起動スクリプトを認識させる

GIMP を起動したことがない場合は、一度起動して終了させます。 そのあと、
$ ln -s ../../bin/xsane ~/.gimp-2.6/plug-ins/

update_drv コマンドを実行

SnapScan S1500 の電源をつなぎ、USB ケーブルを接続し、蓋を開きます。 ここで、update_drv を実行します。

OpenSolarisでscansnap、名刺ファイリングソフトで名刺を管理 を参考にさせていただきました。
$ pfexec update_drv -a -i 'usb4c5,11a2.100' ugen

/etc/sane.d/fujitsu.conf を更新する

エディタで、次のように更新しました。

$ diff -u /etc/sane.d/fujitsu.conf{.orig,}
--- /etc/sane.d/fujitsu.conf.orig 水 12月  2 16:25:05 2009
+++ /etc/sane.d/fujitsu.conf 火  3月  9 21:04:39 2010
@@ -62,3 +62,6 @@
 
 #scansnap S510
 usb 0x04c5 0x1155
+
+#scansnap S1500
+usb 0x04c5 0x11a2

デバイスにアクセスできるようにする

実は、まだデバイスにアクセスできるようにする、格好のいい方法を見つけられていません。 USB ケーブルを抜いたり蓋を閉じたり、つまり電源を切るとこのノードは消えるので、 一度所有者を変えればいいといったものではないのです。 とりあえずは力業の chown を必要な時に実行しています。

$ ls -lL /dev/usb/4c5.11a2/0/
total 0
crw-------   1 root     root      96,  2  3月  9 20:25 cntrl0
crw-------   1 root     root      96,  3  3月  9 19:16 cntrl0stat
crw-------   1 root     root      96,  1  3月  9 19:16 devstat
crw-------   1 root     root      96,  4  3月  9 19:16 if0in1
crw-------   1 root     root      96,  5  3月  9 19:16 if0in1stat
crw-------   1 root     root      96,  6  3月  9 19:16 if0out2
crw-------   1 root     root      96,  7  3月  9 19:16 if0out2stat
$ pfexec chown 自分の名前 /dev/usb/4c5.11a2/0/*

これでひとまず

これでひとまず動くようになりました。 実際には、かなりの試行錯誤になったので、 その記録はまた別途。

2010年3月5日金曜日

evince で豆腐

evince で PDF ファイルを表示・印刷するとき、 フォントが埋め込みでない場合は豆腐になるようです。

ネットで検索すると Linux 系でも似た問題が出ていたり、 修正したよとか、そんな感じの話も出ています。 ユーザ側で出来そうな対応策ありました。

一つめは、フォントファイルが *.otf になっているのがいけないということで、 *.ttf のフォントを入れてしまえばいいというものです。 IPAモナーフォントが手軽なので、${HOME}/.fonts に入れてみました。 ぱっと見改善したのですが、数字関係が全滅で、依然それらは豆腐として表示されています。

二つめは、${HOME}/.fonts.conf ファイルを編集するというものです。

<?xml version="1.0"?>  
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family">
      <string>sans-serif</string>
    </test>
    <edit name="family" mode="prepend" binding="strong">
      <string>IPAMonaPMincho</string>
    </edit>
  </match>
</fontconfig>

こちらはなんと豆腐がすべて消えました!!

いやいやちょっと待て、豆腐が消えただけで、文字は表示されていません。

仕方がないのでほかの対応策を検討。 VirtualBox 上の Windows 7 で印刷する、VirtualBox 上の Ubuntu で印刷する。 どれも可能そうですけどうれしくありません。

ようやくたどり着いた解決策は、PDF の本家 Adobe です。 Adobe Reader 9.1 for Linux and Solaris x86 Released! にそのような話が。 Adobe - Adobe Readerのダウンロード から無事ダウンロードでき、インストールも問題なく、表示・印刷もいい感じで出来ました

2010年3月3日水曜日

Flash を更新するだけなのにシステムの再起動…

更新マネージャーで、Adobe Flash Player の更新できるとなっていたので、素直に更新した。 すると、再起動をするかと聞いてきた。

ここで、失敗に気づいた。 BE が作られるので、有効にするためにはその BE に切り替える必要がある。 すなわちシステムの再立ち上げが必要になる。

Flash 自体は、私の使い方だと Firefox 経由だけなので、Firefox だけを再起動したい。 それが私の希望。 これができるか、次の機会に試してみるつもり。

2010年2月25日木曜日

ATOK のヘルプが表示されない

ヘルプが表示できません。 ATOKプロパティで見ると、ヘルプブラウザの設定が /usr/dt/bin/sdtwebclient になっています。 個人の設定ファイルは ${HOME}/.iiim/le/atokx2/users/`whoami`/atokx2.aen で、 システムの設定ファイルは /usr/share/iiim/le/atokx2/original/atokx2.aen ですね。

ヘルプブラウザを /usr/bin/firefox に変更すると、 無事にヘルプを参照できるようになりました。

2010年2月24日水曜日

ATOK の同音語の使い分け情報が縦に表示される

ATOK には、同音語の使い分け情報を表示してくれる機能があります。 たとえば「あんごう」を入力すると、「暗号」と「暗合」の使い方の違いを示してくれる、 結構便利な機能です。
ところが、OpenSolaris で使用するとこの情報が縦に表示されて、 かなり読みにくいのです。

横向きの三角形が表示されている候補を選択していると、 同音語の使い分け情報が表示されます。

別の場所で使用中の Nevada ビルドでは、候補と同じように横書きで表示されています。 どうしてこうなっちゃったのでしょうね。

2010年2月23日火曜日

CUPS のテストプリントで豆腐が印刷される件

CUPS のテストプリントで豆腐が印刷される件について、軽く調べてみた。

印刷データを生成するのは、 /usr/sbin/cupsd から起動される /usr/lib/cups/cgi-bin/printers.cgi

Printer Test Page の元ネタは /usr/share/cups/data/testprint。 どのような形式か調べていないけど、 表示されている内容や図が実際に印刷されているものと一致している。

$ cat /usr/share/cups/data/testprint
#CUPS-BANNER
Show printer-name printer-info printer-location printer-make-and-model printer-driver-name printer-driver-version paper-size imageable-area
Header Printer Test Page
Footer Printer Test Page
Notice This test page was produced by CUPS 1.4.2.
Image images/cups.png
Image images/color-wheel.png

/usr/share/locale/ja/cups_ja.po を参照しているのだけれど、 このファイルは壊れている。 行の先頭の引用符が、二カ所抜けている。

$ diff -u /usr/share/locale/ja/cups_ja.po{.orig,}
--- /usr/share/locale/ja/cups_ja.po.orig 水 12月  2 16:26:40 2009
+++ /usr/share/locale/ja/cups_ja.po 火  2月 23 16:40:26 2010
@@ -4391,7 +4391,7 @@
 "  -p filename.ppd  Set PPD file\n"
 "  -t title         Set title\n"
 msgstr ""
-使い方: cupsfilter -m mime/type [ options ] filename\n"
+"使い方: cupsfilter -m mime/type [ options ] filename\n"
 "\n"
 "Options:\n"
 "\n"
@@ -4436,7 +4436,7 @@
 "    -v                   Be slightly verbose\n"
 "    -vv                  Be very verbose\n"
 msgstr ""
-使い方: cupstestppd [オプション] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"使い方: cupstestppd [オプション] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
 "       program | cupstestppd [オプション] -\n"
 "\n"
 "オプション:\n"

/usr/lib/locale/ja.UTF8/ja.UTF8.so.3/usr/lib/locale/ja.UTF8/LC_MESSAGES/SUNW_OST_OSLIB.mo といった 誤ったパスを参照している。

/usr/lib/cups/filter/bannertops/usr/lib/cups/filter/pstops/usr/lib/cups/filter/pstoraster/usr/bin/gs/usr/lib/cups/backend/hal/usr/lib/cups/filter/rastertogutenprint.5.2 といったプログラムが起動されていく。

/usr/lib/cups/filter/bannertops/usr/lib/cups/filter/pstops/usr/lib/cups/filter/pstoraster/usr/lib/cups/filter/rastertogutenprint.5.2/usr/lib/locale/ja.UTF-8/ja.UTF-8.so.3 を読み込む。 これもまた誤ったパス。

/usr/share/locale/ja/cups_ja.po を修正し、 ja.UTF-8ja.UTF8 を捏造しても、 豆腐は解消しなかった。

/usr/share/locale/ja/cups_ja.po を変更すると 印刷されるテストページの内容が変わる。

特に困っていないのでここまで。

2010年2月22日月曜日

印刷の設定

以前から Gutenprint を自前でコンパイルして使用していました。 b127 で Gutenprint がリポジトリに追加されましたので、 こちらに切り替えることにします。 OpenSolaris は今日更新したので b133。 プリンタは昨年春先に量販店で購入した Canon PIXUS iP4600。 購入理由は、店頭にあって、そこそこ安かったから。

準備

現状の関連ファイルは ZFS の snapshot で保存し、万が一に備えます。
$ pfexec zfs snapshot rpool/ROOT/opensolaris-8@20100222-pre-rm-gutenprint
$ pfexec zfs snapshot rpool/export/opt@20100222-pre-rm-gutenprint

削除

CUPS の管理用のWebインタフェースで見るとこんな感じ。「システム」->「システム管理」->「Print Manager」を使わないのは、特に意味はないと主張しておきます。

プリンタを選択すると詳細が出てきます。

以前は Gutenprint を明示的に指定できるような箇所があったように記憶しているのですが、 インタフェースが変わったせいか今はそれを見つけられません。 今使っている設定を削除し、Gutenprint を入れ直すことにします。
削除は「管理」から「プリンターの削除」を選択。


寂しい画面です。

自分で Gutenprint を導入したときに、 DESTDIR= で gutenprint-dist を指定してイメージを保存しておいたので、 それを参照して削除するファイルを決定。 
/etc/cups/command.types は、 システム標準のものと有意な差がなかったので、更新しませんでした。 従って戻す必要なし。

導入

パッケージマネージャーを使用して、Gutenprint を導入します。 Gutenprint を検索すると、 SUNWgutenprint と print/filter/gutenprint の二つが表示されます。 メイリングリストによると、b133 でパッケージの命名規則が変わったようで、 後者が新しい規則によるもののようです。 選択して「インストール/更新」。
CUPS の管理画面より、「新しいプリンターの検索」

なぜかプリンターが二回表示されています。 大事なことだからでしょうか… ともかく、最初のもので追加。

正しいドライバを見つけてきたようです。 ただ、名前としては「_series」はよけいだと思うので削除。「続ける」。

メーカーが選択されていないので、「Canon」を選択。「続ける」。

「Canon PIXMA iP4600 - CUPS+Gutenprint v5.2.4 (en)」を選択。 「Simplified」との差は知りません。「プリンターの追加」。

「プリンターオプションの設定」画面に遷移しました。 Media Source は度々問題になっているのですが、とりあえずは放置。

とりあえずテストページを印刷してみます。

予定通り、プリンターがエラーになりました。 手差しで給紙されることを要求しているようです。 やはり、「Media Source」の 「Automatic Papter Source Switching」はうまく動いていないようです。
仕方ないので「Cassette」に変更。 無事、テストページは印刷されました。

余談

ところで、以前の OpenSolaris に載っていたCUPS 1.3.x と、 b133 に載っている CUPS 1.4.2 では、 テストページが変わっています。 以前のは情報量が多い感じで、新しいのはすっきりとしています。 あと、新しい方では文字化けではないかと思われる豆腐が印刷されているのが気になります。

2010年2月19日金曜日

ntp を設定した

NICT、日本標準時のNTPサーバーをJPIXに設置 を読んだ。 ふと見ると、机の上に置いてある電波時計の時間とパネル上に表示されている時間が二分ずれていた。 いけませんね…

ということで ntp を設定。

まずは設定ファイルを確認。雛形はありますが、ntp.conf 自体は存在せず。

$ ls -l /etc/inet/ntp.*
-rw-r--r--   1 root     sys         4427 10月 23 17:48 /etc/inet/ntp.client
-rw-r--r--   1 root     sys         4856 10月 23 17:48 /etc/inet/ntp.server

そこで、ntp.clientntp.conf に複写し、編集。

$ pfexec cp /etc/inet/ntp.{client,conf}
$ pfexec vi /etc/inet/ntp.conf
$ diff /etc/inet/ntp.{client,conf}
51c51,52
< server server_name iburst
---
> #server server_name iburst
> server ntp.nict.jp iburst

そして、サービスを起動。ついでに動作していることを確認。

$ svcadm enable ntp
$ svcs ntp
STATE          STIME    FMRI
online         13:45:04 svc:/network/ntp:default
$ ps -fe | grep ntp
    root  5159     1   0 13:45:04 ?           0:00 /usr/lib/inet/ntpd -p /var/run/ntp.pid -g

数分後には、無事時計が同期されました。めでたし。

2010年2月17日水曜日

フォントを編集

準備

fontforge は OpenSolaris のパッケージリポジトリに入っていないようなので、 自分でバイナリを構築します。関係者の方々に感謝!!
http://fontforge.sourceforge.net/ より、fontforge のソースコードを入手。 適切な場所に展開し、構成、構築、インストール。(実際にはインストールする前に動作確認をしますが…)
$ bzip2 -d -c fontforge_full-20090923.tar.bz2 | gtar xf -
$ cd fontforge-20090923
$ ./configure --prefix=${PATH_TO_DESTDIR}
$ gmake
$ gmake install
OpenSolaris snv_132 ja_JP.UTF-8 環境では入力方式との絡みで落ちるので、 シェルスクリプトをかませて起動するようにします。
LC_CTYPE=C exec PATH_TO_DESTDIR/bin/fontforge "$@"

編集

システム標準の日本語系フォントは /usr/share/fonts/TrueType/ipafont/ にあります。
$ ls /usr/share/fonts/TrueType/ipafont/
fonts.dir    ipag.otf     ipagp.otf    ipam.otf     ipamp.otf
fonts.scale  ipag.ttf     ipagp.ttf    ipam.ttf     ipamp.ttf
一般ユーザの権限で fontforge を実行し、ゴシックフォントを編集します。
$ fontforge /usr/share/fonts/TrueType/ipafont/ipag.ttf
 

このウィンドウは自動的に閉じるようです。


警告メッセージのようですが無視します。


このウィンドウで編集したい文字を探し、その文字をダブルクリックします。


このウィンドウで編集するわけですね


レイヤーを操作するのでしょうか。使ったことがありません。


道具箱と呼んでいいのでしょうか。何をするかここで決めます。

編集方法は体で覚えるしかないのですが、微調整は数字を直接入力しました。 道具箱で矢印を選び、エディタ上で点を選択して右クリック。 メニューから「情報を得る…」を選択。

「同じ輪郭上の前の点」「同じ輪郭上の次の点」などを使用して前後の点の位置を確認し、 「基点(B)」の数値二つを編集します。
曲線部分の曲がり具合を微調整するには、「前の制御点」「次の制御点」の数値を変えます。

保存

できあがったフォントを保存する前には、フォントの名前を変更します。 「エレメント」->「フォント情報」で設定します。

「名前」では、「フォント名(N)」、「ファミリー名(F)」、「表示用の名前(S)」を変更します。

「TTF名」では、 「日本語」の「ファミリー」、「日本語」の「UniqueID」、「日本語」の「フルネーム」、 「英語(アメリカ)」の「UniqueID」を変更します。
そして「OK」。
「ファイル」->「ファイル名を指定して保存」。
続いて、「ファイル」->「フォントを出力」。

「TrueType」を指定し、「Validate Before Saving」を解除します。 どこかに問題があるようで、検証を行うとフォントを出力できません。
出力したフォントは ${HOME}/.fonts に置くと、使うことができます。 「システム」->「設定」->「外観の設定」->「フォント」の選択肢に出てくるようになります。 また OpenOffice でも選択できるようになります。

余談

入力方式がらみで落ちたときに生成される core ファイルの情報。
$ pstack core
core 'core' of 3979: ./fontforge
 fe325005 _lwp_kill (1, 6, 8045e0c, fe2cbbde) + 15
 fe2cbbea raise    (6, febc5bb4, 4000140, c8) + 22
 feba9c0e myerrorhandler (83b4090, 8045f44, 20, fe6f159e) + ca
 fe6f1696 _XError  (83b4090, 8046024, 20, fe6d514e) + 106
 fe6d5541 _XReply  (83b4090, 8046024, 0, 1) + 401
 fe6daede XSync    (83b4090, 0) + 72
 fdd56686 JcxsoS_SendProc (dacdc60) + 3e
 fdd565f4 JcxsoS_PushMessage (dacdc60, dc81ee0) + 5c
 fdd5408e SocmnS_SendToAtokAuxd (844b030, dad3d08, 1, 5c, 5, dad4828) + 2f6
 fdd52779 SocmnS_Draw (dad3d08, 80461d0, 0, fdea1a11) + 131
 fdea1a65 IIimpAuxDraw (8652f80, 8659428, 0, fde9ead1) + 61
 fde9f933 IMProcessIncomingEvent (8652f80, 86590c8, 4000140, 0) + e73
 fde9fb5d IMChangeFocus (8652f80, 0, df6f898, fde93f30) + a1
 fde93f5b _Ximp_Local_UnSetFocus (8652f80, fde91fe4, fde920d4, fded0b10) + 37
 fde95ad0 SWITCH_DestroyIC (8652f80, 4000140, fdeb0888, 8652f80) + 5c
 fdeb1262 DestroyIC (8652f80, dcafb10, dcafb10, fe70fada) + 52
 fe70faf1 XDestroyIC (8652f80, febd91f8, 8046718, febb2253, 4, 8046690) + 21
 febb22a7 dispatchEvent (83b4090, 8046740, 80467b8, febb2f9f) + c87
 febb2fb4 GXDrawEventLoop (8440520, 1, 0, feb5f935) + 4c
 feb5f968 GDrawEventLoop (0, 0, 0, 9, 0, feffb2e0) + 40
 0819cfe9 main     (1, 80478bc, 80478c4, 81b0ec0, 0, 0) + c91
 0807eb7f _start   (1, 80479ec, 0, 8047a04, 8047a33, 8047a61) + 83

余談その弐

最初、fontforge を試したときにうまく動かなかったので、 Windows 7 と Ubuntu も試してみました。
当然、Windows 7 は OpenSolaris 上の VirturlBox で動かします。 Windows 7 の標準のフォントエディタを起動してみると、 残念、ビットマップフォントしか編集できないみたい? ちょっと弄って見ましたが、早々に諦め。
続いて Ubuntu。こちらも OpenSolaris 上の VirturlBox で動かします。 標準では fontforge は入っていないのですが、 apt-get でさくっとインストールできました。 感謝感謝。 OpenSolaris で使用しているフォントと同系統のものもあります。
$ ls /usr/share/fonts/truetype/ttf-ipamonafont
ipag-mona.ttf ipagp-mona.ttf ipagui-mona.ttf ipam-mona.ttf ipamp-mona.ttf
フォントの字形の編集は(試行錯誤しつつも)問題なく終了。 OpenSolaris 上に持って行き、 ${HOME}/.fonts に置いて、 OpenOffice.org から参照でき、印刷できることも確認。 すべてがうまくいっていると思っていました。
ところが、ふと見ると、デスクトップのパネルのフォントがみすぼらしいことに気づきました。 よくわからないままいろいろなものを見ていると、 gnome-terminal のフォントも変ですし、 FireFox も変です。
試しに字形を変更した文字を表示させてみると、変更されていました。 OpenOffice.org 内だけで有効だと思っていたのですが、 なぜかデスクトップ全体に有効になっていたようです。 「システム」->「設定」->「外観の設定」->「フォント」では設定を変更していないのになぜ…
仕方がないので、OpenOffice.org で使う作業が終わった後、 ${HOME}/.fonts を別の名前に変更してログインし直し。 とりあえずの問題は解決しましたが、なぜこうなったのかは今も謎です。
ちなみに、今は OpenSolaris のフォントを編集し、 ${HOME}/.fonts に起きっぱなしにしています。 元々同じフォントなので、パネルとかに使われても見た目には問題ありません。 ただ、時々編集した文字を表示させて確認していますが、 今のところその文字は編集されていない標準的な字形で表示されています。

2010年2月15日月曜日

明朝フォントがない!!

fontforge でフォントの情報を見ようと思って /usr/share/fonts/TrueType/ipafont を探ったところ、 明朝フォントが見あたりません。 以前、OpenOffice で名刺を作ったとき、その過程で明朝フォントは試しましたし、 見た目も明朝体で表示されたことは記憶にありますから、 どうも変です。 対象のファイルは ipam.ttfipamp.ttf なのですが、 そのフォント名にも記憶があります。

ただ、そのときは Ubuntu から フォントを持ってきたりしていたので、 それが使われていたと言われると、否定はできません。 また、fonts.dir の内容を記憶しているだけかもしれません。

念のため、現在のもの以外の起動環境を片っ端からマウントして調べてみましたが、 ここだというものが見あたりません。

$ pfexec zfs set mountpoint=/mnt rpool/ROOT/opensolaris-3
$ pfexec zfs mount rpool/ROOT/opensolaris-3
$ ls /mnt/usr/share/fonts/TrueType/ipafont
$ pfexec zfs umount /mnt
$ pfexec zfs set mountpoint=/ rpool/ROOT/opensolaris-3

とは言っても、 /usr/share/fonts 自体が存在しない起動環境がいくつもありましたから、 調べ方を間違えている可能性はかなりあります。

これではらちがあかないので、パッケージマネージャーで font を検索してみたところ、 明朝フォントがインストールされていないとでました。 とりあえずの問題はそれをインストールして終わり。

今ひとつ釈然としませんが、これ以上の追求はやめておきます。

2010年2月12日金曜日

VirtualBox で音が鳴らないのですが…

これは Windows 7 の話だったりします。
解決策は簡単。 realtek.comからドライバ(AC'97 Audio Codecs) をダウンロードして、Windows 7 側にインストールすれば解決。 あとは、VirtualBox の「設定」で設定。

元ネタはこちら

「アプリケーション」メニューの開き方

Alt-F1。以上。

私の基本方針の一つに、鍵盤でできることは鍵盤で、があります。 Nevada を使っていたときは、Ctrl-ESC に割り当てていて、 便利に使っていました。これは、Windows と同じですね。
OpenSolaris に移行してからこの割り当てがわからなくなって困っていました。 たまたま読んだ記事 Linux 高速化のための5つのヒント(1) に「Alt+F2、Run Command クイックランチャー」とあったので試して納得。 ついでに Alt+F1 を試して万歳! でした。 ちなみに、Alt+F4 とか Alt+F9 などは常用しているので、 なぜ Alt+F1 に気づかなかったのは謎です。

2010年2月9日火曜日

名刺を作ってみた

なんとなく個人用の名刺を作りたくなりました。 もちろん、OpenSolaris 上で、OpenOffice.org を使用します。 印刷用の用紙は市販のもので、今回はコクヨのものを使用しました。
OpenOffice.org で「ファイル」->「新規作成」->「名刺」と進めば 既製の雛形を利用して極めて簡単に作成できるのですが、 残念なことに私の望む書式の雛形はありません。 となれば自分で雛形を作るしかないということで、ささっと検索。
むぅ、どうも思うようなページに辿り着けません。 それではと「openoffice how to create business card template」で検索してみたところ、 How are business card templates created? でラベルとして作る方法を紹介していました。 「名刺」の機能はウィザードっぽいものが出てきて格好いいのですが、 それをあきらめさえすれば「ラベル」で良さそうです。
ということで、以下は私の個人的な名刺の作り方。

雛形を作る

「ファイル」->「新規作成」->「ラベル」で「ラベル書き」ウィンドウが表示されます。

下の書式区画で用紙の製造元や種類を選択できるのですが、 私が買ってきた用紙にぴったりのものはここになかったので、 「書式」タブで印字位置などを設定します。

「保存」ボタンを押すと、「ラベル書きの書式を保存」ダイアログが表示されて、 製造元と種類を設定できます。

「オプション」タブでは、「ページ全体」を選択し、「内容を同期させる」を有効にします。

「新ドキュメント」ボタンを押すと Writer ウィンドウと、 「ラベル書きを同期させる」というボタンがおかれた小さなウィンドウが開きます。


「書式」->「ページ」でページスタイルを指定します。

「ページ」タブで用紙サイズと余白を指定します。 用紙サイズは買ってきた用紙にあわせて A4。 余白は、用紙の説明書に記載された数値に左と上をあわせます。 「右」と「下」は小さな値に。「右」と「下」の値を正確な数字に合わせると、 ページから溢れるようです。

そして「OK」。

各区画が上下に二分割されていますので、左上隅の区画の内側をクリックして、 Enter を数回押して区画を広げ、「ラベル書きを同期させる」ボタンをクリックします。

ここからの作業は、左上隅の区画だけを対象とします。
最初に、名前のための枠を配置します。 区画内をクリックし、カーソルを左上隅に移動した後、メニューより「挿入」->「枠」。

「種類」タブでいくつか設定。 「幅」で「割合」を有効にし、「80%」を指定します。 「高さ」も「割合」を有効にし、「12%」を指定します。 「位置区画」では、「横」は「中央」「段落範囲」、 「縦」は「最上部から」「0.9cm」「ページのテキスト範囲」。

「オプション」タブで、「位置」と「サイズ」を保護します。

そして「OK」。
「外枠」タブで、「線」の「スタイル」を「-なし-」にします。

そして「OK」。
枠の中をクリックし、フォント名を「IPAゴシック」、フォントサイズを「16」に設定します。
続いて、肩書きのための枠を配置します。 区画内をクリックし、カーソルを左上隅に移動した後、メニューより「挿入」->「枠」。 幅の割合は同じく80%、高さは6%、横は「中央」段落範囲」で、 縦は「最上部から」「1.8cm」「ページのテキスト範囲」。 フォント名を「IPAゴシック」、フォントサイズを「8」に設定します。
さらに続いて、連絡先のための枠を配置します。 区画内をクリックし、カーソルを左上隅に移動した後、メニューより「挿入」->「枠」。 幅の割合は同じく80%、高さは34%、横は「中央」段落範囲」で、 縦は「最上部から」「2.75cm」「ページのテキスト範囲」。 フォント名を「IPAゴシック」、フォントサイズを「8」に設定します。 「書式」->「配置」->「右揃え」を設定します。

連絡先のための枠の中に表を作成します。 枠の中をクリックし、メニューから「挿入」->「表」。

「列」を1、「行」を5に設定し、枠を外して「OK」。

挿入した表の上三行を選択し、フォント名を「Courier」に変更します。
「ラベルを同期させる」ボタンをクリックし、雛形の完成です。

できあがった雛形は、「ファイル」->「ドキュメントテンプレート」->「保存」から保存します。

雛形を使って名刺を作る

さて、「ファイル」->「新規作成」->「テンプレートとドキュメント」で新たにファイルを作成します。

リンクを更新するか尋ねてきますので「はい」。

作った雛形と同じものが出てきます。

左上隅の区画に、氏名(読み)、肩書き、連絡先を入力します。

そして「ラベル書きを同期させる」をクリック。

そして印刷

試し刷りは前面カセットから給紙、本番は後ろ側のトレイから専用の用紙を給紙。 私の環境では、なぜか OpenOffice.org の印刷ウィンドウの「プロパティー」から「Cassette」を指定してもそれが有効になりません。
「書式」->「ページ」の「ページ」タブの「給紙方法」で「Cassette」を指定すると、 前面のカセットから給紙されるようになりました。 本番の印刷では、ここで「Rear tray」を指定するわけです。