2008-05-11 17:52:36
また青空文庫について。ブラウザ上でpdfに変換して縦書き表示するというのを考えてみた。まあ、この青空文庫ビューアはいろいろな人がいろいろなものを作っているので、あえて私が新しいものを考案する意味はほとんどないのだが。
<head>
<title>青空文庫縦書き表示</title>
</head>
<body>
<?php
$url = $_POST['url'];
if(empty($url)){
echo "<h3>青空文庫を縦書きで読む</h3>\n";
echo "<form method='post' action='index.php'>\n
<p>URL: <input type='text' name='url' size='50' /><br />\n
<input type='submit' value='送信' /></p>\n
</form>\n";
}else{
$fcont = file_get_contents($url);
exec("rm -rf ./tmp/output.*");
include("./tategaki.php");
echo "<iframe
src ='./tmp/output.pdf'
width='600' height='800'>
</iframe>";
echo "<p><a href='./index.php'>戻る</a>";
}
?>
</body>
</html>
includeで数日前に作った縦書き変換スクリプトをちょっと描き換えて取り込む。pdfはiframeにしてhtml画面に埋め込んでいる。大きさは600 x 800ピクセルで。毎回ファイルが溜まると嫌なので、新しいアクセスがあると前回のファイルを除去するようにしている。操作はtmpというディレクトリ下で行ない、output.pdfというファイルが作られる。pdf生成の部分は前とほとんど変わらないので、改めて示さない。変更点はファイルはPOSTで送られてきたurlを開くというところと、最後にadobe readerなどでpdfを開かないというようなところだけ。実際のこれを動かすサイトを設置してみた。青空文庫を縦書きで読むだが、ファイル容量の制限とか、簡単なurlの確認とかをしている。わざわざこれで読む人はいないだろうけど。使う人のブラウザに何らかのpdfプラグインがインストールされていないとiframeに表示されないのは当然のことである。面倒臭いので、その説明はしていない。うまくいくと下のような画面が表示される。
章の間などは、もっと間隔を空けた方がいいと思う。太字の設定が消えてしまうが(この例にはもともとないが)、反映できるようにした方がいいだろう。でも、そんなことをする元気は、多分ない。