カテゴリー別アーカイブ: XSL-FO・CSS

CSS を組版に使うときに注意すべきこと(入門編)

こんにちは、『AH Formatter』のサポート担当です。
今回はCSSのお話です。
CSS3ではページの概念が追加され、html+cssでもPDF化や印刷時に見栄えのいい結果が得られるようになりました。
『AH Formatter』でCSSを組版されるお客様も徐々に増えてきました。

CSSはパッと見、とても簡単そうです。
書き方はこんな感じです。

セレクタ{
 プロパティ:値;
 プロパティ:値;

セレクタでスタイル付けしたい対象を指定します。
対象を決めて、どんなスタイルにしたいかをプロパティ名と値のセットで指定します。基本はこれだけ。
例えば、

p {
 font-size:10pt;
 color:red;
 }

のようにするだけです。
セレクタというのは、このようにタグを直接指定して使う要素型セレクタもありますが、
他にも様々な種類があります。
classセレクタ、idセレクタ、擬似要素セレクタ、属性セレクタなどです。
一般的にはclassを使うことが多いですが、複合して使うこともできます。
仕組みとしてはとても単純ですが、管理していくことが非常に難しい。
そして、何か問題があったときに原因箇所を探るのがこれまたもっと難しい。
何故かと言えば、

・スタイルの定義を複合的に指定できること
・同じセレクタで何度でも多重に定義できること
・スタイルには子要素まで継承されるものがあること
・スタイルには優先順位があること

などが理由です。

例えば、

<p id=”abc” class=”aaa bbb ccc”>Antenna House</p>

/* CSS */
/* 要素型セレクタ */
p {
color:red;
}

/* idセレクタ(p要素のみ) */
p#abc {
color:blue;
}

/* idセレクタ(要素特定なし) */
#abc {
color:green;
}

/* classセレクタ(p要素のみ) */
p.aaa {
color:yellow;
}

/* classセレクタ(要素特定なし) */
.bbb {
color:pink;
}

/* 全称セレクタ */
* {
color:black;
}

/* classセレクタ */
.bbb {
color:white;
}

こーんな感じでCSSは定義できます。
さて、ここで問題です。この場合何色で表示されるでしょう~か?

正解は、青(blue)です。
上記の場合、要素を特定したidセレクタが優先されます。
この優先度のルールを把握するだけでも大変です。
(さらに最優先される “!important” なんて厄介な奴がおります。)

このCSSで
“bbb”のクラスが2回定義されていること、気がつきましたか?
そう、”同じセレクタで何度でも”です。いいんです、CSSでは。
前の定義を残しつつ、ちょっと追加してレイアウト変更しよう、なんてことも可能ですが、
こうしてるうちにCSSはどんどん膨大なものになっていきます。

それから、この例ではid名やclass名に”abc”や”aaa”なんて適当に書いてますが、
名前付けルールも「自由」です。
なんでもいいんです。これってとても怖いことです。
こんな風に適当に付けてたらそのうち破綻するの、目に見えてますよね。
名前にしろ、多重定義にしろ、自由すぎるにも程があります。

だから、ちゃんとルールを決めてやりましょう、っていう方法論が
たくさん考えられています。
裏を返せば、それだけ皆さん破綻しないために苦労されているってことですね。

複雑化したCSSはトラブルの元、です。
開発もメンテナンスも(そしてサポートも)XSL-FOの数倍の時間を必要とします。
『AH Formatter』では、CSSの組版はシンプルな構造、シンプルなレイアウトをお勧めします。
マニュアルなどの複雑なレイアウトにはXSL-FOでの組版が向いています。

続きのお話はこちらです:CSS を組版に使うときに注意すべきこと(入門編その2)


“focheck” – XSL-FO と AH Formatter 拡張仕様の検証ツールを公開!

XSL-FO と『AH Formatter』拡張仕様の妥当性を検証する “oXygen” のアドオンとして、このたび弊社開発の『focheck』(オープンソース)が GitHub より利用可能になりました。
focheck – Validate XSL-FO and Antenna House extensions in oXygen or standalone

※ 『focheck』は、”oXygen XML Editor” 上で XSL-FO の詳細な妥当性チェックをするために “Relax NG(リラクシング)” と “Schematron(スキマトロン)” をバンドルしています。

※ 『focheck』は開発進行中の製品です。そのためまだすべての XSL-FO プロパティの解析や、XSL-FO 仕様の試験を終えていません。ご要望やお気付きの点がございましたら、なにとぞお知らせくださいますようお願い申し上げます。


[海外営業レポート] ページメディア出力と XSL-FO の未来について(2)

さて昨日の続きです。

Thad は正しかったのです。12年間でアンテナハウスは40か国以上のあらゆる産業界、政府機関で、またXSL-FO が利用されるだろうと想像さえできなかったアプリケーション向けに、数千本ものライセンスを販売しました。

今日 XSL-FO はビジネス文書、ドライバーライセンス、電車のチケット、映画の台本、視聴覚障害者向け印刷物、注文書などなどあらゆる分野での文書の出力に利用されています。

古いシステムからページをよりモダンに改革しようとする企業はますます増えていて、それに伴って XSL-FO の利用がますます増え、少ない割合ですが CSS も使われています。DITA への関心も深まり、2007年にDITA カンファレンスが開催された時に比べたら、DITA  関連の XSL-FO の販売実績は非常な割合で伸びています。
将来的に、ページ出力は情報配布の方法としてはかなり重要な要素であり続けると考えます。XSL-FO はそのような配布手段の最も有力な標準仕様であり、ページ出力に限っては XSL-FO にとって代わるものは現れないだろうと思います。またCSSも成長しうる出力の仕様だと思います。
2025年の予想としては、依然として XSL-FO と CSS は一日に何百万ものページを生産し続けているのではないかと思います。

US 営業グループ
アンテナハウス海外サイト
http://www.antennahouse.com/
http://rainbowpdf.com/


[海外営業レポート] ページメディア出力と XSL-FO の未来について(1)

冬季はカンファランスがあまり開催されないのですが、それでも XML Prague と Vasont Users Group、2つのイベントに参加してきました。

DCLabs の最近の調査によると、PDF 出力とページ組版は回答者の90%以上が主な配布方法であると回答しています。XSL-FO は依然としてページメディア出力の手段であると認識されています。このことは epubs や ebooks を取り巻く活発な活動レベルを考えたとき、非常に意味があることだと思います。

12年前の2003年、アンテナハウスが海外で XSL Formatter を売り出そうとアメリカに事務所を開設した時、欧米ではページ印刷の歴史は Johannes Gutenberg (ヨハネス・グーテンベルク)が1440年に活版印刷技術を発明した時に遡り500年以上にもなります。

2003年当時、続く500年がどうなるかなど考えられなかったですが、せめて20年間はアンテナハウスが XSL-FO とページ出力の方向を貫いていけるかどうかを考えていました。
2003年当時、XSL-FO は2年間ほど W3C の勧告となっていました。そして、DITA は全く出始めたばかりでした。最初の DITA North America Conference は2007年まで開催されませんでした。その頃は、情報伝達の代替えの手段がいくらか動きを見せだしたとはいえ、紙のページの需要は永久に続くだろうと推測していました。

2004年に Thad McIlroy、出版業界のエキスパートが Gilbane レポートで次のように予想をしました。

XSL-FO はかなり注目され採用されるだろう。なせなら、XML (そしてさらに重要な XSLT )はあらゆる分野の産業で広く定着し、どんなビジネスプロセスの展望においてもベンダーによる、手厚いサポートがあるからである。XSLT を扱うことは開発者が FOを実装できるようになるための大きなステップとなり、そのことは、標準を推進していくエネルギーと経験となるだろう

続きは明日投稿します。

US 営業グループ
アンテナハウス海外サイト
http://www.antennahouse.com/
http://rainbowpdf.com/


エラー “FO transformation is failed” とは(AH Formatter)

こんにちは。
AH Formatterのサポート担当です。

AH Formatter の Windows 版をご利用のお客様から
以下のようなエラーメッセージについてお問い合わせをいただくことがあります。

 8195 (2003):FO transformation is failed.
 セキュリティ設定で、このスタイルシートのスクリプトコードの実行は許可されていません。

このエラーメッセージの「セキュリティ設定で・・・」以降の部分は
AH Formatter ではなく、XSLT プロセッサから出力されているメッセージです。

Windows 版をお使いの場合、オプション設定による指定がなければ MSXML が選択されます。
このエラーメッセージは MSXML6 での XSLT 変換において出力されています。
MSXML6 ではセキュリティ関係等の変更が行われており、その影響によるものかと思います。
※ MSXML6に関しては次の URL をご参照ください。
 https://msdn.microsoft.com/en-us/library/ms754611(v=vs.85).aspx

このようなエラーが発生した場合、
MSXML プロパティを変更することによって解消される場合もあります。
まずは、AH Formatter のオンラインマニュアルの
「オプション設定ファイル」の「XSLTの設定」をご参照ください。

AH Formatter V6.2 ではオプション設定ファイルで MSXML のプロパティを指定することが可能です。
スクリプトコードの実行を許可する場合には、
 <msxml name=”AllowXsltScript” value=”true”/>
とすれば解決するでしょう。


Formatter の運用事例:ドイツ鉄道様のオンラインチケット

次のキャプチャ画像は、弊社社員がドイツ出張にあたって取得したドイツ鉄道様のオンラインチケット(PDF)ですが、このチケットは弊社の『AH Formatter』で PDF 作成されています!

ドイツ鉄道様のオンラインチケット

来月で世に送り出してから15年目に突入する『AH Formatter』は、ありがたいことに世界各国の企業様にご利用いただき、そこから出力される PDF は、このオンラインチケットのようにさまざまな形で活用されています。

『AH Formatter』を利用したソリューション事例(ケーススタディ)は、
次の Webページに多数ご用意しておりますので是非ご覧ください。
AH Formatter 導入事例紹介

 


AH Formatter V6.2 改訂4版を公開しました。

AH Formatterロゴ

9月25日に『AH Formatter V6.2 改訂4版』を公開しました。

この『改訂4版』には、2014年8月6日に公開した『AH Formatter V6.2 改訂3版』以降に改修された内容が反映されています。
詳しくは改訂情報のページをご覧ください。
AH Formatter V6.2 改訂情報

評価版は以下のページよりお申し込みいただけます。
AH Formatter V6 評価版のお申し込み

製品のご購入につきましては、事前に技術相談会を行っております。お気軽にお問い合わせください。
アンテナハウス システム製品技術相談会


AH Formatter のバージョン間における組版上の相違

こんにちは。
AH Formatter のサポート担当です。

AH Formatter をご利用のお客様でバージョンアップをご検討の方から
組版結果を古いバージョンと比較して差異が生じるといったお問い合わせをいただくことが時々あります。

差異が生じる原因としては、
(1) 仕様上変更が必要となったもの
(2) 不具合修正によるもの
の 2種類があります。

(1) の内容をもう少し詳しくお話すると、
・XSL-FO(CSS) の仕様が変更になった
・XSL-FO(CSS) の仕様解釈を変える必要が生じた
・AH Formatter の拡張仕様に変更が生じた
・AH Formatter の組版処理で大きな変更があった
などの理由があります。

これらに関しては、オンラインマニュアルの技術的資料(※)に
AH Formatter Vx.x との組版上との相違 として明記し、
できる限りオプション設定ファイル等で互換性を保つようにしております。
異なるバージョン間で組版結果が異なるような場合には、
まずはそちらをご参照いだだければと思います。
※ ご参考:AH Formatter V6.1 との組版上の相違(AH Formatter V6.2 オンラインマニュアル)

(2) に関しましては、不具合修正によって今まで間違っていた組版結果が
正しく組版されるようになったことによるものです。
AH Formatter のリリース時には改訂履歴(※)を弊社 Webページに掲載しておりますので
そちらをご参照いただいて該当するかどうかをお客様の側で検証していただく必要があります。
AH Formatter のリリーステストではできる限り差異が発生しないように確認はしておりますが、
不具合修正による違いに関しては過去のバージョン(不具合修正前)と
全く同じ結果にすることは難しいと思われます。
結果にご納得いただけない、もしくは原因の特定が困難であるような場合は
弊社サポートまでお問い合わせいただければできる限り調査いたします。
※ ご参考:AH Formatter V6.2 改訂情報

また、弊社サポートでは、
XSL-FO(CSS) の仕様説明をしてほしい
こういうレイアウトにしたいが XSL-FO や CSS でどのような指定をすればわからないので教えてほしい、
XSLT の技術サポートをしてほしい
といったお客様のご要望に対して有償技術サポートも受け付けております。
お客様ごとに年間何インシデントまでといった形で個別にお見積りいたしますので
弊社システム営業(sis@antenna.co.jp)までご連絡ください。

今後とも AH Formatter をよろしくお願いいたします。


Antenna House Regression Testing System (AHRTS)
Antenna House Formatterを自動でリグレッションテストするツール

2011年にUSアンテナハウスのサポートチームはAntenna House Formatter のリリース時の社内テスト用に自動のリグレッションテストシステムの開発をスタートしました。当時はおよそ1,000程の文書(10,000ページ以上)を使ってテストを行っていましたが、数人で作業して2,3日は掛かりました。スクリーン上の目視で、正しいPDF表示との見比べを左右並べて行っていたからです。

リグレッションテストは開発やリリースの過程で重要なステップですが、時間と人手間が掛かり、目視によるためそれほど正確ではありませんでした。

リグレッションテストのプロセス自動化を行うに当たって、次の様な課題が持ち上がりました。

  • コードではなくビジュアルなPDFを比較できるツールであること。なぜならPDFの内部構造は違うかもしれないが同じように見えることが大事だから。
  • 大容量の文書をテストすることができ、どこが違うか、差異をレポートできるツールであること。
  • 従来の方法より早く処理可能なこと。

こういった要求を満たすツールを探したがなかなか見つからなかったので、独自のソリューションの開発を始めたわけです。六か月ほどして、サポートチームはPDFをビットマップに変換しページをピクセルで比較するシステムを開発しました。この初版のツールを使っていままで何日もかかっていたテストが一日でできるようになりました。次のワークフローはこのシステムの詳細な過程を示しています。このシステムを使って、PDF単体の比較や、PDFを格納してあるディレクトリ単位でもテストが可能となりました。

20140605-01

レポートは実際にはAntenna House Formatterで生成され、3つのパネルに配置されます。

20140605-02

左のパネルはベースラインから抽出したオリジナルのPDFで、右のパネルは新しい文書から抽出したPDFです。AH Formatterの機能を使って個々のページをPDFから選択して一つのPDFにマージすることも可能です。真ん中のパネルは2つのページの差異をハイライトで示したビットマップの合成です。オリジナルと新規の文書でどんな種類の違いが生じたのか特定できるよう、その差異を色別に示しています。違いを含んだページのみをレポートに含むことが重要と考え、その方針で、もし500ページ中4ページだけ差異がある場合、その4ページのみを見るだけで済むようになっています。

その後更に開発を続けパーフォーマンスは飛躍的に改良されました。ユーザーフレンドリーなGUIを立ち上げインストーラを作成し、5分以内でソフトウェアをインストールが可能になりました。また、Windowsに加えて、Linux Macにも対応しました。

現在では、このシステムを使って2時間以内でテストを終えることができ、どんな差異も見つけることができると自負しています。弊社のFormatterの定期リリースや、改訂リリースがテストのために遅延するということはなくなりました。また、この上質なテストを行うことで、品質がかなり良くなっていることが判明しました。

リグレッションテストシステムは現在Antenna Houseの商品として販売しています。詳しい情報についてはこちらをご参照ください。

http://www.antennahouse.com/antenna-house-regression-testing-system/


JATSをPDFに

先日、学術情報XML推進協議会さん主催のセミナーにお招きいただき、「XML自動組版を実践する」というテーマで2時間近くお話させていただく機会がありました。いつもは30分とかせいぜい1時間くらいお話しさせていただくことが多いのですが、2時間というのは相当長い時間をいただいたことになります。
ご参加者者は35名くらいだったでしょうか。お申し込みはもっとあったようですが、会場のキャパの関係で途中で受付を打ち切られたそうです。そういうお話を聞かされたらこちらも気合が入ります(笑)。

まずXMLの一般的な話題から入って、それをPDFにするための手段について話を進めます。

XMLの具体例

XML→XSL-FO→PDF

そしてXSL-FOの概要説明を経て、XSLTスタイルシートの説明。

XSL-FO の具体例

XSLTスタイルシートの例

XSLTスタイルシートの例

最後に、どうやってJATSを入力するのか、ということで今回はoXygenを使って実際に入力するところをご覧いただきました。

昨年も、学術情報XML推進協議会さんにはセミナーにお招きいただき、そのときは主にHTMLに変換するためのXSLTスタイルシートの作り方のお話をさせていただいています。
JATSに限らず、もしXMLの自動組版について話が聞きたいという方がいらっしゃいましたら、いつでもご連絡ください。お待ちしております。


Pages: Prev 1 2 3 4 5 Next