フォーマット・ファイル・DRM

Android で PDF をリフローする方法

Lectern はテキストベースの PDF を、画面に合わせて流れるテキストに変えられます。本を開いて「テキストをリフロー」をタップする(または「聴く」をタップしてすぐに読み上げを始める)と、PDF のテキスト層から段落を再構築します。検索、辞書引き、ハイライト、テーマは他の本とまったく同じように使えます。画像だけのスキャン PDF は、リフローの前に OCR が必要です。

短い答え:PDF は固定されたページを記述しているため、「リフロー」とは、そのページのテキストを、EPUB のように画面幅で折り返す段落として再構築することを意味します。Lectern の PDF リーダーでは、本の詳細シートを開いて「テキストをリフロー」をタップします。これは実際にテキストを含む PDF でのみ機能し、スキャンしたページには使えるテキストがありません。

リフローで実際に変わること

PDF は固定されたページ上の決まった座標に字形を格納しているため、スマートフォンで拡大すると 1 行を左右にパンしながら読むことになります。リフローはそのページレイアウトを捨てて、単語を普通の段落に再構築します。テキストを行にまとめ、行を段落につなげ、複数段組みのページを左から右への読み順に分割し、行末で分割された単語のハイフンを結合し、ページの区切りで途切れた文をつなぎ直します。

それが済むと、結果は Lectern が開く他の本と同じように扱えます。いつものリーダーの組版設定(フォント、文字サイズ、行間、余白)が適用され、元のページではなく画面のサイズに合わせて表示されます。リフローしたテキストは初回に本ごとにキャッシュされるため、あとで開き直すと即座に表示され、ディスク上の元の PDF ファイルには一切手を加えません。

手順:Lectern で PDF をリフローする

  1. ライブラリを開き、読みたい PDF をタップします(長押しではなく通常のタップで本の詳細シートが開きます)。
  2. 2 つのボタンを探します。メインの「PDFとして開く」ボタンの下に、「テキストをリフロー」と「聴く」があります。
  3. 「テキストをリフロー」をタップすると流れる段落として読め、「聴く」をタップすると同じリフロー済みテキストを開いて、すぐに読み上げが始まります。
  4. 長い PDF では、初回の構築を待ちます。Lectern がテキストを抽出して再構築するあいだ、「リフローを準備中」という進捗バーが表示されます。短いファイルはほぼ瞬時に終わり、画像の多い長い本は初回だけ少し時間がかかることがあります。
  5. 文字サイズ、行間、余白を調整するには、EPUB のときとまったく同じようにリーダー自体の設定から行います。
  6. いつでも元に戻せます。本の詳細シートを開き直し、「PDFとして開く」を選べば元の固定ページに戻ります。同じページに戻ります。

リフロー後も使える機能

リフローしたテキストは、簡略化された PDF 専用ビューではなく、Lectern の他の本とまったく同じ読書画面で表示されるため、いつものツールもそのまま使えます。

Lectern の「PDFとして開く」と「テキストをリフロー」の比較。
PDFとして開くテキストをリフロー
レイアウト元のページのまま固定流れる段落
文字サイズ拡大とパン画面に合わせてリサイズ
全文検索可能可能
辞書引き可能(単語を長押し)可能
ハイライト不可可能
読み上げ不可可能。文のハイライトつき
夜間・セピア独自のカラーモード他の本と同じリーダーテーマ

段組み・脚注・ヘッダーの扱い

ここが、リフローが単なるテキストの羅列以上の価値を持つ部分であり、同時に正直な限界がある部分でもあります。

  • 複数段組みのページ(論文やニュースレターなど)は検出され、左から右への読み順に分割されるため、段が入り混じって意味不明になりません。段の境目がはっきりしないページは、これまでどおり 1 段組みとして扱われます。
  • 脚注は、ページ下部の目に見えて小さい文字のものが抜き出され、段落の途中に割り込む代わりに、そのページの本文の後ろに置かれます。省かれるわけではなく、そのページの流れの末尾に移動するだけです。
  • ほとんどのページで繰り返される柱(ヘッダー・フッター)や単独のページ番号は自動的に検出され、削除されます。そのため、段落と段落のあいだに「第 3 章・42」のような文字が毎回現れることはありません。この検出には、繰り返しのヘッダーを偶然と区別するために最低 10 ページ以上の文書が必要なので、短いハンドアウトや章単位で書き出したファイルでは、ヘッダーの文字がそのまま本文に残ることがあります。
  • 表は行と列に再構築されません。リフローが再構築するのは読み順であって表計算シートではないため、表のセルはページ上のおおよその並び順で地の文として出てきます。ラベル付きのリストに近い表なら問題ありませんが、情報が密な表は元の固定レイアウトのほうが読みやすいです。
  • ページの区切りで分断された文は、2 ページをまたいでつなぎ直されるため、以前のページ境界で文の途中が途切れて聞こえることはありません。

リフローが助けにならない場合

  • スキャンまたは写真で撮影したページ。PDF が本物のテキストではなくページの画像である場合、リフローには材料がなく、Lectern は OCR(光学文字認識)を実行してテキストを作り出すこともしません。まず PDF 内で単語を選択してみてください。何もハイライトされなければスキャンです。その場合 Lectern は「このPDFにはリフローできるテキスト層がありません (スキャン画像のようです)。ページモードまたはスクロールモードをご利用ください。」と直接伝えます。先に別の OCR ツール(OCRmyPDF のような無料のデスクトップツールがよく機能します)でファイルを処理してから Lectern で開き直せば、リフローは通常どおり機能します。
  • フォーム、楽譜、コミック、インフォグラフィック。ページ上の要素の視覚的な位置そのものが内容であり、単なる入れ物ではないものは、段落の流れに変換すると意味を失います。これらは固定ページのまま読んでください。
  • 情報が密なデータ表や、注釈の多い図。上と同様です。数字は残りますが、格子は残りません。これは実のところEPUB と PDFで取り上げたのと同じ、ページかテキストかというトレードオフです。リフローは PDF を EPUB に近づけられますが、あとから EPUB のレイアウトの自由さを与えることはできません。
  • 元のページ番号が必要なとき。リフローは印刷ページではなく文字サイズに合わせてページを組み直すため、参考文献や授業で特定のページを引用する必要がある場合は、PDF を元の固定レイアウトで開いて実際のページ番号を確認してください。

先に手早く確認する方法

長い文書をリフローする前に、PDF として開いて、あるページで単語を選択してみてください。テキストが選択できればテキスト層があり、リフローは機能します。何も選択できなければ画像であり、リフローには材料がありません。これは、Lectern に限らずどのアプリでもPDF を読み上げさせる前に行っておく価値のある、同じ確認方法です。

よくある質問

元のページレイアウトに戻すと、読んでいた位置は失われますか。

いいえ。同じ本で「PDFとして開く」と「テキストをリフロー」を行き来しても、Lectern はページを保持します。元のレイアウトを確認してから、同じページに戻れます。

5 ページのハンドアウトのような短い文書でも、リフローはうまく機能しますか。

テキストのリフロー自体は行われますが、ヘッダーとフッターの自動削除は、繰り返しのヘッダーを偶然と区別するのに十分なページ数が必要なため、10 ページ以上の文書でのみ働きます。短いファイルでは、レターヘッドやフッターの行が本文の流れに残ることがあります。

スキャンした PDF にテキスト層を追加してからリフローすることはできますか。

はい。Lectern 自体には OCR が含まれていませんが、OCRmyPDF のような無料のデスクトップツールで、スキャンした PDF にテキスト層を追加できます。それが済んだら Lectern でファイルを開き直してください。「テキストをリフロー」は、最初からデジタルだった PDF とまったく同じように機能します。

リフローすると、元の PDF ファイルは変更または置き換えられますか。

いいえ。リフローしたテキストは別に構築され、Lectern 自身のストレージ内でその本に紐づけてキャッシュされます。ディスク上の元の PDF は一切変更されず、「PDFとして開く」は常に変更されていないファイルを表示します。

PDF を本のように読む

リフローして、サイズを変えて、端末内の音声で聴く。アカウント不要、何もスマートフォンの外に出ません。

手に入れようGoogle Play