InDesign
InDesign の文書はページレイアウトです。ページに置いたフレーム、フレームからフレームへページをまたいで流れるテキスト、すべてのページが受け継ぐマスターページからなります。BDF は InDesign が書き出す IDML パッケージ(ファイル → 書き出し → InDesign Markup)を読み、ページをラスタライズしたり PDF 書き出しを経由したりせず、テキストを自分で組んで、使ったフォントを埋め込みます。文書の 1 ページが BDF の 1 ページになり、ビューアは綴じ方向どおりに本としてめくります。
試す
ビューアにファイルをドロップするか、サンプルを試してください。basic.idml(図形と画像と、3 ページをまたいで連結したストーリー)、vertical.idml(右綴じの縦書きの文書)、InDesign が書き出した雑誌のページ interview.idml があります。
InDesign Markup(.idml)
converter/idml は IDML(InDesign が書き出し、また開ける XML のパッケージ)を読みます。デザインマップ、ページとアイテムを持つスプレッド、マスタースプレッド、ストーリー、リソース(スウォッチ、線種、段落スタイルと文字スタイル)です。ネイティブの .indd はバイナリで仕様が公開されていないので読みません。先に IDML に書き出してください。
読むもの:
- ページ。文書の順に、各ページ自身の大きさで作ります。右綴じの文書(日本語の本)は右から左に開きます。セクションがページ番号を決め、テキストフレームのページ番号マーカーにはその番号が入ります。
- マスターページ。ページが適用するマスター(とそのマスターのマスター)のアイテムが
masterレイヤーになります。ノドのどちら側かでマスターのページを選び、ページで上書きされたアイテムは除きます。非表示のレイヤーと非表示のアイテムは描きません。 - 長方形・楕円・多角形・線をベジェのパスから。角丸、グループ(その変換も)、あらゆる種類のスウォッチの塗り(CMYK・RGB・Lab の色、ティント、線形と円形のグラデーション)と不透明度、線の太さ、破線(組み込みの破線・点線、カスタムの破線と点線)、線端、角、パスの内側・外側への線の位置。
- 配置した画像。文書に埋め込まれたラスター画像と、文書と一緒に渡したリンク画像(ファイル名で探します。
bdf generate -with photo.jpg、またはサーバーのファイル一覧)を、フレームで拡大縮小しクリップします。TIFF は変換します。 - テキスト。ストーリーは連結したテキストフレームの連なりをページをまたいで流れ、フレームごとの段組み、インセット、垂直方向の揃えに従います。縦組みのストーリーは右から左に流れ、日本語の正立する文字の規則に従います。段落スタイルと文字スタイル(と基準のスタイル)、揃え、インデント、段落の間隔、行送り(固定と自動)、タブ、箇条書きと番号、フォントファミリーとスタイル、大きさ、トラッキング、上付き・下付き、ベースラインシフト、下線と取り消し線、大文字、言語。テキストは PowerPoint・Visio・Word の変換器と共有する DrawingML のテキストエンジンで組むので、禁則を含む行の折り返し、フォント、テキストレイヤーの構造は同じです。
- パッケージの XMP からのメタデータ(Dublin Core)。
描かないもの(警告を出します): テキスト中の表と脚注、テキストにアンカーしたオブジェクト、配置した EPS・PDF・PICT、矢印などの線端、通常以外の描画モード、ストライプの線(実線で描きます)、連結の最後のフレームからあふれたテキスト。文書が指定するフォントはこのマシン(と -font-dir)で探し、見つからないフォントはメトリックの近い代替か汎用のフォントに置き換えるので、その分だけ組み方が変わります。
変換器は InDesign 自身が書き出した文書(CS5.5〜InDesign 2020)でも確かめています。SimpleIDML(BSD 3 条項)の回帰テストのもので、converter/idml/testdata/simpleidml/ に置いてあり、ビューアのサンプルにも 1 つ入れています。
converter/idml に -param オプションはありません。-pages でページを選べ、フォントの共通フラグ -font-dir、-fonts、-no-subset、-no-woff2、-no-system-fonts、-ignore-fstype は PowerPoint と同じように効きます。
詳細は design.md §3.32 を参照してください。