モチログ

はてなでのブログ

複数PDFを一度に電子ブックリーダー向けPDFに変換するスクリプト

というのをRubyで書いてみた。でも、Windows向けに書いています。なんのこっちゃ。

どういうものかと言うと、自炊PDF->それぞれのページをjpeg化->ChainLPで余白削除+電子ブック向けサイズに変換したPDF作成を自動で、しかも複数のPDFを一括で処理できるスクリプト

もとはAdobe Acrobatから画像生成->ChainLPでPDF生成を手作業でしていたため、とてもめんどくさかった。一気にやってる間に風呂に入りたい!そう思った。

一応スクリプトを公開する。自己責任で使用してください。コメント全然入れてないけど…。スクリプトだし、いいよね。

使用する前の事前準備。

  • Rubyをインストール。

ここからRubyの1.8系を入れました。

  • Rubyの必要なパッケージを入れる。

コマンドプロンプトから

gem install rghost

で入るはず。

  • gsのインストール

Ghostscript 9.02 and GSview 4.9 Jのページからgs902w32full-gpl.zipを入れました。

  • ChainLPのダウンロードと展開

No.722: ChainLPから最新版のChainLPをダウンロードして、解凍した内容をC:\ChainLP以下に起きます。フォルダは作ってください。スクリプトをいじれば変更は可能です。

  • ChainLPのデフォルト設定を行う。

一度ChainLPを起動して、変換したい電子ブックリーダーのサイズや設定をしておく。

これでたぶん準備は出来たはずで、あとは適当なフォルダを作って、その中に変換したいPDFと下に置いてあるスクリプトを置いて、スクリプトを実行すれば出来るはず。

できたPDFは拡張子.pdfの前にebという文字がついています。

MakeBook_v0.1.1

スクリプトは自由に変更してもらってかまいません。もっと良いのができたら教えていただきたいです。

 

以下、適当なコメント。

電子ブックリーダーって書いてますが、Kindle3でしか試してません。

最初は自動でPDF->jpegのみのスクリプトを書くつもりでしたが、ChainLPのリードミー的なChainLP.txtをみると、コマンドプロンプトからの実行も出来ると書いてあったので、おまけで追加しました。これは大助かりでした。

ChainLPの引数はなんかサイズの指定を行うと、実行されなかったので、スクリプトからは外しています。これは僕があんまり説明読んでないのが悪いと思う。いちおうスクリプトの方でガンマ1.8と右綴じにしています。変換前のPDF名は"[著者名]タイトル.pdf"にしておくと少し幸せになれるかもしれません。

一応実行したいフォルダのパスとか、gsのパラメータやChainLPの引数をスクリプトの上の方で定義したので、修正したい人はそこをいじってもらえるといけるはずです。

とりあえず試した環境はWindows7 Pro、Ruby1.8.7、gs9.02、ChainLP0.40-2を使用しました。

Kindle3で自炊読書環境

iPad2が日本で発売されるのが先かなと思ったので、Kindle3買いました。届いた次の日に、次の日発売するアナウンスが出たのですが。

まぁ、iPadに比べると安いので、ほしかったらiPad2も買えばいいかと考えています。

とりあえずKindleで自炊した本を読む方法をまとめてみました。

全編通して使用したもの
  • Kindle3
  • Windows PC (自分はWindows 7 Pro 32bitを使用しています)
  • ScanSnapS1500 (3年保証にとりあえず入っておきました)
  • カッターマット OLFA A4サイズ
  • OLFA マガジンS型 GOLD (たまたま安売りで買っていたので)普通のカッターで良いと思います
  • OLFA ロータリーカッター 45mm
  • アルミ定規 (アル助 300mm) ほかに使うため自分は600mmを買いましたが、長くて使いにくいので300mmが良いと思います

これさえあればOKです。カッター類の代わりに裁断機でも良いと思います。場所とその分のお金があれば。

スキャン編
1.ScanSnapセットアップ
まずは、ScanSnapS1500付属のソフト(ドライバ、PDFマネジメントソフト、Adobe Acrobatなど)をインストールし、ScanSnapS1500をPCに接続します。
認識されればOK。
2.本の解体
まずカバーをはずし、表紙と裏表紙をカッターで切ります。背表紙はスルーで。
あとは、カッターで3,40ページごとに、カッターで切り離していきます。ページの隙間にカッターを入れ、背表紙ごとばっさり切り離します。慣れればもうちょっと多くてもいいかもしれません。
その後、分割した分だけ、背表紙がくっついている部分をロータリカッターで切ります。ここで、アルミ定規をあててまっすぐ切ります。まっすぐの方が後でスキャンする時にスムーズに行くので、作業スピードが落ちない程度に気を遣いましょう。
これで本はばらばらになったはずです。くれぐれもページの順を崩さないように気をつけてください。
3.スキャン
2,30ページごとくらいずつScanSnapにのせ、スタートボタンを押します。
ScanSnapの設定は以下のようにしました。
  • クイックメニューを使用すにチェックし、カスタマイズを選択
  • 読み取りモード
    • 画質はスーパーファイン
    • カラーモードは自動か、白黒の本なら白黒でもいいかと
    • 読み取りは両面
    • 継続読み取りを有効にしますにチェック
    • オプション: 白紙ページを自動的に削除しますにチェック、それ以外はチェックなし
  • ファイル形式 : PDF
  • 原稿 : サイズ選択:自動

です。詰まったり、2枚重なったりしたら、失敗したファイルを継続してやり直します。失敗した部分は後で編集できます。継続もScanSnapのスタートボタンを押せば継続します。

これで、スキャンは完了です。
Kindle最適化編
下準備として、PDFを一度画像データにします。
スキャンしたPDFをAdobe Acrobatで開きます。
上のメニューのファイル->書き出し->画像で前ページを画像ファイルとして書き出します。

PDFのバアイ
サイト No.722で提供されているChainLPを使います。本当にすばらしいソフトです。感謝。
ChainLPをダウンロードし、解凍します。解凍したフォルダに、zip32j.dll,zip32.dll,iTextSharp.dllをコピー(ダウンロードリンクなどはNo.722参照)。
ChainLPを起動し、解像度で、持っているKindleのバージョンを選択します(自分はKindle3)。
右の入力で先ほどPDFから画像を出したフォルダを指定し、出力をPDFにチェック。
あと、綴じとか設定を変更があれば変更(Kindleでは少し色が薄いので、ガンマ補正の値を少し上げるといいと思います。1.8くらいかな)し、出力ボタンをクリックすればOKです。
できたファイルをKindleに転送すれば読めます。
コミックのバアイ
上と同様ChainLPでPDF化して十分満足な出来なのを確認しましたので、コミックもPDFと同様の手順でOKです。
Mangleをダウンロードします。Pythonが必要っぽいので、Pythonをインストール
準備ができたらMangleを起動し、起動した窓にPDFから画像に変換したファイルが入っているフォルダをドラッグアンドドロップ
あとはギアマークのアイコン(Export)をクリックし、タイトル入力、Kindle使用しているKindleを選択し、OKボタンを押してどこに保存するかを選べば完了。
できたフォルダをKindleに転送すれば読めます。

Windows7のMBR修正

購入したWindows7がアップデート版だったので、元のXP領域を残しながらインストールしたらMBRがおかしくなっていた。

構成は以下のようになっている。

disk1:XP領域(7からはDドライブ)+MyDocument領域(7からはFドライブ)
disk2:データ領域(7からはEドライブ)
disk3:7領域(Cドライブ)+空き領域(7からはGドライブ)
どうもdisk1から起動しているらしく、BIOSの設定でdisk1をプライマリに指定しないと起動しないので困っていた。
とりあえずBIOSからdisk3をプライマリにしてみる。
Bootできんから再起動するか起動ディスク入れてキーを押せ
ってメッセージが出てきた。
7のインストールディスクから起動=>回復コンソールを立ち上げるもOSの選択に何も出てこないので選択ができない。
一応修復やコマンドプロンプトからのbootrec /fixboot /fixmbr などためすも、意味なし。
とりあえず一度disk1をプライマリにして7を立ち上げる。
[備忘録]MBRうっかり消しちゃって再作成が必要な事例 Windows7編にほぼ自分の状況と似ている症状の時の対処法が書いてあったのでためす。
7上から7のインストールディスクを入れコマンドプロンプトを管理者権限で起動。
パーティションアクティブ化をした。
diskpart
list disk
select disk 1
list partition
select partition 1
ここでのdiskやパーティション番号は自分のばあいの数字が入っています。
しかし、bootrecが見つからないので断念。
7のインストールディスクから起動することに。
再びdisk3をプライマリにして、インストールディスクから立ち上げる。途中のメッセージが変わった。
これまでは否応なくDVDから立ち上がっていたけど、なんかCD、DVDから起動するならキーを押せってのに変わった。
で、回復コンソールを立ち上げたときに、メッセージが出てOS領域を修復するぞってのがでたのでOKを押して再起動。
そのご回復コンソールに7の領域が見えた。
とりあえず7の領域を選択し、コマンドプロンプトから
bootrec /fixboot
bootrec /fixmbr
をして、ついでにシステムの修復も行って再起動したらいけた。

Skypeが起動しないネタ

Windows7上でSkypeが起動が起動しない問題が起きていました。

Webでそういう話題を探したところ、いろいろ出てくるのですが、どうもこっちで起きていることと違うようです。

起きている現象として、

  • ランチャ-、デスクトップに置いてあるショートカットから起動、プログラム一覧から起動すると、起動はしているようだけど、すぐに落ちているみたい
  • アップグレードをしようとすると、最新版インストーラーが動きだし、途中で落ちる
  • アンインストールしようとするとアンインストーラが起動し、消しにかかる(デスクトップのショートカットが消える)が、アンインストール最後の方でプログレスバーが逆戻りし、元に戻る(たぶんアンインストールに失敗して元に戻しているみたい

という感じ。再インストールするには手動で手動でインストールしているSkypeフォルダ、ユーザの設定ファイルを削除し、レジストリエディタで手動でskype検索ででたのを一通り消したらできた。

レジストリエディタで消したの100個超えた気がする…。

とまぁ、そこまでして苦労して、消して、安定しているらしい古いバージョンを入れ直してみたが、症状変わらず。再び最新版にしてみたが同じ。

最後に、普段愛用しているファイラー"あふw"からバイナリ(Skype.exe)を実行すると起動した。

意味がわからないが、とりあえず起動することはできたので、そんなに頻繁に使わないのでこれで良しとする。ちなみに終了するにはタスクマネージャーから強制的に終了しなければいけない。

原因と、なぜこれで解決するのかがよくわからないけど、調べるのはこれで終わることにする。

Windows7でいつの間にか(iTunesのアップデート?)AirMac Expressのスピーカーにつながらなかった件

タイトル通りいつの間にかエラーが出ていました。たぶんiTunesをアップデートしたせいだと思われる。

エラーメッセージは以下の通り

リモートスピーカー[スピーカー名]に接続するときにエラーが起きました。ネットワーク接続に失敗しました。

いつも通りエラーメッセージで検索してもなぜか検索に引っかからなかった。

とりあえずWindowsファイアウォールのプライベートの方を無効にするとつながる。どうもWindowsファイアウォールのプライベート側で制限されているようだ。

ファイアウォールのアプリケーションの設定をみてもiTunesは許可されている。とりあえず使用ポートを調べて別個ポート指定で許可することにした。

AirMac Express アシスタントはファイアウォールが使用されている場合に AirMac Express を検索できない

で載っている192,5009,5353を許可するもつながらず。なんでやねん。ほかに調べても有力な情報が見つからないので、しかたなくwiresharkで実際にどのポートでつなぎに行ってるか調べた。

するとなんと6002で行っていた。どこにも載っとらん。

ということで、遅くなりましたが、ファイアウォールの許可の方法を載せます。(Windows7のProfessional32bit版)

スタート -> コントロールパネル -> Windowsファイアウォール ->

左端のメニュー真ん中あたりの「詳細設定」 -> 左端にある「受信の規則」をクリックし、右端の操作の上側「新しい規則」 ->

規則の種類でポートを選び、次へ -> プロトコルおよびポートではUDPをチェックし、特定のローカルポートをチェックした後「192,5009,5353,6002」を入力し、次へ ->

接続を許可するをチェックし、次へ -> プライベートのみチェックでOK、次へ -> 適当に名前を入れて(例:AirMacExpressUDPとか)、完了。

これでいけた。

画像は作るのめんどくさかったので、文字のみです。わかりにくくてすみません。

公式の情報にも無かったので、iTunesのアップデートでこれまでと違うポートを使うようになったけど、Windowsのファイアーウォールの設定は更新されずつながらなかったと推測しました。

ということは、WindowsファイアウォールiTunesの項目を一度削除して、iTuneを立ち上げ直したら自動でファイアウォールの設定されるのかも。

ATOKの使い方メモ - 基本編 -

ATOKの月額300円コースで使うことにしました。

MSのIMEは単語変換も文章の区切りもいまいちで、Google日本語入力は固有名詞変換はすごくおもしろかったけど、長文になるといまいちなのでやっぱりATOKかなと。

あと、月額コースでも購入者のみ使用すること、かつ同時に使用しない限り10台までインストールすることが可能なようです(ATOKのQ&Aより)。

さて、前置きはさておき、ATOK導入に関して基本的な使い方のメモを載せたいと思います。 応用編は使っていくうちにたまってきたら書くかもしれません。

参考サイトは

5分でわかる!かしこいATOKの使い方。

動画マニュアル.comのATOKの使い方

です。

変換した言葉を似た意味の別の表現に変更する

    変換候補表示中にCtrl+Tabを押すと出てきます 例:「早い」の時は「夙に」とか「早々」とかが出てきました。

確定した文字をもう一度変換する

    変換確定後にCtrl+Bascspace

メニューを出す

    Ctrl+F10

ファンクションキーの機能を表示する

    メニューからATOKパレット->ファンクションキーガイドを選択

文書中の単語を登録して素早く変換できるようにする

    単語を選択する→メニューを出す→単語登録選択 読みを入力して完了

○○変換シリーズ(文字入力後に押す)

    人名変換:F2
    郵便番号から住所:F3
    顔文字変換:F4 例:にこ->(#^.^#)とか
    カタカナ語を英語に変換:F4

CS1784でUSBを挿したPCのBIOSが立ち上がらない問題

勢いで買ってしまったATENのKVM、CS1784モニタケーブルについてるUSBをメインPCに接続するとBIOSが起動しなかった問題について。

とりあえずやったことを順に挙げていく。

■CS1784のファームウェアをアップデートする。

コレにもまいった。

シリアルからアップデートするらしいけど、USB変換でのシリアル接続ではCS1784を認識しないので、少なくともPCIカード接続などのシリアルポートが必要。

ファームウェアアップデートするも改善されず。

■USBリピーターケーブルを挟む。 CS1784: USBリピーターを導入で紹介されてる、USBリピーターケーブルを挟んでつなぐとイケるとのこと。

ためしてみたけど、どうも僕の方の原因出はない様子。

BIOSの設定を変える

さらに調べると、BIOSのUSB設定がどうたらこうたら。

ためしに、BIOSの設定でUSBの設定をHigh SpeedからFull Speedに変更したら起動した。

なんだかなぁ。

とりあえず、起動時にUSBを抜かなくてすんだので、まぁ、マシになったといえるかなぁ。