『タグ付きPDF 仕組と制作方法解説』Kindle版とプリントオンデマンド版発売になりました。

『タグ付きPDF 仕組と制作方法解説』(CAS電子出版)のKindle版とプリントオンデマンド版が発売になりました。プリントオンデマンド版は現時点ではアマゾンのみですが、楽天ブックスとhontoからも発売の予定です。

タグ付きPDFは、内部に文書構造を埋め込んだPDFです。PDFをコンピュータで読み上げたり、PDF内のデータをオフィスアプリやWebページなどに再利用したりするときに有効なものです。

印刷物はテキストに視覚的なスタイル付けをすることによって文書構造を表現しています。例えば、見出しという文書構造は、大きなフォントやゴシック書体などのスタイルが設定されて、視覚的に表現されています。そして、私たちが普段出版物を読むときは、視覚的に表現された文書構造を内容理解のための手がかりにしています。PDFを印刷物として視覚的に読む限りでは、文書構造を内部に埋め込む必要はありません。このため、タグ付きPDFはオプションとして規定されており、日本では、いままであまり注目されていませんでした。

しかし、PDF内部のデータを適切に利用するには、タグ付きPDFとしておくと都合が良くなります。欧米の行政機関では、情報アクセシビリティの観点から、公開するPDFはタグ付きPDFとすることが必須とされています。日本でも、障害者差別解消法の施行に伴い、官公庁・行政が提供する情報のアクセシビリティが必須になります。こうしたことで日本でもタグ付きPDFを作成する機会が増えつつあるようです。

本書では、文書構造とはどのようなものか、タグ付きPDFとはどのようなものか、といった基本的な概念を解説します。また、簡単な例を使って、タグ付きPDFを実際に作る過程を説明します。

目次

はじめに
第1 章タグ付きPDF とはなにか
1.1 文書の構造
1.2 タグ付きPDF でできること
第2 章タグ付きPDF の仕組
2.1 マークされた内容
2.2 論理構造を構築する仕組
2.2.1 構造要素辞書
2.2.2 タグツリー
2.2.3 タグツリーとコンテントの対応
2.3 タグ付きPDF の概要
2.3.1 ページ内容
2.3.2 構造型
2.3.3 基本レイアウトモデル
2.3.4 構造属性
2.3.5 アクセシビリティサポート
2.4 XML やHTML との相違
第3 章タグ付きPDF の標準タグと属性
3.1 グループ化のためのタグ
3.2 段落のためのタグ
3.3 テーブルのためのタグ
3.3.1 テーブルの標準属性
3.4 行内のためのタグ
3.5 イラストのためのタグ
第4 章タグ付きPDF の制作
4.1 簡単なタグ付きPDF の作成(ルートタグ作成)
4.2 簡単なタグ付きPDF の作成(フラットなツリー)
4.2.1 見出し1 と第1 階層のタグ設定
4.2.2 画像のタグ付け
4.2.3 表のタグ付け
4.2.4 ヘッダーとフッターのタグ付け
4.3 簡単なタグ付きPDF の作成(深いツリー)
4.4 自動タグ付け
第5 章画像の代替テキスト
第6 章タグ付きPDF を利用するPDF プロファイル仕様
参考資料

書誌情報
書名:「タグ付きPDF 仕組と制作方法解説」
出版社: アンテナハウスCAS電子出版
発売日:2017年10月
著者:アンテナハウス株式会社
発行形式:プリントオンデマンド版
判型:B5 横組
ページ数:44
価格(税込):1,000円
ISBN:978-4-900552-57-9
販売ストア:アマゾン

発行形式:電子版
価格(税込):700円
ISBN:978-4-900552-59-3
電子書籍ストア:アマゾンKDP(アマゾンへ)

参考資料
タグ付きPDFとはどんなもの(本書の要約です)

PDFのリフロー続き)あちゃ! Android版のAdobe Readerでは、タグ付きでも正しくリフローしない。

昨日の続きです)

昨日は、Windows7用のAdobe Reader X(Adobe Acrobat XIProも同じ)での表示確認でした。いずれもタグ付きPDFではタグの情報を利用して正しくリフロー表示しますが、タグがないとリフロー表示が乱れます。
念のために、両者を比較してみました。同じ内容のPDFですが、左がタグ付き、右がタグなしのPDFに出力したものです。

PDF-reflow-PC
図 Windows7用のAdobe Reader Xでの表示比較―左がタグ付き、右がタグなしのPDF

さて、ほかの環境はどうか、ということで、Nexus5 (Android 4.4)のAdobe Reader(Adobe Reader 11.1.3)で調べてみました。タグ付きPDFのリフロー表示とタグなしPDFのリフロー表示も同じになります。残念ながらリフロー表示にタグの情報を使っていないようですね。

PDF-reflow-android
図 Android4.4用のAdobe Reader 11での表示比較―左がタグ付き、右がタグなしのPDF

それだけではなく、テキストの表示順序はPCのリーダーと異なっています。PDFの読み込みの方法が違うんでしょうか? 

PDFのテキストの表示がこのように異なってしまう、ということは、読み上げ順序もきっとちがうんだろうな・・・

もう少し探してみました。少し古いですが、Androidフォーラムに「Best PDF Text Reflow?」(PDFのテキストリフローのベスト製品は?」という話題があります。

“Best PDF Text Reflow?” http://androidforums.com/android-applications/482404-best-pdf-text-reflow.html(January 12th, 2012)

この投稿を読みますと、テキストリフローをきちんとできる製品はなかなかないようです。

PDFのリフロー表示。タグ付きPDFとタグの付いていないPDFの比較。

PDFの表示はデフォルトではページ単位のレイアウト状態ですが、リフロー表示もできます。

○Adobe Readerでリフロー表示するには: 「表示」→「ズーム」→「折り返し」

また、PDFにはタグ付きPDFという仕様があります(ISO 32000-1:2008の14.8節)。タグ付きPDFは、構造情報を表すための標準のタグ(XHTMLの要素に相当)を定めるものです。

タグは、グループ化要素、ブロックレベル要素、インライン・レベル要素、イラスト要素に分類されており、次のようなタグを決めています。

1)グループ化要素
Document, Part, Art, Sect, Div, BlockQuote, Caption, TOC, TOCI, Index, NonStruc, Privateがある。PDFが完全な文書を含むならばStrucTreeRootは、唯一のDocumentを含む。部分的な整合文書を含むなら、 Part, Art, Sectを代わりに使っても良い。
2)ブロックレベル要素
段落など(P, H, H1, H2, H3, H4, H5, H6)、リスト(L, LI, Lbl, LBody)、表(Table, TR, TH, TD, THead, TBody, TFoot)
3)インラインレベル構造
Span, Quote, Note, Reference, BibEntry, Code, Link, Annot, Ruby, RB, RT, RP, Warichu, WT, WP
4)イラスト要素
Figure, Formula, Form

タグ付けPDFにするメリットの一つにリフロー表示が正確にできる、ということがあります。これを実際に試してみたのが、次の図です。2段組のPDF(上)をリフロー表示させた状態です。タグ付きPDFでは下左のようになります。下右はタグのついていないPDFの場合です。PDFの印刷レイアウト表示は同じですが、リフロー表示は異なり、タグ付きPDFではリフロー表示でも表が正しく表示されていることがわかります。

reflow
図1 2段組のPDF(上)のリフロー表示

Adobe Acrobatを使うとタグを表示できます。次の図はタグ付きPDFのタグを表示したものです。

tag-yes-reflow
図2 タグ付きPDFのタグを表示(Acrobat XI)

このあたりまでは知っていたのですが、先日、タグの付いていないPDFをリフロー表示させるとタグを表示するペインにタグが現れることに気がつきました。図3はタグの付いていないPDFをリフロー表示させた状態です。この場合、すべてのブロックにPタグを生成しているようです。

tag-non-reflow
図3 タグの付いていないPDFをリフローしタグを表示(Acrobat XI)

どうやら、Adobe Readerは簡単なブラウザのようなレンダラを内蔵しており、それを使ってリフロー表示しているようです。タグ付きPDFはタグを使って各タグのデフォルトレイアウトで表示します。タグ付きでないときはタグを推定して割り当てているものと思います。

タグ付きPDFではタグのデフォルト表示が決まっていますが、簡単なレイアウト指定もできます。レイアウト属性はCSSとかXSL-FOのようなプロパティを使って指定するようです。

ちなみに、上のPDFは、AH CSS Formatter V6.2で作成しました。

AH CSS Formatter

■参考資料
AH Formatter
AH Formatter によるウェブコンテンツアクセシビリティガイドライン(WCAG 2.0) PDF実装方法
PDF/Aとはなにか

『PDFインフラストラクチャ解説』のPDFの構造機能、タグ付きPDFの説明を強化。タグ付きPDFは固定レイアウトEPUBにも通じる。

『PDFインフラストラクチャ解説』を0.38版に改訂しました。

下記で公開しています。

PDF版
EPUB版

【追記:2016/1/21】
2016年1月に本書発売となり、無償配布を終了させていただきました。(『PDFインフラストラクチャ解説』POD版とKDP版が揃い踏みとなりました
【追記:ここまで】

今回の改訂箇所は次の節です。

9-2 PDFにおける構造表現
9-3 タグ付きPDF
14-3 透明テキスト付きPDF(新設)
22-2 PDF/A ファミリー
22-3 PDF/A-1
22-4 PDF/A-2
22-5 PDF/A-3
22-6 PDF/Aの作り方
22-7 スキャン画像からPDF/Aを作成する(新設)

スキャン画像を透明テキスト付きPDF、タグ付きPDF、PDF/Aにするための関連知識の説明を大幅に見直し・強化しました。

PDFにはXMLとは異なる方式の構造化の仕組みが用意されています。その仕組みは構造要素という辞書をツリー構造にするのですが、ツリー構造の中にはコンテンツ本体は含まれていなくて、他の構造要素またはコンテンツ項目へのIDが入っています。コンテンツ本体では、必要な箇所をマークオペレータで囲み、必要な箇所にはIDをつけます。コンテンツと構造のツリーはお互いをIDで関係付けるという仕組みです。

タグ付きPDFは、PDFに用意されている構造化の仕組みを使って実現するXHTMLのようなものと考えたら良いでしょう。
標準の要素型が規定されています。この要素型は簡単なXHTMLをそのままあらわすことができます。要素型には属性を着けることができますが、これは標準レイアウトを指定しています。

tag-example-xhtml
図1 簡単なXHTML

tag-example-pdf
図2 タグ付きPDFの構造ツリーと表示コンテンツのリンク

この仕組みを使うと、タグ付きPDFを使って、マルチレンディションのEUPBに似通った電子書籍を実現できそうです。