2011/01/19(水)XMDF形式の電子書籍を無理やり変換してkindleで読む

2011/01/19 08:08 kindleimportnucho
先日,Amazonの電子書籍リーダーであるkindle3が届いて喜んでいたのですが,日本の電子書籍に多いXMDF形式が読めないのが悔しくて,電子書籍自体の自炊という珍妙な作業を行ってみました.

おおまかな手順としては
  1. 電子書籍準備
  2. ブンコビューアでページを送りながら全てスクリーンショットをとる
  3. トリミングする
  4. pdfに変換
という無理やりで単純な作業です.以下にやった手順をざっとまとめてみます.

XMDF形式の電子文庫を準備する

当たり前ですが電子文庫を準備しましょう.
とりあえずどんな風に見えるかが確認したい場合は電子文庫パブリなどの立ち読み用のデータを使ってみると良いかと思います.

ブンコビューアでスクリーンショットを撮る

準備した電子書籍をブンコビューアで読み込み,スクリーンショットを撮っていきます.
人の手で何百頁もスクリーンショットを撮っていくのはただの拷問なので,UWSC Free版という自動化ソフトの手を借りました.
なお,kindleの画面に合わせるためブンコビューアは可能な限り小さいサイズ(800*600?)にし,右上の三角を押してメニューを隠した状態で作業を行いました.

dir = "c:\book\title"//保存フォルダ
page = 500//ページ数のパラメータ
wait=0.2//ウェイトタイム 0.2sec

while True
    ifb GETKEYSTATE(VK_UP)
	for count = 1 to page
       		id = GETID(GET_ACTIVE_WIN)
		SAVEIMG(dir+"/"+count, id, , , , , , 85)//圧縮率85%
		KBD(VK_LEFT)
		Sleep(wait) //ウェイトタイム
	next
    endif
    Sleep(0.2)
wend
参考に私が使ったスクリプトを置いておきます.
UWSCでこのスクリプトを実行した後,ブンコビューアをアクティブした状態でキーボードの上ボタンを押せば,ページ送りながらpageで指定したパラメータ分の枚数の画像がdirに指定したフォルダに保存されていく仕様です.
ウェイトタイムはPCのスペックと相談しながら調整してください.

トリミング

スクリーンショットを撮ったままだと,上や下のバーが邪魔なので,文字の部分だけを切り出します.

この作業にはVIXを使いました.
VIX上で画像を保存したフォルダまで移動し,Ctrl+Aなどで全体を選択します.
メニューから「画像」→「総合変換」としてウィンドウを開きます.
次にフォーマットのタブでJPEGを選択し,トリミング等のタブで「トリミングを行う」をチェックを入れ,今回は画像サイズを横795,縦484とし,切り出し位置をX2,Y55としました.この位置は環境によって調整が必要かもしれません.
後はOKを押せば一括でトリミングが行われるはずです.

pdfに変換する

画像をpdfに変換するためにChainLPを使用しました.
最初にインストールする際はiTextSharp.dllをChainLPを解凍したフォルダに置くことを忘れないようにしましょう.

使い方は見れば大体わかるかと思います.
右上の「入力」ボタンで画像を読み込み,pdfを指定して「出力」ボタンを押せばpdfにまとめられて出力してくれます.
著者,タイトル,その他はお好みで設定をしてください.

最後に

全体の作業時間は,本の長さにもよりますが薄い文庫本程度の文量だと10分程度でした.
著作権が何となく怖いのでどんな風に表示されてるかの写真は準備しませんでしたが,見栄えに関してはスクリーンショットで撮っているだけなので当たり前に結構滲みます.
また,ブンコビューアのサイズが800*600が最少なので横長でスクリーンショットを撮らねばらならず,縦書きの文章を読むのにちょっと違和感があります(^^;

それでも個人的にはまぁ普通に読める範囲だとは思いますので,ちょっと手間をかけてでもkindleで読みたいんだ!という奇特な方は是非試してみるといいのではないかと思います.

ネタ元

ブンコビューア(XDMF)形式の電子本を無理矢理ΣBookで読む
何とかしてKindleでもって本を読む

2010/11/12(金)Sable-2015に非常停止スイッチつけた

2010/11/12 21:44 CNCimportnucho
101106-181325.jpg

PCとSable-2015が結構離れていて、「うお危な!」というときとっさに止めることが出来なかったので非常停止スイッチを取り付けました。

使っているスイッチはベビーブック12月号に付いてきていたつぎ とまりますボタンです。
「とまります」って書いてあるし何となくお洒落だしぴったりかなと思ってボタン目当てで雑誌を買ってきました。

配線と設定をする

配線といっても単純なものです。
101106-165153.jpg

分解して、電池の赤と黒の線が出ているところに線を半田付けし、

101106-213813.jpg

付属のコネクタにつけるだけです。

この方法だとLEDは光りますが、音がならないのがちょっと残念
あとは説明書を見ながらMach3などのCNCソフトに設定を行えば、ボタンを押すことでスピンドルとステッピングモータが止まります。

2010/10/20(水)NokiaLCDライブラリに日本語フォントを組み込んだぞ

2010/10/20 11:53 mbedimportnucho
以前NokiaLCDにNOKIA3300用の設定を追加したものを書きましたが、
今回はさらに美咲フォントを組み込んで日本語表示ができるようにしました。

これにあたって
AD-12864-SPIのコントローラ
mbedからOLEDに日本語表示しましたよ
のお二方のプログラムをパクり…、もとい参考にさせて頂きました。どうもありがとうございます!

ついでに"\n"で改行されるようにもしたので、元からの変更点は
  • NOKIA3300用の設定の追加
  • 日本語フォントの追加
  • "\n"による改行の追加
となります。

動いたところ

101021-130328.jpg

昇圧回路をどこかにやってしまったので、またバックライトが点いてません…。
恰好悪いし見づらいのでそのうち写真差し替えます。
差し替えました。ぴかーん。

プログラム

上の写真はライブラリをインポートしてmain文を以下のようにしたものです。
#include "mbed.h"
#include "NokiaLCD.h"

NokiaLCD lcd(p5, p7, p8,p9,NokiaLCD::LCD3300); // mosi, sclk, cs, rst


int main() {
    lcd.background(0x0000FF);
    lcd.cls();
    lcd.fill(2, 51, 128, 10, 0x00FF00);
    lcd.fill(50, 1, 10, 128, 0xFF0000);
    lcd.locate(0,4);

    lcd.printf("   胎児よ\n\n");
    lcd.printf("   胎児よ\n\n");
    lcd.printf("   何故躍る\n\n");
    lcd.printf("   母親の心がわかって\n\n");
    lcd.printf("   おそろしいのか\n\n");

    for (int i=0; i<130; i++) {
        lcd.pixel(i, 80 + sin((float)i / 5.0)*10, 0x000000);
    }
}

NokiaLCDは元々Streamクラスという抽象クラスを継承しているので、純粋仮想関数となっている_putc()を書き換えるだけで簡単にprintfに対応させることが出来ました。

また、mbed Compilerは日本語の入力に対応していませんが、コピペで貼り付ければ一応表示できます
ただ"Invalid multibyte character sequence"というwarningが出てくるのと、一度閉じると文字化けしてしまうことに注意してください。

余談になりますが、フォントを移植しようとした際にコメント文に文字化けが入っていたのが原因でテーブルデータがずれて読み込まれるということがありました。
コピペで入力できるものの予期しない動作をする可能性があるので、本当はLynx-EyEDさんのようにフラッシュから読み込むという風にした方がいいかと思います。

それでは、作ったライブラリはここに置いておきます。
NokiaLCD_With_JapaneseFont

10/20追記

あら、「表示」と表示させようとしたら化けてしまいました。
液晶の表示向きの関係で90度回転させたやつが使えなかったので、適当に90度元に戻した奴を準備してたんですが、そのせいで一部のフォントが崩れたのかな…。
元気があるときに調べてみます。

2010/10/11(月)cam.pyで基板切削してみる

2010/10/12 01:10 CNCimportnucho
eagleで基板切削をやったという記事は良く見つかるのですが、その他のCADからやったという記事はあんまり見かけないので今回はMBE+cam.py基板切削した記録を残しておきます。
一応うまくはいっているのですが、文字の切削と外形の切りだしはできていません
  • cam.pyの準備
    • pythonの実行環境
    • mm出力に書き換え
  • Gコード作成
    • MBEからガーバーファイルの出力
    • cam.pyでガーバーファイル→Gコードの変換
  • 切削する
    • 面だし
    • パターンを削る
    • 穴あけ
    • 切りだし
    • できた
  • 終わりに

続きを読む