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

エラー “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の自動組版について話が聞きたいという方がいらっしゃいましたら、いつでもご連絡ください。お待ちしております。


[XSL-FO] Formatter サポートが語る orphans と widows プロパティの話

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

今日はうっかり忘れがちなorphansとwidowsプロパティのお話です。
(….うっかり忘れるのは私だけかもしれませんが)

CSSやXSLで定義されているorphansとwidowsプロパティは次のように説明があります。
The “orphans” property specifies the minimum number of lines of a paragraph that must be left at the bottom of a page. The “widows” property specifies the minimum number of lines of a paragraph that must be left at the top of a page.

orphansプロパティはページ下に残される段落の最低の行数、widowsはページの1番上に残される段落の最低の行数を指定するということになります。
図1 を見ると解りやすいかと思います。

【図1 orphansとwidows】
【図1 orphansとwidows】

このorphans/widowsというプロパティの値は規定値が”2″に決められています。
これは、段落の始まりの1行だけがページ下にあったり、段落の最後の1行だけがページ上部にあるのは組版ルール上好ましくないとされているためです。
そのため、orphans=”2″の状態で組版すると図2 のような結果になります。

【図2 orphans=
【図2 orphans=”2″での組版結果】

Page1の下には1行分の空きがありますが、orphans=”2″なのでここに入るはずだった行(文字列)は次ページの先頭に移動します。その結果Page1の下には空きが発生します。
この段落でorphans=”1″を指定すると、図3 のようになります。

【図3 orphans=
【図3 orphans=”1″での組版結果】

widowsも同じです。

【図4 widows=
【図4 widows=”2″での組版結果】

図4 で最後の段落は4行分のデータです。普通に並べるとPage1に3行、Page2に1行と入るはずですが、widows=”2″にしたがってPage2のtopに1行だけ配置することはできないのでPage1の最後の行はPage2に移動します。結果的にPage1の下には1行分の空きが発生することになります。
これも、widows=”1″を指定すると図5 のようになります。

【図5 widows=
【図5 widows=”1″での組版結果】

※ここからうっかりポイント

このプロパティは段落の中に画像を埋め込んだ場合も適用されます。
例えば次のようなXSL-FOの記述があったします。
<fo:block>
<fo:external-graphic src=”1.jpg”/>
<fo:external-graphic src=”2.jpg”/>
</fo:block>

fo:external-graphicで埋め込まれた画像はインラインオブジェクトなので文字列と同様に行エリアを生成します。画像の大きさにもよりますが、これを組版したとき、次のような結果になる場合があります。

【図6 画像を2つ埋め込んだケース】
【図6 画像を2つ埋め込んだケース】

この例では1つの画像が1行分になります。
orphans=”2″,widows=”2″のままだと1行だけの配置はできないので最低の2行を同じページに配置しなくてはなりません。したがってこのように画像2つ(2行)が並んだ結果、ページからオーバーフローしてしまうことがあります。
こういう場合もorphans=”1″,widows=”1″を指定することで図7 のように解決します。

【図7 orphans=
【図7 orphans=”1″ widows=”1″ を指定して解決】

他にも、
<fo:external-graphic src=”embedded.pdf#page=3-5″/>
AH Formatterの拡張機能を使ってこのようなPDFの連続ページ埋め込みを行った場合も同じです。

先日、お客様からこういったお問い合わせを受けて
orphans/widowsの仕業だということを思い出すのに3時間ほどかかってしまったのでした。
 
 


AH Formatter V6.2 製品発表会のお知らせ

アンテナハウス株式会社は、XML/HTML 自動組版ソフトのベストセラー『AH Formatter』をバージョンアップした『AH Formatter V6.2』を 2014年2月28日に出荷開始いたしました。これにともない、3月7日(金)に製品発表会を開催いたします。どなたでも無料で参加できますので、是非、『AH Formatter』の進化を知っていただきたく存じます。

製品発表会の詳細は次のページでご覧いただけます。
Formatter Club「AH Formatter V6.2 発表会」

今回のバージョンでは、MathML 描画エンジンが完全に書き換えられ、数式の組版がより一層強化されました。このとき、MathML の対応バージョンも AH Formatter V6.1 までの MathML 2.0 から 3.0 へ更新しました。
MathML 3.0 を含む MathML のサンプル(zip)出力結果 PDF

MathML 組版結果例
– MathML 組版例 –

また、ご要望の多かった次の機能などに対応いたしました。

  • フォント構築ファイルの設定でフォントフォルダのサブフォルダ内のフォントも検索が可能になりました。
  • font-variant に指定できる値が追加されました。
  • ボックスシャドウに対応しました。
  • テキストシャドウに対応しました。
  • 行グリッドに対応しました。
  • 複数ページに渡る脚注が可能になりました。
  • 表の各段に独立に行番号を振ることが可能になりました。
  • ページ分割されたセルでの表示内容が指定可能になりました。
  • tab-size プロパティに対応しました。
  • rgba() 関数が利用可能になりました。
  • トンボに見開きの背表紙の幅を指定可能になりました。
  • GUI 上に表示されるページサイズの単位が指定が可能になりました。
  • GUI で使用する表示上の言語の切り替えが可能になりました。
  • CSS で評価される @media の種別を指定できるようになりました。
  • PDF レイヤの指定が可能になりました。
  • PDF の埋め込み時に埋め込まれる PDF 内にあるリンクなどの注釈が保持可能になりました。
  • PDF へ埋め込むマルチメディアのプロパティが追加されました。
  • 組版の設定の既定値の見直しを行いました。
  • PDF 出力の設定の既定値の見直しを行いました。

行グリッドを使った組版例
– 行グリッドを使った組版例 –

既に『AH Formatter』をご利用の方も、自動組版にご興味をお持ちの方も、是非この機会に製品誕生から 14年目を迎えた『AH Formatter』の性能に触れていただきたく存じます。

・追記(2014年3月10日):
「AH Formatter V6.2 発表会」で配布した資料を公開します。『AH Formatter』の機能をご理解いただくのにお薦めです。是非、ご覧ください。
『AH Formatter V6.2』の数式組版と多言語組版の解説(PDF)
『AH Formatter』従来の機能と V6.2 で追加された新機能の紹介(PDF)


[AH Formatter] FO 中での言語指定の重要性について

ユーザサポートに寄せられる問い合わせ(トラブル)で FO 中での言語指定がないことが原因となっている場合がよくあります。

font-family においてフォントの候補が複数列挙されている時や font-family の指定が無い時、AH Formatter は文字に対してどのフォントを適用すべきかをスクリプトによって決定します。これによって “ABC” などのラテン文字は欧文フォント、”あいうえお” などのひらがな(日本語)であれば和文フォントになります。

Unicode で定義されているスクリプト情報のみで判断できない場合には前後の文字などで判断しますが、それでも決定できない場合があります。例えば、段落に単独で ○(U+25CB)があったり、○ の前後に半角スペースが存在するような場合です。○ は和文フォントと欧文フォントでその字体には違いがあります。

FO 中での言語指定の重要性について

スクリプトが決定できない=フォントが決定できない時、AH Formatter はオプション設定ファイルの default-lang と default-lang2 の設定に従います(フォントの選択方法については、オンラインマニュアルの 技術的資料 – フォントの選択を参照してください)。この指定の既定値に従うと、言語指定のない FO では “eng” が指定されているものとみなします。したがって、上記のような ○ のスクリプトが決定できない場合は欧文フォントが選択されます。

FO 中での言語指定の重要性について

このように言語指定が無いことが原因で同じ ○ に対して適用されるフォントが欧文フォントだったり和文フォントだったりと統一されないことがあります。XSL-FO での言語指定は、xml:lang や language プロパティで行います。この指定を行うことでこのようなトラブルを未然に防ぐことができます。

組版対象の FO において、言語指定をすることは非常に重要です。日本語のドキュメントでは、ひらがな、カタカナ、漢字などの日本語とアルファベットや記号などが混在して文字の言語情報に関して意識しないことが多いのですが、このようなトラブルを防ぐために言語やフォントの指定を正しく行うことが必要です。


「CSS 書籍組版」セミナー開催のご案内(Formatter Club)

今週末 10月18日(金)に Formatter Club で「CSS 書籍組版」セミナーを開催いたします。
CSS でどこまで組版が可能かのご説明と、CSS 組版の実例のご紹介をいたします。

Formatter Club は会員様以外でも CSS 組版、自動組版にご興味のある方であればどなたでもご自由にご参加いただけます。

開催概要及びお申し込みにつきましては次のページをご覧ください。
Formatter Club 「CSS書籍組版」セミナーご案内(無料セミナー)

Formatter Club の詳細については次のページをご覧ください。
Formatter Club について


Pages: Prev 1 2 3 4 5 Next