一回使ったら止められない CAS-UBの超便利機能 UBテキストのご紹介

今年発売の『PDF CookBook』シリーズの制作では、UBテキストが大活躍です。2冊とも、アウトライン(章見出し、節見出し、項見出し)の作成はWordで行いました。アウトラインをCAS-UBにインポートして見出しを作った後のテキスト本文編集作業は、USテキスト形式で、ほとんど行なってしまいました。

さらに、Javaのサンプルプログラムを書いた担当者に、UBテキストを渡してプログラム部分を編集(重複している部分を最初に出現した箇所への参照に)してもらいました。UBテキストはwikiを拡張したものですので、プログラマであれば一目で内容が理解できるようです。

ご参考のために、下記に『PDF CookBook第2巻』の先頭部分のUBテキストをご紹介します。ちょっと長いですが、最初に簡単な解説をまとめます。

簡単な解説
(1) +で始まる一連の行ブロックは、UBテキスト全体、および各記事のヘッダラベルです。これはCAS-UBからUBテキストをダウンロードするときに自動的に付加される部分です。記事の階層構造(章⇒節⇒項)を表します。
(2) 各記事の本文にはCAS記法でマークアップしています。ここで使っている主なマークアップを紹介しますと:
・[[www.antenna.co.jp/ptl/]] :[[~]] URLリンクになります。
・[[[:index:key=あんごうかのアルゴリズム 暗号化のアルゴリズム]]] :単純な索引です。
・((:footnote [[https://ja.wikipedia.org/wiki/RC4]])) :脚注です。
・[[[:tbl =ISO 32000規定によるPDFバージョンと暗号アルゴリズム・暗号キー長の関係 ~ ]]] :表のブロック(表のキャプション)
・|=PDFバージョン|=使用できる暗号アルゴリズム|=暗号キー長| :表のヘッダ(セル)
・|PDF 1.3|RC4|40| :表の本体(セル)
・=狙い・効果 :見出し
・{{:width=50% GetCryptInfo-top.png}} :画像(width=50%は画像の幅指定)
・*ユーザーパスワードのみ設定されていると、… :箇条書きの1項目
・*[[[:mindex [[[:nodisp:prim API]]][[[:second setPassword() :暗号化されたPDF文書を読み込む際のパスワードを設定]]]]]] :親子の索引
・{{{ ~~~ }}} :整形済みブロック

CAS記法でマークアップの一覧表はこちらです

テキストエディタは使い易いものがいろいろあります。しかも、無料のものまであります。テキストエディタによる編集は、Webブラウザから操作するよりも、実に素早く便利です。

ここからUBテキストの例

+ updated: 2018-06-02T06:33:47+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: PDF CookBook 第2巻
+ name: publ

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: はじめに
+ name: i01-0001
+ ahax$parent: publ
+ ahax$entryClass: preface

『PDF CookBook』は、電子の紙PDFを企業向けのシステムで編集したり、加工したりする方法を紹介する本です。いわば、PDFをメイン素材とする料理本です。

(省略)

PDF Tool APIには無料でお使いいただける評価版を用意しています。次のページをご参照ください。

[[www.antenna.co.jp/ptl/]]

本書のプログラム例はJava で作成しています。本書で紹介しているプログラム例は次のページよりダウンロードしていただけます。

[[www.antenna.co.jp/ptl/cookbook/source/]]

(省略)

本書はシリーズ2巻目にあたります。第2巻では、PDF Tool APIの機能のうち第1章セキュリティ、第2章透かし、第3章しおりをテーマに取り上げています。シリーズ初巻には巻番号が付いていませんが、本書の本文中では『PDF CookBook』第1巻として参照しています。

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: セキュリティ
+ name: i02-0001
+ ahax$parent: publ
+ ahax$entryClass: chapter

ISO 32000-1:2008(以下、ISO 32000-1)は権限をもたないユーザーによるPDF文書へのアクセスを防止するための暗号化機能として、共通鍵(パスワード)による暗号化と公開鍵による暗号化の2種類を規定しています。本章の第1節ではパスワードによる暗号化の機能と使い方を説明します。PDF Tool APIは公開鍵による暗号化の機能はありません。

さらに、PDF Tool APIは、ISO 32000-1には規定されていない、独自の閲覧制限機能があります。第3節では独自の閲覧制限の使い方について説明します。

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: パスワードセキュリティ
+ name: i02-0002
+ ahax$parent: i02-0001
+ ahax$entryClass: section

PDF文書の内容はパスワードによって暗号化することで、権限をもたないユーザーによるアクセスを防止できます。ISO 32000-1の用語ではパスワードによる暗号化機能を標準セキュリティハンドラと呼びます。PDFは上位バージョンほど標準セキュリティハンドラの機能が強化されています。

標準セキュリティハンドラは[[[:index:key=あんごうかのアルゴリズム 暗号化のアルゴリズム]]]として[[[:index RC4]]]と[[[:index AES]]]のどちらかを選択します。当初から使われてきたのはRC4ですが、RC4には、既に脆弱性の点で問題が指摘されています((:footnote [[https://ja.wikipedia.org/wiki/RC4]]))。ASE 128の脆弱性は現時点では問題とされていないようです((:footnote [[ http://www.cryptrec.go.jp/topics/cryptrec_20110912_aes_cryptanalysis.html|128ビットブロック暗号AESの安全性について\\ http://www.cryptrec.go.jp/topics/cryptrec_20110912_aes_cryptanalysis.html]]))。

PDFのバージョンによって暗号化に使うキーの長さに制限があります。[[[:index:key=あんごうかのキーちょう 暗号化のキー長]]]はパスワードの文字数(パスワードの長さ)ではなく、標準セキュリティハンドラが内部的に計算して作成する値です。キーの作成方法はISO 32000-1で規定されています。

[[[:tbl =ISO 32000規定によるPDFバージョンと暗号アルゴリズム・暗号キー長の関係
|=PDFバージョン|=使用できる暗号アルゴリズム|=暗号キー長|
|PDF 1.3|RC4|40|
|PDF 1.4|RC4|40/128|

(省略)

|PDF 1.7アドビ拡張|AES|256|
|PDF 2.0|AES|256|

ISO 32000-1の仕様上は、PDF 1.4以降では暗号化のキー長は40ビット超128ビット以下の範囲で8の倍数単位で設定できます。しかし、PDFアプリケーションの多くは128ビットに固定しています。

]]]

PDF Tool APIでは暗号アルゴリズムの種類と暗号キーの長さを指定できます。

PDF Tool APIでは暗号化するときのキー長は40ビット、128ビット(256ビット)のどちらかを指定できます。一方、暗号を解読するときは8の倍数で可変のキー長の指定を受け付けます。

PDF Tool API V5では、AES 40ビットは設定できません((:footnote AESの仕様では暗号のキー長は128ビット以上とされています。ISO 32000-1でAES 40ビットを規定しているのは誤りの可能性があります。いずれにせよ新しく作成するPDF文書に40ビット暗号は使わないことを推奨します。)

(省略)

PDF Tool APIでは、入力PDF文書のバージョンと指定した暗号アルゴリズムと暗号キーの長さの組みによって、出力されるPDF文書のバージョンは、次表のようになります。

[[[:tbl =PDF Tool APIで出力されるPDF文書のバージョン
|=入力PDF文書のバージョン|=RC4 40|=RC4 128|=AES 128|=AES 256
|PDF 1.3|1.3|1.5|1.6|1.7
(省略)
|PDF 1.7|1.7|1.7|1.7|1.7
]]]

PDF文書には、[[[:index ユーザーパスワード]]]と[[[:index オーナーパスワード]]]のどちらか一方または両方を設定できます。ユーザーパスワードはPDF文書を開くためのパスワードです(詳細は[[##e.i02-0004.ユーザーパスワードによるセキュリティの設定]]を参照)。オーナーパスワードはPDF文書の利用権限を設定するパスワードです(詳細は[[##e.201805301211.オーナーパスワード]]を参照)。

ユーザーパスワードとオーナーパスワードは異なっている必要があります。

*ユーザーパスワードのみ設定されていると、ユーザーパスワードを入力してセキュリティの変更や解除ができます。
*オーナーパスワードのみ設定されていると、オーナーパスワードを入力してセキュリティの変更や解除ができます。
*ユーザーパスワードとオーナーパスワードの両方が設定されていると、(省略)

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: セキュリティ情報の取得
+ name: i02-0003
+ ahax$parent: i02-0002
+ ahax$entryClass: subsection

{{:width=50% GetCryptInfo-top.png}}

=狙い・効果

PDF文書のパスワードによる[[[:index:key=セキュリティのじょうほうをしゅとく セキュリティの情報を取得]]]します。

=処理の概要

PDF文書のセキュリティ設定は、PDF文書のトレイラーにある暗号辞書に記録されています。暗号辞書からユーザーパスワードの設定状況とオーナーパスワードの権限設定内容を取得して画面に表示します。入力PDF文書にユーザーパスワードが設定されているとき、PDF文書を開くには正しいパスワードの入力が必要です。

=PDF Tool APIの主な機能

*[[[:mindex [[[:nodisp:prim API]]][[[:second setPassword() :暗号化されたPDF文書を読み込む際のパスワードを設定]]]]]]

(省略)

*[[[:mindex [[[:nodisp:prim API]]][[[:second getType() :権限設定タイプ取得]]]]]]

=プログラム例

{{{
package cookbook;
import jp.co.antenna.ptl.*;
public class GetEncryptInfo {

(省略)

}
}
}}}

=プログラムファイル名

GetEncryptInfo.java

=入出力操作の例

{{:width=80% GetEncryptInfo.png}}

次は暗号化キー長256ビットのAESでオーナーパスワード設定したPDF文書の例です。

{{:width=80% GetEncryptInfo1.png}}

次は暗号化キー長256ビットのAESで添付ファイルのみ暗号化したPDF文書の例です。

{{:width=80% GetEncryptInfo-2.png}}

UBテキストによるフローは次のようになります。特に難しく考えることはなくテキストファイル(UBテキスト)のダウンロードとアップロードが追加になるだけです。

参考資料
[1] UBテキストの使用例 ― 記事の構成を変更する
[2] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す
[3] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す(2)UBテキスト
[4] CAS-UB V5にアップグレードしました。レスポンシブなWebページ生成や、UBテキスト機能の公開などが目玉です。
[5] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す

『CAS-UB ユーザーガイド』V2.2β3版に改訂しました

『CAS-UB ユーザーガイド』V2.2β3版に改訂しました。

ダウンロードはこちらから。

EPUB3.0形式 (2013.10.27更新)
PDF形式  (2013.10.27更新)

◎改訂内容

1) 第10章EPUBのレイアウト設定の項で、「10.2 CSSテーマV2と設定変更」について説明を親設しました。
2) 第3章では編集操作のメニュー変更にともなう説明の変更と画像の入れ替えを行なっています。

◎残件

大きなところでは「目次」関連の新機能の説明がまだできていません。

CAS-UB 6月20日の保守更新 アンカータグ内のインラインマークアップサポート、EPUB内部リンク有効化、PDF詳細レイアウトの変更など強化

CAS-UBは6月20日の保守更新で次の機能強化を行ないました。CAS-UB V2.2用に開発していた機能の一部を先行してクラウド・サービスに追加しました。

1.CAS記法の強化

CAS記法のパーサーを改良し、アンカー要素の内容に次のインライン要素をマークアップしたとき、これを正しく処理できるようにしました。
・strong(強調)
・em(強調)
・注意
・ルビ
・上付
・下付
・注釈
・画像
・インラインの範囲指定[[[…]]](アンカーの文字列に縦中横を指定できるようになりました)。
・インラインの整形済み{{{…}}}
・インライン数式 $$…$$

2.PDFとEPUBの整合性配慮

PDFの表では先頭行のセルに:width=”xxx”の方式で列幅を指定できます。これをこのままEPUBに出力するとEPUBCheckでエラーになります。そこで、その設定値をCSSのstyle属性値に変換するか、別途style.cssで設定するかを選択できるようにしました。(図のサイズ指定については従来より同様の機能を用意しています。)

2.EPUB内部リンクの有効化

EPUB3で図表一覧掲載の図・表のリストから本文の図・表の位置へのリンク、あるいは本文の中でほかの本文中の箇所へのリンクをクリックしたとき、hrefで指定した位置に正しくジャンプするようにしました。これまではiBooks、Adobe Digital Editionsなどではhrefで指定した位置にジャンプせず、ファイルの先頭にジャンプしていました。これはEPUBリーダ側の問題ですが回避策を施して正しくジャンプするようにしました。

3.PDF詳細レイアウトの設定機能強化・変更

PDFレイアウトの詳細設定の仕様の追加と変更を行ないました。この結果PDFレイアウト詳細設定については一部のレイアウトが従来と変更になりますのでご注意ください。

(1) 前書き、目次、後書き、図表一覧、注釈一覧、参考文献、索引などの本文以外の記事タイトルの行取りが2行のものと4行のものが混在していましたので、3行取りに統一しました。
(2) 囲み記事(コラム)のキャプションが囲みの外にありましたが、囲みの中に置くように変更しました。
(3) キャプションのない注記には、既定のキャプションとして「注記」を挿入するように変更しました。
(4) 図表キャプションの位置(上か下)指定を、図と表を個別に指定できるように変更し、初期値を図は下、表は上に設定しました。
(5) 図と図のキャプションの間の空きが詰まり過ぎていたので、0.5em空けるように変更しました。
(6) 見出しが複数行になるとき、2行目以降を見出し番号の位置にインデントするように変更しました。
(7) 章番号、または章・節番号と見出しの間の字間が広すぎたので狭めました。
(8) 章番号、節番号、項番号などをハイフンで繋いだ場合、そのハイフンで改行しないように分割禁止を設定しました。
(8) 図表番号とキャプションの間の字間が広過ぎたので、章節番号とタイトルの空き幅と同じに変更しました。
(9) 表内の行間が空き過ぎていたので、行の高さの初期値を1.5emに変更しました。さらに設定の変更もできるようにしました。
(10)参考文献のレイアウトを番号なし箇条書きから1字突き出した(ハンギング・インデント)の形式に変更しました。

4.障害修正
その他、障害の修正を行ないました。
詳しくは「CAS-UB 最近の修正」を参照してください。

CAS-UB、5月16日のアップデートで「Word変換」メニューを追加します。

CAS-UBは、毎週、定期メンテナンスで小さな機能強化と障害の修正を行なっています。今週は、特別に、少し大きな機能追加として「Word変換」メニューを公開する予定です。

CAS-UBの通常の編集手続きでWordからEPUBを作るときは、①出版物を作成→②Word文書をアップロード→③EPUBを生成という流れです。①~③の各ステップでさまざまな変換条件の詳細設定が必要です。

新しく追加する「Word変換」メニューでは、最低限必要な設定を一枚のパネルで一括設定して、一気にEPUBを出力することができます。

これで飛躍的に設定の手間が少なくなります。さらに、詳細な設定をしたい場合は、設定済みの雛形文書を別に用意して、その雛形の設定を継承することができます。

CAS-UBにログインするとホーム画面(出版物一覧)を表示しますが、ここに「Word変換」が追加になります。

Word変換をクリックしていただきますと、次の画面となります。

この画面で必要な項目を設定して、あとは「WordをEPUB変換に」ボタンを押すだけで、自動的にEPUBを出力できます。

変換の仕様につきましては、5月16日のアップデートでは従来通りです。今後、さらに変換機能を強化する予定です。

なお、変換で作られた出版物はクラウドサーバ上に保存されますので、通常のとおりCAS-UBで編集することができます。

JEPA 第22回 EPUBセミナーでの「新しい発想の書籍制作ツールCAS-UBのご紹介」スライドなど

3月1日 日本電子出版協会で「マニュアル、ビジネス文書でのEPUB活用」についてのセミナーを行ないました。メインテーマは、BPIA(ビジネスプラットフォーム革新協議会)の「EPUBマニュアル研究会」の話ですが、研究会は始まったばかりでまだ報告する内容があまりありません。

研究会の話だけでは、与えられた時間枠のセミナーを構成できないために、第二部にCAS-UBについて自由に語る枠を置きました。いつもセミナーでは、時間とテーマが先に与えられて、それにあわせてセミナーの内容を構成するためなかなか自由にCAS-UBについて語ることができません。しかし、今回はかなり自由にテーマを設定して語らせていただきました。

それが却って良かったのか、CAS-UBの基本的考え方を整理してお話しできたように思います。

スライドや映像はepubcafeの次のページに公開されています。

EPUB 第22回 マニュアル、ビジネス文書でのEPUB活用

CAS-UBの映像は3つ目で約40分弱になります。なお、スライドはこちらからもダウンロードしていただくことができます。

「新しい発想の書籍制作ツールCAS-UBのご紹介」(3/1JEPAの第22回EPUBセミナー)