電子書籍 kobo touch のニュースアプリの開発(メモ)
1.ニュースサイトのデータを取得
2.広告データを削除、データの整形
3.記事のタイトルとURL取得
4.記事タイトルのURL先データの取得
5.データの整形
6.記事本文の抜出
7.画像データがある場合は画像データの読み込み
8.形成処理
9.ページファイルの作成
10.EPUB化
11.kobo本体へのデータ転送
とりあえずこんなところでしょうか?
記事毎にファイルを作るか、インデックス化するかが悩ましいところです。
細かい調整をしようと思ったら、EPUBの構成や出来る事などをきちんと調べなおす必要もあります。
EPUBはどうやら拡張子が「.EPUB」なだけで、実態は「.ZIP」ファイルの要です。
書庫ファイルの構成ルールがあるようですので、そのルールに従いZIP圧縮してやり、拡張子を「.EPUB」に変更する事で出来上がるようです。
参考にしたサイト:第三版 日本語Epubブックサンプル
次に中の構成。
Epub3の場合、スタイルシートの文字コードは「UTF-8」*1でなければならないようです。
文字コードはよーわからんです。
ルートにまずは「mimetype」という拡張子なしのファイルをまず作る必要があるようです。
中はアスキーデータで「application/epub+zip」を言う一文のみ。う〜ん、このファイルの保存形式も「UTF-8」になるのだろうか?
ためしにサンプルで公開されているデータを解凍して、TeraPadで読み込んでみましたが、「SHIFT-JIS」でした。「UTF-8」で読み込みなおしても問題なかったことから、英文だとこのあたりは関係ないのかな?
今後はトラブルのも嫌なので、出力されるアスキーファイルの文字コードは「UTF-8」を指定してやってみようと思います。
次に「META-INF」というサブフォルダ(サブディレクトリ)が必要なようです。
そのサブフォルダ内に必須のファイルは「container.xml」だけのようで、他のファイルはまぁ現段階(本アプリで作成するEPUBファイルには)では不要そうです。
ファイルの中身は
<?xml version=”1.0”?>
<container version=”1.0”xmlns=”urn:oasis:names:tc:opendocument:xmlns:container”>
<rootfiles>
<rootfile full-path=”OEBPS/content.opf”media-type=”application/oebps-package+xml”/>
</rootfiles>
</container>
というもの。赤字の「OEBPS」はサブフォルダで、このフォルダ名のサブフォルダを作る気がない場合は「content.opf」だけにしとけばよさそうです。
順当にいけば、次に必須なのは「content.opf」ファイルかな?上記の指定方法から、保存場所とファイル名は可変で好きにしてよさそうです。
とりあえずサンプルを開いて考えてみますと、、なんかいっぱいあって、どれが必須なのかさっぱり。
metadata
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"identifier:よくわからない。
date:日付と時間が入力されていた。でも必須なの?後に続く、metaタグproperty="dcterms:modified"で別の日付が……
title:Epubのタイトルだと思う。無名じゃダメ?
contributor:製作者とかそういうのと思う。
creator:著者とか?
language:「ja」だった。ないと困りそう?
rights:「Public Domain」とあった。???
publisher:出版社っぽいのが書いてあった。でも必須なの?
meta property="page-progression-direction":「rtl」とある。ページめくりに関係ありそうな予感。(右側タッチ、左側タッチ
manifest
<item properties="nav" media-type="application/xhtml+xml" id="navdoc" href="navdoc.html"/>
<item id="tocncx" href="toc.ncx" media-type="application/x-dtbncx+xml" />
<item id="style" href="stylesheet.css" media-type="text/css" />
<item id="titlepage" href="title_page.xhtml" media-type="application/xhtml+xml" />
<item id="chapter01" href="chap01.xhtml" media-type="application/xhtml+xml" />
<item id="chapter02" href="chap02.xhtml" media-type="application/xhtml+xml" />
<item id="chapter03" href="chap03.xhtml" media-type="application/xhtml+xml" />
<item id="imgl" href="images/koma.png" media-type="image/png" />
内容的に、参照する他のファイルっぽい?ここで宣言しなかったら、パッケージに入っててリンクで呼び出してても無視されるのだろうか?
気になるのが「toc.ncx」。
参照先には「目次の形式がNCXからNAVに変更。ふつうのXHTMLで書くようになった。2.0のNCXも共存可能。」とある。*2
spine
< spine toc="tocncx" page-progression-direction="rtl">
< itemref idref="titlepage" />
< itemref idref="chapter01" />
< itemref idref="chapter02" />
< itemref idref="chapter03" />
< /spine>
ページ順かな?
「manifest」で設定した「ID」名と「idref」の名前にリンク関係があるような気がします。画像やスタイルシートなどが設定されていないので「media-type="application/xhtml+xml"」のみが対象かな。
次に出てきたのが「toc.ncx」です。いくつか分解します
< ?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE html>
< html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="ja">
< head>
・・・・
< /head>
ヘッダー部分。
タイトルがある場合は「< title> (タイトル)< /title> 」を追加
スタイルシートがある場合は「< link rel="stylesheet" href="スタイルシート.css" type="text/css" /> 」
文中に記述する場合
< style type="text/css">
・・・・・
< /style>
以下ボディ
< body>
< nav epub:type="toc">
< h1> 目 次< /h1>
< ol>
< li> < a href="text/000.xhtml"> 目次項目1< /a> < /li>
< li> < a href="text/000.xhtml#m-1"> 目次項目1-1< /a> < /li>
......
< /ol>
< /nav>
< /body>
< /html>
「< nav epub:type="toc"> 」の宣言が気になりますが、マァこの通り作成します。
Epub3の場合は「navdoc.html」で「toc.ncx」はEpub2用とかいてあったので、内容はほぼ同じで「< nav epub:type="toc"> 」の部分だけ抜いた「navdoc.html」を用意しました。
ただ、この場合は上記の「Item」タグで宣言してやらねばならないだろうなという事で、
「<item properties="nav" media-type="application/xhtml+xml" id="navdoc" href="navdoc.html"/">」を追加。
次に目次の「index.xhtml」と記事情報用の「page000.xmhtl」の作成。
この時サンプルで作成したXHTMLがエラーばかり起こして原因が不明。この時取って解決した方法が
1.タグは小文字にする。(<A HREF=・・・> だと× <a href=・・・> と書かないとダメだった。なので全部小文字に変更)
2.<BR>タグ(改行)でもエラーを起こすと気があるので</BR>と占めてやる。
3.<img>タグも同様で</img>でしめてやる。
と言う感じでやったら何とか表示されました。
いままでHTMLはノートパッドでタグ打ちしてましたが、どうにも細かなルールが違う模様。めんどい・・・
とりあえず一通りの形が出来たので、近いうちにサンプルの試運転が出来そうです。
デバック画面
Epubファイルの中身
関連記事
■電子書籍 kobo Touch を使ってみる。
■電子書籍 kobo Touch でニュースを読む。
■電子書籍 kobo Touch でtxtや青空文庫を読む。
■電子書籍のEPUBファイルについて【考察】
■電子書籍 kobo デスクトップ 3.02によるバグ
■電子書籍 kobo touch のニュースアプリの開発(メモ
■電子書籍 kobo touch のニュースアプリの開発
■電子書籍 kobo touch のニュースアプリ とりあえず動けばい
■電子書籍 kobo touch 踊る星降るレネシクルの問題
■Epubのcontent.opfにあるguide要素(メモ)
■kobo touch ニュース記事取得換ソフト