透明テキスト付き読み取りPDFの解像度変更

画像読み取りした文書に透明テキストを載せたPDFファイルのファイルサイズを小さくしようとdoPDFなどの仮想プリンタツールを試したが、話としては当然なのだろうが、印刷すると透明テキストの情報は消えてしまった。これらの情報を残したまま解像度を変更したりすることはできないのかな。

ちなみに、PDF文書を文字認識しての透明テキストデータへの変換はソースネクストの「いきなりPDF to Data 7」で行なっている。けっこう使いやすい感じ(いま見てみると認識エンジンはパナソニック製らしい)。他のツールとのセットを購入したが、分割だったり統合だったりDataだったり、ツールが個別に分かれてしまっていてどれで何ができるのやらよくわからなくなりがちなので、それを統合した形でのアプリケーションもあるといいのだが。

ところで、この「いきなりPDF」のツール群には種々の機能があるのだが、なぜか「(個別の)ページを回転して保存」というものはなく、to Data でページの向きを読み込み時に自動認識はするオプションもあるのだが、あまりアテにならない。また別で探してもなかなかそれに向くツールはないようだ。

結局、いったん処理したいPDFファイルをビューアで眺め、回転させるページを先にチェックしておいて、後からpdftkを使ってページ番号を指定して変換するのがよさそうとの結論に。

例)4ページと9-10ページのみ右90度回転させる
pdftk foo.pdf cat 1-3 4E 5-8 9-10E 11-end output bar.pdf

catでの各ページ番号の後ろに記すN,E,W,Sで0,90,270,180の回転、L,R,Dで-90,+90,+180の回転を指定する。

後から改めて、「いきなりPDF」のシリーズ間の機能比較表を見ると、結局「PDFから透明テキスト付きPDFを作成」できて、「ページの回転編集」ができて、おそらくファイルサイズの縮小としてやりたいことであろう「画像のダウンサンプリング」も可能なものというと最上位の「いきなりPDF Complete 7」ということになるらしい…。定価が9,850円のところ実質価格は6,330円あたりらしい。ヘタな抱き合わせセット品を買うより、こちらを購入するべきだったか…(購入した電器店にはその購入品あたりはおいてなかったのであるが)。でもやはり機能が統合されているわけではなく、単なるシリーズ品の寄せ集めのような雰囲気。

Reeeead the rest of this entry »

足の甲の痛み

この半年だか1年くらいは、足の甲というか足裏というか、そのあたりが非常に凝ったような痛みがあって、1週間に2~3回ほどは寝起きには、すぐには普通に歩けないほどの痛みになる。

聞いていたら同じ腰痛持ちでそういう人がいるので、検索してみると足首を動かす筋に異常がある場合があるとか、そこから腰痛が来る場合があるなどとも。どう対処したらいいかはまだよく分からんが、足の指1つずつを内側に折り曲げるようにしたりして揉みほぐすと一時的にはだいぶ改善する感じ。甲の痛みが完全によくなるわけでもないのだが、それより良かったのは日常的な腰痛がこれまでは少し重いものを持ったりするとすぐに悪化していたのが、かなり忍耐強くなったのか寝込んだりするほどまでの状態になるのが減ったような…。

いろんな原因があるもんですなぁ。

リンク

メールへの自動返信

届いたメールに自動返信するには、/etc/aliasesに受け付けるアドレスを書き、そこに届いたメールを返信プログラムへパイプで渡す。

次のようになる。まず、/etc/aliasesへのパイプ設定

hoge: "|/usr/bin/php /home/foo/reply.php"

phpの場合は、他のスクリプトと違って通常は冒頭の起動シェルの指定(#!/usr/bin/php)は含まない(もちろん含めてもよいが)ため、スクリプト名だけを書くとボーンシェルあたりのスクリプトと解釈されてエラーになってしまうようなので、起動シェルの指定も前置する点に注意。

次に返信プログラム reply.php とした(参考:PHPプロ!)。PEAR::Mail/mimeDecode.phpを使ってphp://stdinから読み込んだメールを解析している。

<?php
require_once("Mail/mimeDecode.php");

// メールを stdin から読み込む
$source = file_get_contents("php://stdin");
if (!$source) exit;

// デコード設定
$params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;

// デコーダを生成し、デコード実行
$decoder = new Mail_mimeDecode($source);
list($recipients, $headers, $body)=$decoder->getSendArray();
$structure = $decoder->decode($params);

// FromヘッダをMIMEデコードし取り出す
$from = mb_convert_encoding(mb_decode_mimeheader($structure->headers['from']), mb_internal_encoding(), "auto");

// 元の From を返信宛先の To にする
$to = $from;
// 送信者設定(送信専用アドレス(←存在しないアドレスってこと?)にしたほうがよい?)
$from = "From: hoge@example.co.jp";
// 元の Subject に Re: を付けて題名にする
$title = mb_convert_encoding("Re: ".$structure->headers['subject'], "ISO-2022-JP");
// とりあえず届いた Body の文字コードを変換
$body= mb_convert_encoding($body, "ISO-2022-JP");
// 元の Body の前に返信メッセージと引用符を付加
$body = mb_convert_encoding("登録は完了しました。", "ISO-2022-JP") . "\n\n>>" . $body;

// 送信時の漢字コード設定(このあたりよくわからん)
mb_internal_encoding("ISO-2022-JP");
mb_language("japanese");

// 送信
mb_send_mail($to, $title, $body, $from);
?>

なお、/etc/aliases に、返信スクリプトのみでなく、カンマ区切りで転送アドレス先や届いたメールの保存ファイルも同時に指定できる。

hoge: foo,/home/foo/reply.log,"|/usr/bin/php /home/foo/reply.php"

リンク

QRコード作成

英語勉強にGoogle Docs

Googleに各種データを預けるのはまだ危うい気がして、gmailやGoogle Docsなどはそれほど利用していないのだが、英語での英和対照での短文練習などでは、ファイルを持ち運んだりファイルサーバにアクセスして更新するのでなく、Google Docs上のスプレッドシートにデータを作成しておけば、ネットが繋がればどこでも学習できるのでよさそうな気もする。

ということで、少しGoogle Docsを試してみた。気づいた点を。ブラウザは Firefox 3.5.3 です。

  • (標準では?)英語モードで表示されるので、設定で日本語表示に切り替える。
  • ネットの接続速度にもよるのだろうが、やはり動作がまったりしている。
  • セル内の文字別での文字色や装飾、背景色などの変更ができない。
  • セル編集時にカーソルで他のセルに移動できない。→いまやってみるとできました。何かブラウザ側の状態が変わった?
  • セル選択時にエンターを押すと入力モードになり、次のセルへはすぐに移動できない。
  • セルに連番データを生成できない?→Ctrl+ドラッグするとわけのわからない飛び飛びのデータが生成された??
    • 1からCtrl+ドラッグで「7,6,8,9,10,11…」、10からCtrl+ドラッグで「8,7,9,6,11…」なんじゃこりゃ?