年別アーカイブ: 2015年

[海外営業レポート] ページメディア出力と 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/


F# の Seq に驚く

.NET の一級市民と「なるべく」設計されたという F#。一級市民になれたのだろうか。Visual Studio 2013 Community でも最初から F# が使える。がしかし、GUI プログラム (WPF プログラム) が作れるようにはなっていない。拡張プログラムの「F# Empty Windows App (WPF)」をインストールすることで GUI プログラムが作れるようになる。喜んで使い始めるが、どうもプロパティで GUI コントロールをバインドする部分がちゃんと動かない。ツリー表現のコントロール(パス)でアイテムを選べるのだが、アイテム名が表示されないので何を選んでるのかわからない。選ぶと XAML ファイルが変更されるので動いてはいるようだ。これがバグなのか、たまたま微妙に動いてるだけなのかわからない。F# は正規には WPF プログラムを作れるようにはなってないのだからたまたま微妙に動いてるだけという可能性は高い。なんにせよ結局 XAML は手で触らないといけない。一級市民ねぇ。

プロパティをイベントモードにすると「イベントハンドラーを追加する前に、分離コードファイルとクラス定義を追加してください。」などとお願いされちゃう。分離コードってなんだ? と調べると、C# の partial class を使って XAML の定義と C# の定義を融合するといったことをするようだ。問題は F# には partial class なんて概念がないこと。将来的にはサポートされるのかもしれないが、VS2013 の F#(バージョン3.1.2) には存在しない。困ったぞ。しかたがないので、アプリケーションのインスタンスを表す App.xaml を使うのを止め、コードでアプリケーションの初期化を記述した。イベントハンドラはコードで追加。まさしく手で追加。困った一級市民だ。

そんな、皆さんのディスクの肥やしになっているだろう F# の Seq に驚かされた。

.NET の ZipArchive クラスの Entries プロパティは ReadOnlyCollection<ZipArchiveEntry> という型なのだが、こういった .NET でよく使われるコレクションは F# では List の関数では直接扱えない。ところが Seq の関数では扱える。で、map や iter など Seq の関数を List の関数のつもりで(大概同じものがある)使ってるとその仕様の違いに突然驚かされる。で、確認のためプログラムを書いた。

let OnList (d0) =
    let _ = stderr.WriteLine("## OnList ##")
    let _ = stderr.WriteLine("part 1")
    let c = ref 0
    let d1 = 
        List.map 
            (fun (s: string) -> 
                let _ = stderr.WriteLine("function list 1")
                c := !c + 1
                s.ToUpper() + string !c
            ) 
            d0
    if List.length d1 > 2 then
        let _ = stdout.WriteLine("part 2")
        let d2 = 
            List.map
                (fun (s: string) -> 
                    let _ = stderr.WriteLine("function list 2")
                    s
                ) 
                d1
        d2
    else
        []

let OnSeq (d0) =
    let _ = stderr.WriteLine("## OnSeq ##")
    let _ = stderr.WriteLine("sect 1")
    let c = ref 0
    let d1 = 
        Seq.map 
            (fun (s: string) -> 
                let _ = stderr.WriteLine("function seq 1")
                c := !c + 1
                s.ToUpper() + string !c
            ) 
            d0
    if Seq.length d1 > 2 then
    //if true then
        let _ = stderr.WriteLine("sect 2")
        let d2 = 
            Seq.map
                (fun (s: string) -> 
                    stderr.WriteLine("function seq 2")
                    s
                ) 
                d1
        Seq.toList d2
    else
        []

[<EntryPoint>]
let main argv =
    let ls1 = [ "abc"; "def"; "ghi" ]
    let r1 = OnList(ls1)
    let _ = List.iter (fun (s: string) -> stdout.WriteLine(s)) r1
    let r2 = OnSeq(ls1)
    let _ = List.iter (fun (s: string) -> stdout.WriteLine(s)) r2
    0

OnList 関数と OnSeq 関数はどちらも入力の文字列リストを関数1 で大文字に変換して順序数を付けて、リストサイズが 2 より大きかったら関数2 を通って変換後のリストを返す。関数2 では何もさせてないが、何かしてもしなくても同じなので省略した。OnList 関数と OnSeq 関数の違いは List の関数を使うか Seq の関数を使うかだけ。

OnList の実行結果は以下の通り。

## OnList ##
part 1
function list 1
function list 1
function list 1
part 2
function list 2
function list 2
function list 2
ABC1
DEF2
GHI3

目論んだ通り、リスト要素の回数だけ関数1 と関数2 が呼ばれている。

OnSeq の実行結果は以下の通り。

## OnSeq ##
sect 1
function seq 1
function seq 1
function seq 1
sect 2
function seq 1
function seq 2
function seq 1
function seq 2
function seq 1
function seq 2
ABC4
DEF5
GHI6

関数1 が 2 回ずつ呼ばれ、参照を使った順序数が変わってしまっている。この程度のコードで結果が変わるのである。

Seq は遅延評価されるのに加え、要素のインスタンスが常に 1 つという制限がある。で、

if Seq.length d1 > 2 then

のときに d1 が評価され、分岐するのだが、関数2 での評価時、もう d1 の要素は保持されていない(要素のインスタンスは常に 1 つ)ため再度関数1 からやり直している。ところが関数1 は順序数を得るのに参照を使った代入をしている不純な関数なので結果が変化してしまうのである。この関数1 が純粋でも問題は同じ。関数1 が重い処理だったりした場合、無駄に CPU と時間を食うことになる。不純な関数を使ったのは結果が変化するという、どう考えてもダメな判りやすい結果を敢えて出すため。

if true then

というように分岐の判定である d1 の評価をやめると、関数1 は要素数回のみ呼び出される。

ようは Seq には気を付けろということだ。.NET のコレクションがデフォルトでは Seq でしか扱えないのは、どう考えても罠。強烈な罠。

 


『Antenna House pdfview』 1.0.0版を販売開始!

~ Android アプリケーションへ PDF 表示機能を組み込み ~

Android 向けの PDF 描画ライブラリー『Antenna House pdfview』1.0.0版の販売を開始しました。昨年よりβ版を公開しておりましたが、本日より正式リリースとなります。

お客様開発アプリへ PDF の表示や検索機能を提供

『Antenna House pdfview』 は、Android 上で下記が可能です。

  • PDFファイルをビットマップ画像に変換
  • PDFファイルからページテキストを抽出

『Antenna House pdfview』 を組み込むことで、お客様が開発される Android アプリで PDF の表示や検索が実現できます。

対応プラットフォーム

下記のプラットフォームで動作します。
・Android 4.0.4 – 4.4.4 (ARMv7-A アーキテクチャーの CPU)

サンプル PDF ビューアー、ソースコードが付属

サンプル PDF ビューアーが付属しておりますので、お手元の Android 端末で、PDF の表示やテキスト検索の動作をすぐにご確認いただくことができます。

また、サンプル PDF ビューアーの Java ソースコードも提供しております。Java ソースコードは、開発アプリケーションへの PDF 表示機能の組み込みや、独自の PDF ビューアーの開発にご利用いたくことができます。

ahpdfview sample

サンプル PDF ビューアー

詳しい製品情報は、下記の製品ページをご覧ください。
また、評価版をご用意しておりますので、ぜひこの機会にお試しください。

製品ページ:
https://www.antenna.co.jp/ahpdfview/
評価版のお申し込み:
https://www.antenna.co.jp/ahpdfview/trial.html
お問い合わせ:
Antenna House pdfview はOEM 販売となります。OEM ご相談窓口へお問い合わせください。


月刊論文誌のEPUB化

おはようございます。今日は月刊論文誌のEPUB化についての話題です。

現在、月刊の技術学会誌のEPUB版を制作しています。印刷用のPDFと組版用のテキストデータが校了後に提供され、これをEPUB化して印刷物の発行と同時に公開します。

EPUBは、アンテナハウスの電子書籍制作Webサービス「CAS-UB」で生成します。

時間がないので、できるだけ効率よく作業を行えるよう、組版用のテキストデータをCAS-UBのマークアップテキストに効率よく置き換えられるようにインポートプログラムを用意しています(CAS-UBは、このようなユーザー毎のカスタマイズ要求に対応できます)。

図や数式は画像素材としては提供されないので、アンテナハウスで開発した「PDF加工画像化ツール」でPDFから切り出して使用します。

数式の切り出し

PDFを「PDF加工画像化ツール」で表示し、まずは数式を探して切り出す範囲を指定します。数式のほとんどは特殊なフォントが使われているので、フォントを検索することで自動的に範囲指定できるようにしています。数式は、文章中に置かれたインライン数式と、段落に数式のみが置かれたブロック数式に分けて範囲指定します。

数式の切り出し

数式の切り出し

数式は、インライン数式とブロック数式を分けて、ファイル名に連番を付けて切り出します。
組版用のテキストデータには数式のマークアップがあるので、数式の範囲指定と組版用のテキストデータの数式マークアップを1対1に一致させて、組版用テキストデータの数式マークアップをCAS-UBのマークアップに置き換えます。

図や表、写真などの切り出し

図表やイラスト、写真などは、目視で探してキャプションを含めて範囲指定することで、キャプション付きの画像として切り出します。図表の位置は、組版用テキストデータに情報がないので、本文中に 図1 図2 といった記述があれば、その段落の後にCAS-UBのマークアップで図表を配置します。

画像の切り出し

画像の切り出し

EPUBのカバー画像は、印刷用の表紙を画像化したデータを加工して使用しています。
作成したEPUBは、閲覧用の端末で表示しを確認し、問題があれば調整します。

今回の案件では、アンテナハウスで開発した「会員制出版物配信サービス」でEPUBを購読者向けに配信しています。



「会員制出版物配信サービス」モニター募集!

おはようございます。今日明日は、電子出版サービスグループから電子書籍にまつわる情報を発信します。

【告知】iOSアプリ「EB2Magazine」モニター募集のご案内

昨年リリースした会員制出版物配信サービスの実践例として、編集兼発行人 鎌田博樹氏が率いる『EBook2.0 Magazine』をiOSモバイルユーザー向けアプリとして開発しました。EBook2.0 Magazine を楽しみつつ、アプリの出来具合を確かめていただけるモニターを募集いたします。

ご興味をお持ちいただいた方は、是非下記お申込フォームからお申し込みください。

  • モニター期間:2015年9月末まで
  • モニター特典
    有料会員向けの記事を期間終了まで無料で購読いただけます。

アプリダウンロードURL:E-Book2.0 Magazine iOSアプリダウンロード

「会員制出版物配信サービス」のコンセプト

会員ユーザーのもとに確実に届き、いつでもどこでも読まれる電子書籍(PDF/EPUB)を!

特定ジャンルに絞ったサイトの記事を閲覧するユーザーの多くは、そのジャンル(またはサイト)に元から関心を払っていて、かつ興味をひかれる記事は「きちんと読みたい」「読みながら考えたい」と感じます。

さて、情報配信側はというと、こちらはWebページを制作、更新し、ユーザーに対してその内容を告知します。告知の方法はメールが主流ですが、メールを開く前に大量のスパムに紛れてしまったり、本文の作られ方やユーザーが利用しているメーラーによって可読性が変わり、ユーザーが閲覧をあきらめてしまったりと、なかなかWeb閲覧までの道のりは遠いと伺います。そういうサービスを専門に行う企業に外注するのも一つの手ですが、コストを考えるとなかなか手が出せません。

会員制出版物配信サービスは、ユーザーの読みたい、配信者の見てもらいたいニーズにマッチしたサービスです。

配信サーバーと専用モバイルアプリで問題を解決します。イメージは学会誌、会誌、ニューズレターをモバイル向けに電子書籍で配信する方式で、アプリを端末へインストールすれば、多くのメールに紛れてしまうことがないので、確実にユーザーの手元に届きます。オフラインでも、電車の中でも、いつでもどこでもしっかり読んでもらえます。

詳細ページURL:https://www.antenna.co.jp/epub/e-maga.html

「会員制出版物配信サービス」実例のご案内


troubleshooting(DITA 1.3)

なかなか勧告されない DITA 1.3 ですが (^^;  期待している方も多いはず。
中でもやはり最大の注目は troubleshooting でしょうか。
新たに troubleshooting トピックタイプが追加されたり、タスクの中にも troubleshooting が記述できるようになるみたいです。

そこで troubleshooting トピックタイプについて少し調べてみました。極めて大雑把ですが次のような構造になるようです。

 DITA 1.3 troubleshooting1

まず「症状」の記述があって、その下に「原因」と「対処法」が続く構造ですね。
具体的にイメージできないので、試しにオーサリングしてみました。

DITA 1.3 troubleshooting2

私自身オーサリングの専門家ではないのでちょっと怪しげかもしれませんが、上のような感じになりました。
もし「その書き方は間違っているよ」という部分がありましたらご指摘ください。


DITA Festa2015 Kyoto

少し古い話題になってしまいますが、3月20日に恒例の DITA Festa が開催されました。今回は京都での開催です。
昨年2月には大阪で開催していて、そのときと比べて少し参加者が少なかった感があるのですが、それでも皆さんが熱心に各セッションに耳を傾けていらっしゃったのが印象的でした。
詳しいアジェンダはDITAコンソーシアムジャパンのWEBページをご参照ください。

DITA Festa2015 Kyoto の様子

DITA Festa2015 Kyoto の様子

まず最初に「SAPにおける大規模DITA導入事例」のセッションです。これは昨年11月に東京で行われた DITA Festa でもあったセッションなのですが、そのときの参加者の評価が非常に高く、今回もドイツからSven Leukert氏をお招きして事例発表をしていただきました。

  • CMS上にある130万ファイル以上のオブジェクトから、1日に12,000以上の成果物を生成
  • 300人以上に対して教育、役割の定義、サポートやコミュニケーションチャネルを設定を実施

という大きな規模の事例で、参加者の方々からは「非常に参考になった」という声が聞かれた反面「あまりに大規模過ぎて…」という声もありました。
質疑応答の中で「コストダウン前提ではなく改革なんだ」とおっしゃっていたのが印象的でした。

続いて DITA Europe 2014 に参加されたIXIASOFTの村田氏とPFUソフトウェアの竹森氏の報告です。両氏が DITA Europe で聞いて来たなかで、興味深かったセッションをかいつまんで報告してもらいました。
個人的に面白いと思ったのが「失敗するコンテンツ管理プロジェクト プロジェクト初期におけるその兆しと解決方法(Mekon社)」です。「こうするといいよ」みたいな切り口での話はよく聞きますが、ここでは「こうしちゃだめだよ」という切り口で話を聞けました。
それから「執筆ガイドラインをきちんと作ってそれを遵守しないとだめ。インフォメーションモデルだけでは十分でない」というのも説得力があります。

そのあと10社のベンダー企業から各社のサービスや製品の紹介があり、全体として非常に密度の高いイベントとなりました。


Excel ファイルの電子納品とその対策

 社会福祉法人の現況報告書が電子化

平成25年6月に規制改革実施計画が閣議決定され、その中に社会福祉法人の経営情報の公表(財務諸表の情報開示)が盛り込まれました。
これに関して、平成26年5月に厚生労働省から所轄庁へ具体的な施行方法等が通知されています。

社会福祉法人の所轄庁は都道府県、政令指定都市、中核市です。中核市の船橋市では、毎年提出する社会福祉法人の現況報告書について、決められた書式で作った Excel 形式のファイルを電子メールか電子記録媒体の郵送等で提出することになっています。

 http://www.city.funabashi.chiba.jp/kenkou/other/0008/p008803.html
船橋市「社会福祉法人の現況報告書等の提出 について」

興味をそそられるのは、厚生労働省から所轄庁への通知の内容です。

  • 経営情報の所轄庁への提出方法の指示(提出は Excel 形式、様式の指定、送付方法の指定)
  • 経営情報の Web 公表の義務化

平成26年度決算報告分から Excel 形式が必須となります。社会福祉法人が経営情報を公開できるホームページを持っていなければ、代わりに所轄庁のホームページで公開することまで決められています。
なぜ Excel 形式なのかについては、通知の文面から、今後の分析作業などをしやすくするためと解釈できます。
今回は、ごく限られた関係者の方のみに影響する話題ですが、こうした改革の積み重ねが電子化にとってとても大切だと感じた次第です。

http://www.shakyo.or.jp/news/20141015_keiei.pdf
全国社会福祉協議会のパンフレット

既存の PDF や印刷物を Excel 形式に保存する方法

すでに一度印刷物や PDF にしてしまった財務諸表があり、それらを今回のような Excel 形式にするにはどうすればいいのでしょう。

アンテナハウスでは様々な方法をご用意しています。まず、デスクトップ製品では「瞬簡 PDF 変換」があります。Excel だけでなく Word や一太郎形式にも変換できます。

さらに、「瞬簡 PDF 変換」で使っている強力な変換エンジンを OEM でもご利用いただける 「Antenna House PDF to Office 変換ライブラリ」があります。Excel 形式の出力用として、この変換エンジンを組み込んだ製品をぜひご検討ください。

また、最近はタブレット/スマホへの対応や、パソコンレス化も急展開を見せています。そういう時は、アンテナハウスのサービス「瞬簡 PDF for Cloud」の導入はいかがでしょう。


サイバーテック社と共催セミナー開催!!

2015年4月22日(水)に XML DB ベンダーのサイバーテック社と共催で「脱 Word・脱 DTP」をテーマにセミナーを開催します。

デザインより生産性、正確性が求められるマニュアルや規定集、教材などのドキュメントを効率よく管理、運用を行うソリューションをご紹介します。アンテナハウスは、XML DB で管理されている大容量の文書やマニュアルデータ の自動組版エンジン「AH Formatter」と、新旧の PDF 比較ツール「リグレッションテストシステム(PDF 高速自動比較ツール)」をご紹介いたします。

  • 効率良くドキュメントを作成したい
  • 改版されるドキュメントの管理をしたい
  • 多言語対応の必要に迫られている
  • 外注している組版を内製化したい

などの課題に対して改善をお考えの方は是非ご参加ください。

【開催概要】

  • 開催日時:2015年4月22日(水) 17:00~18:45(受付開始16:45~)
  • 開催場所:株式会社サイバーテック セミナールーム
    東京都新宿区新小川町 6-36 S&S ビルディング 3F
  • 募集人数:10 名(事前登録制)
  • 参加費 :無料
  • 詳細、申込み:下記 Web よりお申し込みください。
    http://www.cybertech.co.jp/xml/seminar/20150422.php

お問い合わせ先
アンテナハウス株式会社
S1 グループ
mail:sis@antenna.co.jp
TEL:03-5829-9021


Pages: Prev 1 2 3 ... 4 5 6 7 8 9 10 11 12 13 14 Next