« 2006年05月 | メイン | 2006年07月 »

2006年06月30日

XSL-FOによるXMLのPDF化(21) XSL-FOの概要 10

(26) その他の特性
V1.0では、次の9つの特性が定義されています。
content-type
id
provisional-label-separation
provisional-distance-between-starts
ref-id
score-spaces
src
visibility
z-index

V1.1では、次の特性が追加になりました。
change-bar-class
change-bar-color
change-bar-offset
change-bar-placement
change-bar-style
change-bar-width
intrinsic-scale-value
page-citation-strategy
scale-option

change-bar-* は、改訂バーのスタイルを指定するものです。また、page-citation-strategyは、新しく追加されたfo:page-number-citation-last(参照先領域の最終ページを示す)に適用して、最終ページの種類を全て、本文、非ブランクページ(ヘッダ、フッタなどのみのページ)のどれかに指定するものです。

(27) 簡略記述特性
例えば、border(境界線)は、4つの辺にそれぞれ幅、線種、色などを指定できます。簡略記述は、それらをまとめて指定すると、組版エンジンが個別指定として設定するものです。
background
background-position
border
border-bottom
border-color
border-left
border-right
border-style
border-spacing
border-top
border-width
cue
font
margin
padding
page-break-after
page-break-before
page-break-inside
pause
position
size
vertical-align
white-space
xml:lang

一般に、XSL-FOでは、CSSよりも詳しい指定ができるのですが、CSSの指定を簡略記述として、XSL-FOの指定に置き換えるようになっています。

例えば、簡略記述white-space(CSS2と同じ)は次のようにXSL-FOの複数の特性に置き換えられます。

white-space="normal"
linefeed-treatment="treat-as-space"
white-space-collapse="true"
white-space-treatment="ignore-if-surrounding-linefeed"
wrap-option="wrap"

white-space="pre"
linefeed-treatment="preserve"
white-space-collapse="false"
white-space-treatment="preserve"
wrap-option="no-wrap"

white-space="nowrap"
linefeed-treatment="treat-as-space"
white-space-collapse="true"
white-space-treatment="ignore-if-surrounding-linefeed"
wrap-option="no-wrap"

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月29日

XSL-FOによるXMLのPDF化 (20) XSL-FOの概要 9

(22) 数値から文字列への変換に関する特性
数値から文字列に変換する時の形式を定義しています。ページ番号などの書式を設定するのに使います。
format
grouping-separator
grouping-size
letter-value

例えば format="ア" と指定するとカタカナで番号をつけることになります。
V1.0とV1.1で変わりません。

(23) ページ付け及びレイアウト特性
blank-or-not-blank
column-count
column-gap
extent
flow-name
force-page-count
initial-page-number
master-name
master-reference
maximum-repeats
media-usage
odd-or-even
page-height
page-position
page-width
precedence
region-name

(24) 表特性
表のスタイルを指定する特性です。表の罫線、カラム幅、カラムスパンなどを指定できます。
border-after-precedence
border-before-precedence
border-collapse
border-end-precedence
border-separation
border-start-precedence
caption-side
column-number
column-width
empty-cells
ends-row
number-columns-repeated
number-columns-spanned
number-rows-spanned
starts-row
table-layout
table-omit-footer-at-break
table-omit-header-at-break

V1.0とV1.1で変わりません。

(25) 表記方向関連特性
文字を書き進める方向に関係するものです。
direction
glyph-orientation-horizontal
glyph-orientation-vertical
text-altitude
text-depth
unicode-bidi
writing-mode

directionは、CSSの仕様から来ているもので行内の文字を進める方向のみを指定します。writing-modeはXSLの仕様で行を進める方向と行内で文字を進める方向の両方を指定できます。unicode-bidiは、日本の文字や英語の文字のように左から右へ書く文字とアラビア文字のように右から左へ書く文字が混在したときに文字を書く方向を制御するための特性です。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月28日

XSL-FOによるXMLのPDF化 (19) XSL-FOの概要 8

(16)保持及び区切り特性
ブロック領域、箇条書き、表の行に適用されます。当該の領域の前後でページや段を区切るかどうかを指定するのがbreak-*、前後の領域とページや段が分かれないように指定するのが、keep-*です。
break-after
break-before
keep-together
keep-with-next
keep-with-previous
orphans
widows

V1.0とV1.1で変更ありません。

(17) レイアウト関連特性
この中でreference-orientationはページまたは枠のような領域に指定し、領域を回転させることができます。
clip
overflow
reference-orientation
span

V1.0とV1.1で変更ありません。

(18) リーダ及び罫線特性
リーダ線や罫線のパターン、太さなどを指定します。
leader-alignment
leader-pattern
eader-pattern-width
leader-length
rule-style
rule-thickness

V1.0とV1.1で変更ありません。

(19) 動的な効果があるフォーマット化オブジェクトに関する特性
external-destinationinternal-destination使って、PDFの内部リンク先、外部リンク先を指定できます。
active-state
auto-restore
case-name
case-title
destination-placement-offset
external-destination
indicate-destination
internal-destination
show-destination
starting-state
switch-to
target-presentation-context
target-processing-context
target-stylesheet

V1.0とV1.1で変更ありません。

(20) 索引に関する特性 (V1.1新設)
V1.1で追加された索引作成機能で使うための特性です。
index-class
index-key
page-number-treatment
merge-ranges-across-index-key-references
merge-sequential-page-numbers
merge-pages-across-index-key-references
ref-index-key

(21) マーカに関する特性
V1.0では、ページ単位でランニング・ヘッダ、爪などを作るために使うことができました。
marker-class-name
retrieve-class-name
retrieve-position
retrieve-boundary

V1.1で次の二つの特性が追加されました。これは、表の前後でマーカを検索するための追加機能です。
retrieve-boundary-within-table
retrieve-position-within-table

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月27日

BDFとは何の略? (メモ)

ビットマップフォントの形式にBDFと呼ばれるものがあります。

私は、以前からBDFとは、アドビの次の仕様書のタイトルにあるGlyph Bitmap Distribution Format の略だと思っていました。

Glyph Distribution Format Specification

ところが、BDFをググッて見ていましたら、BDF (Bitmap Description / Display Format) としている情報源もありました。

こちら

フォント関連の基礎知識 ⇒BDF と PCFの項

ところが、ここにサンプルで出ている「東雲ゴシック 16 ドット」の先頭部分の例は、上記のGlyph Bitmat Distribution Format Specificationの仕様に準拠しています。

つまり、BDF (Bitmap Description / Display Format) とGlyph Bitmat Distribution Formatとは同じものということです。

BDF Bitmat Distribution Formatでググルと61000件がヒット、
BDF Bitmap Description Formatだと、67900件がヒットする。

尤も、Bitmap Description Formatの方でヒットするのは、Bitmat Distribution FormatのBitmapとFormatと、他の文中の Description が多い。

やはり、私としては、BDFはBitmat Distribution Formatの略ではないかと思いますが、どうなんでしょうね。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (2) | トラックバック

2006年06月26日

XSL-FOによるXMLのPDF化 (18) XSL-FOの概要 7

(12) ブロック及び行関連特性
ブロック領域の中で行をどのように配置していくかを指定する特性です。line-height、text-align、text-indentはCSSに由来します。さらにXSL-FOではきめ細かい指定ができます。
hyphenation-keep
hyphenation-ladder-count
last-line-end-indent
line-height
line-height-shift-adjustment
line-stacking-strategy
linefeed-treatment
white-space-treatment
text-align
text-align-last
text-indent
white-space-collapse
wrap-option

V1.0とV1.1で変更ありません。

(13) 文字特性
テキストの文字間を調整するletter-spacing、飾りを指定するtext-decoration、text-shadow、大文字・小文字の調整を指定するtext-transform、単語間の調整用のword-spacingなどはCSSから由来しています。XSL-FOでは更にきめ細かく調整できるようになっています。
character
letter-spacing
suppress-at-line-break
text-decoration
text-shadow
text-transform
treat-as-word-space
word-spacing

V1.0からV1.1で変更ありません。

(14) 色特性
色の指定のための特性です。
color
color-profile-name
rendering-intent

V1.0とV1.1で変更ありません。

(15) 浮動体関連特性
浮動するボックスの配置に関する指定で、CSSに由来します。
clear
float
intrusion-displace

CSS2ではleft、rightなどの指定をしますが、XSL-FOのV1.0でstart、endが拡張されています。

さらに、V1.1でoutside、insideの拡張がなされました。これで浮動ボックス領域を見開きページの外側、内側へ配置できるようになりました。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月25日

XSL-FOによるXMLのPDF化 (17) XSL-FOの概要 6

(8) 一般的なマージン特性-行内
行内レベルの領域では、領域の前方(start)と後方(end)に空き量を指定できます。この場合の前方、後方というのは、横書きでは、それぞれ領域の左、右になります。
space-end
space-start

この空き量も、スペース指定子を使って最小値、最適値、最大値を指定します。

V1.1仕様書では次の4つの特性が追加されています。
margin-top
margin-bottom
margin-left
margin-right

但し、これは仕様書の書き方が変わっただけです。もともと margin-* はCSSでの指定方法です。これはXSL-FOでは、ブロックレベルの space-before, space-after, start-indent, end-indent とインラインレベルの space-start, space-end のどちらにも変換されるようになっていました。

(9) 一般的な相対位置決め特性
CSS2から引き継いだものです。V1.0ではひとつだけです。
relative-position

CSS2 では position プロパティだったのが、XSL では absolute-position プロパティと relative-position に分かれ、position プロパティは shorthand の扱いとなりました。

V1.1で次の4つの特性が追加になりました。
top
right
bottom
left

これもmargin-* と同様、仕様書の書き方が変わっただけで、内容は変わっていません。top、right、bottom、left プロパティは、absolute-position とrelative-position の両方で使われるものです。XSL 1.0 の仕様書の書き方では、両方にあてはまるものは一方にだけ記載されていたのが、XSL 1.1 では両方に記載されるようになりました。

(10) 領域配置特性
行内レベルのオブジェクトや表のセル、箇条書きの項目を行の上、下、各種のベースラインの位置などに対してどのように配置するかをきめ細かく指定するための特性です。
alignment-adjust
alignment-baseline
baseline-shift
display-align
dominant-baseline
relative-align

V1.0 とV1.1で変わっていません。

(11) 領域寸法特性
ブロックレベルの領域の大きさ、あるいは行内レベルの領域の大きさなどの寸法を指定するための特性です。V1.0では次の12項目が定義されています。
block-progression-dimension
content-height
content-width
height
inline-progression-dimension
max-height
max-width
min-height
min-width
scaling
scaling-method
width

CSSでは、height(高さ)、width(幅)しかありません。これに対して、XSL-FOでは、writing-modeで行と文字の進行方向の指定ができますので、height(高さ)、width(幅)の指定では不十分です。そこでブロックの進行方向の寸法(block-progression-dimension)、行内の進行方向の寸法(inline-progression-dimension)という指定方法を導入しています。例えば、widthは横書きではinline-progression-dimensionに対応しますが、縦書きではblock-progression-dimensionに対応します。

V1.1では、新しく、次の2項目が追加になりました。
allowed-height-scale
allowed-width-scale

これらは、グラフィックスを拡大縮小させるときの制約を指定するのに使います。

投票をお願いいたします

投稿者 koba : 09:30 | コメント (0) | トラックバック

2006年06月24日

XSL-FOによるXMLのPDF化 (16) XSL-FOの概要 5

(5) 一般的なフォント特性
fo:blockに適用するフォントの特性を指定するものです。これらの特性は全てCSS2と同じです。
font-family
font-selection-strategy
font-size
font-stretch
font-size-adjust
font-style
font-variant
font-weight

V1.0とV1.1で変更はありません。

(6) 一般的なハイフン付け特性
西欧の言語を組み版する時のハイフネーションの指定方法です。
country
language
script
hyphenate
hyphenation-character
hyphenation-push-character-count
hyphenation-remain-character-count

country、language、scriptはハイフネーション規則を切り替えるためだけではなく、例えばフランス語とドイツ語では組版の規則も多少の違いがありますので、そういった組版規則の切り替えにも使います。

これらの特性はV1.0とV1.1で変更ありません。

(7) 一般的なマージン特性-ブロック
ブロック領域の周囲の空き量を指定します。4種類のmargin特性はCSS2との互換性のために設けられたものです。XSL-FOでは、margin指定をspace、indentの指定に換算します。
margin-top
margin-bottom
margin-left
margin-right
space-before
space-after
start-indent
end-indent

空き量(space)の指定は、スペース指定子という仕組みで指定します。スペース指定子は、最小値,最適値及び最大値の3つの値を同時に指定することで、組版ソフトが、ページ内に入る行数などの調整を行なうことを許します。さらに前後のスペースをページの先頭や最後に来たときは無視するかしないかなどの条件付けをしたり、前後の空き量との優先順位も指定できます。

V1.0とV1.1で変更ありません。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月23日

XSL-FOによるXMLのPDF化 (15) XSL-FOの概要 4

4.2.2 フォーマット化特性(Formatting Property)

組版の対象となるFOに対して、どのようにレイアウトするかを指定するのが、フォーマット化特性です。

(1) FOとフォーマット化特性の関係
例えば、fo:blockという段落を囲む領域については、背景の色、四辺の境界線の種類・色・太さ、インデントやマージン、前後のブロックとの空き量、フォントファミリー、フォントサイズなど、様々な特性を指定することができます。

fo:block-containerについても同じように背景、境界、マージンなどの特性を指定できます。しかし、fo:block-containerには直接テキストを含むことができませんので、フォント関連のようなテキストに対する特性は指定できません。fo:block-conatinerの中にfo:blockを配置して、fo:blockにテキストを含めます。

一方で、fo:block-containerには、reference-orientation特性を指定して、周囲に対して回転させることができます。また、writing-mode特性を使って縦書きも指定できます。block-progression-dimension (またはheight)特性で高さを指定したり、inline-progression-dimension (またはwidth)特性で幅を指定できます。

このように、それぞれのFOに対して適用できるフォーマット化特性が決まっています。

次にどのようなフォーマット化特性があるかを挙げてみます。これらの特性の多くはCSSを元にして、必要に応じて拡張されています。

(1) 一般的なアクセス性特性
V1.0とV1.1とも次の2種類があります。
source-document
role

(2) 一般的な絶対位置決め特性
V1.0とV1.1とも次の5種類があります。
absolute-position
top
right
bottom
left

(3) 一般的な聴覚特性
これは、PDF化というよりも、音声読み上げなどのタイプのレンダラを想定する特性です。XMLからPDFに変換するタイプの組版エンジンは未対応となっています。リストは省略します。

(4) 一般的な境界,パディング及び背景特性
領域の背景、境界線に関する特性です。領域の4辺について別々に指定できます。before、after、start、endという指定方法とtop、bottom、left、rightという指定方法があります。一般的な横書きでは、beforeはtop、afterがbottom、startがleft、endがrightになります。縦書きでは、beforeはright、afterはleft、startがtop、endがbottomに対応します。パディングは、境界線と文字を配置する内容領域の間隔です。V1.0 とV1.1で変わりありません。
background-attachment
background-color
background-image
background-repeat
background-position-horizontal
background-position-vertical
border-before-color
border-before-style
border-before-width
border-after-color
border-after-style
border-after-width
border-start-color
border-start-style
border-start-width
border-end-color
border-end-style
border-end-width
border-top-color
border-top-style
border-top-width
border-bottom-color
border-bottom-style
border-bottom-width
border-left-color
border-left-style
border-left-width
border-right-color
border-right-style
border-right-width
padding-before
padding-after
padding-start
padding-end
padding-top
padding-bottom
padding-left
padding-right

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月22日

XSL-FOによるXMLのPDF化 (14) XSL-FOの概要 3

(6) 動的な効果:リンク及び多重フォーマット化オブジェクト
V1.0 では次の6つのオブジェクトが定義されています。
fo:basic-link
fo:multi-switch
fo:multi-case
fo:multi-toggle
fo:multi-properties
fo:multi-property-set

basic-linkは、PDFを生成したとき、内部リンク(例:<:basic-link internal-destination="appendix-a">)や外部リンク(例:<:basic-link external-destination="http://www.antenna.co.jp/...">)を設定するのに使われます。

V1.1での追加はありません。

(7) 行外フォーマット化オブジェクト
V1.0 では次の3つのオブジェクトが定義されています。
fo:float
fo:footnote
fo:footnote-body

V1.1での追加はありません。

(8) その他のフォーマット化オブジェクト
V1.0 では次の3つのオブジェクトが定義されています。
fo:wrapper
fo:marker
fo:retrieve-marker

V1.1では、次の3つが追加になりました。
fo:change-bar-begin
fo:change-bar-end
fo:retrieve-table-marker
change-barというのは、改訂された箇所の欄外に印の線を引く機能です。FOSIの重要な機能だそうです。
retrieve-table-markerによって、表が前のページから続いていたり、次のページに続いていることを示すことができるようになります。

V1.0にはなくて、V1.1で新たに追加されたカテゴリーとして次のものがあります。
(9) 索引のためのフォーマット化オブジェクト (V1.1で新設)
fo:index-page-number-prefix
fo:index-page-number-suffix
fo:index-range-begin
fo:index-range-end
fo:index-key-reference
fo:index-page-citation-list
fo:index-page-citation-list-separator
fo:index-page-citation-range-separator

これらのオブジェクトをサポートすることによって、書籍などで使う、高度な巻末索引を作成することができます。V1.0で索引機能がなかったため、主要なXSL-FO組版エンジンが独自拡張していました。V1.1ではそれらを包含する強力な索引機能が標準で定義されました。

(10) しおりのためのフォーマット化オブジェクト (V1.1で新設)
fo:bookmark-tree
fo:bookmark
fo:bookmark-title

PDFのしおりを作成するための機能です。XSL-FOはPDF作成のために使われるケースが多いのですが、V1.0には、しおり機能がなかったためXSL-FO組版エンジンがそれぞれ独自拡張していたのですが、これが統一仕様となりました。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月21日

XSL-FOによるXMLのPDF化 (13) XSL-FOの概要 2

(2) ブロックレベルフォーマット化オブジェクト

FOでは領域をブロック領域と行内レベル領域に分類しています。ブロック領域とは行または複数の行を含むような矩形の領域です。

V1.0では次の2つを定義しています。ブロックは段落を囲む領域、ブロックコンテナは、Microsoft Wordなどでいう枠に相当します。枠の中に段落が入ります。
fo:block
fo:block-container

V1.1での追加はありません。

(3)行内レベルフォーマット化オブジェクト

V1.0では次の10種類を定義しています。
fo:bidi-override
fo:character
fo:initial-property-set
fo:external-graphic
fo:instream-foreign-object
fo:inline
fo:inline-container
fo:leader
fo:page-number
fo:page-number-citation

V1.1で次の4種類が追加されました。
fo:page-number-citation-last
fo:folio-prefix
fo:folio-suffix
fo:scaling-value-citation

(4) 表対応のフォーマット化オブジェクト
XSL-FOの表は、HTMLの表に似ています。V1.0では次の9種類を定義しています。
fo:table-and-caption
fo:table
fo:table-column
fo:table-caption
fo:table-header
fo:table-footer
fo:table-body
fo:table-row
fo:table-cell

表については、V1.1でも変わっていません。

(5) リスト対応のフォーマット化オブジェクト
XSL-FOのリストは、リストのラベル部分(list-item-label)とリストの本体部分(list-item-body)を別々に指定できる点に特色があります。V1.0では4つのオブジェクトを定義しています。
fo:list-block
fo:list-item
fo:list-item-body
fo:list-item-label

リストについては、V1.1でも変わっていません。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月20日

Office 2007のPDF保存問題 — アドビの見解

2006年06月04日 Microsoft Office 2007 のPDFサポートはどうなる?で書きました、MicrosoftがOffice 2007 からPDF保存の機能を削除する、というニュースについてアドビの見解が出ています。

Adobe and Microsoft June 12, 2006

以下に、簡単にまとめて見ます。

1.アドビは、Microsoftとの間でWindows VistaとOfficeの次のリリースの特長と機能について、しばらく話し合いを続けてきた。マスコミは、主にPDFとXPSについての議論を主に伝えているが、真の課題はオープンな標準を守ることである。

2.アドビは、PDFの完全な仕様書を出版し、使いたい人には誰にでも、無料で、制限無しで、ロイヤリティなしで使用可能としている。この結果、PDFは他のどのようなものにもまして広く使われるようになった。

3.PDFの仕様書は公開されているが、顧客は、そのフォーマットが分断化されないこと、また、PDFの競合する実装が密かにそれを汚して、様々なプラットフォームで、PDF文書を信頼して表示したり印刷したりするということができなくならないように、アドビが保証することを期待している。

4.Microsoftは、これまで、独占的な力を使って、クロスプラットフォーム技術を傷つけたり、独占を脅かす技術革新を制約してきた。Microsoftのアプローチは、Microsoftが作ったものでない標準を”採用し拡張する”というものであった。アドビは、Microsoftが独占的な力を使い、XPSのような、Microsoftがコントロールする代替手段を導入して、PDFを含む既存の確立された標準を分断化し、レベルを下げるだろうと心配している。

5.アドビは、Microsoftに対して、法的な行動を取ることを決定していない。

6.アドビは、技術革新と競争を歓迎する。我々は、与えられた互角の競争の分野においては、技術革新を推進し、競争に勝つ能力に自信を持っている。Microsoftとの議論において、我々の動機は、ソフトウェア産業に公平で、競争のある状況を維持することにある。

以上は、抄訳です。

アドビの言っていることはもっともなことですが、上の主張からは、Office 2007のPDF保存を削除するという結論は出てきません。どこかに、まだ、公開されていない闇の部分があるのでしょうね。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月19日

XSL-FOによるXMLのPDF化 (12) XSL-FOの概要 1

4.2 XSL-FO

XSL-FOの仕様は、XSLTの勧告よりも約2年遅れて、2001年10月に勧告となりました。

XSL-FO仕様書
オリジナル:Extensible Stylesheet Language (XSL) Version 1.0 (W3C Recommendation 15 October 2001)
日本語訳:標準情報(TR)  TR X 0088:2003 XSL 1.0

XSL-FOは、現在、V1.1の策定作業の最終段階になっています。
V1.1仕様書オリジナル:Extensible Stylesheet Language (XSL) Version 1.1
(W3C Candidate Recommendation 20 February 2006)

XSL-FO仕様は、組版対象オブジェクトを定義しています。これをフォーマット化オブジェクト(Formatting Object:FO)と呼びます。FOをどのように実際のページに配置していくかということを、フォーマット化特性(Formatting Property) によって指定します。

FOにフォーマット化特性を指定した結果がどのようにページの上に配置するかはレイアウト・モデルによって決まります。

4.2.1 FOの種類
(1)宣言,ページ付け及びレイアウトフォーマット化オブジェクト
これは、主にマスターページとそのマスターページをどのように組み合わせてページを生成するかを規定するものです。V1.0では次の19種類があります。
fo:root
fo:declarations
fo:color-profile
fo:page-sequence
fo:layout-master-set
fo:page-sequence-master
fo:single-page-master-reference
fo:repeatable-page-master-reference
fo:repeatable-page-master-alternatives
fo:conditional-page-master-reference
fo:simple-page-master
fo:region-body
fo:region-before
fo:region-after
fo:region-start
fo:region-end
fo:flow
fo:static-content
fo:title

V1.1で次の7つのオブジェクトが追加されています。
fo:page-sequence-wrapper
fo:flow-map
fo:flow-assignment
fo:flow-source-list
fo:flow-name-specifier
fo:flow-target-list
fo:region-name-specifier

V1.1では、様々な実装が独自に拡張しているものを仕様に盛り込むことが目標の一つでしたが、このマルチプル・フロー(本文をひとつのフローのみでなく、複数のフローで流していく)は、アドビのDocument Server (ADS)が行っているFO拡張を標準に取り込むものです。ADSはFrameMakarをべースに開発されたと思われますので、新しいXSL-FOはFrameMakerとの互換性が高くなるだろうと思います。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月18日

XSL-FOによるXMLのPDF化 (11) XSL Formatter開発の経緯(続)

さて、そうこうしているうちに、SGMLをもっと簡単にしたXML仕様が提案され、1998年にW3Cの標準仕様となりました。

XML仕様は、プログラムを実装する立場からみてもSGMLよりもかなり簡単になっています。SGMLは理想としては良いものの、実装したツールが数少なく、しかも高価になっていたことが普及の妨げにもなっていました。XMLの登場によって、いままでなかなか普及しなかったSGMLに代わってXMLが普及していくことが予想できます。

2006年06月15日 XSL-FOによるXMLのPDF化 (8) XSL-FOの歴史にも述べましたが、XMLの仕様が策定されるのとほぼ同時に、XMLにスタイルを与えて印刷するためのXSL仕様の策定作業が始まりました。

DSSSLのツール開発を見送って、次の機会を待っていた当社には絶好のチャンス到来ということになりました。

早速、XSLを実装することを計画し、1999年に開発をスタートしました。

XSL-FOの仕様が、W3Cの勧告になったのは2001年10月です。このタイミングで、うまく、XSL Formatter V2をリリースできました。この時、XSL-FOの仕様を実用的なレベルまで実装できていたのは、世界で、XEPFOPおよびXSL Formatterの3つ。

この3つのツールが市場の3強と目される状況は、5年後の現在でも変わっていないと思います。

4.XSL-FOの概要

XSL仕様は、開発中に、XMLのツリー構造を変換するためのXSL Transformation(XSLT)と、レイアウト対象オブジェクトの仕様であるXSL Formatting Object(XSL-FO)に分割されました。

4.1 XSLT
ドキュメントの印刷・PDF化においては、XSLTを使うことで、印刷対象となるXML文書にはない表紙や目次を、印刷の段階で自動的に生成したり、あるいは、索引を印刷段階で自動生成するなどの文書の自動処理を行うことができます。

DSSSLでも、このような前段の処理と、レイアウトされたオブジェクトをページアップするという組版処理に分かれています。DSSSLでは、前段のツリー構造変換をスキーマというプログラム言語を使って行います。

XSL Transformations 仕様書
オリジナル: XSL Transformations (XSLT) Version 1.0
日本語訳: XSL Transformations (XSLT) バージョン 1.0 

なお、XSLT仕様は、2006年6月にV2.0の勧告候補が出ています。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月17日

XSL-FOによるXMLのPDF化 (10) XSL Formatter開発の経緯

昨日は、文書ファイルの変換ソフトの開発に苦労した経験から、1990年代中旬に、ドキュメントをワードプロセッサと独立の、標準的な方法で表現することが重要と考えはじめたことをお話しました。

1980年代から使われているドキュメント表現用の標準技術としてSGMLというメタ言語があります。

SGML (Standard Generalized Markup Language)

このSGMLは、1980年代に国際標準規格になり、1992年にはJIS規格(X4151:1992)になっています。

そうしたことから、当社ではSGMLでドキュメントを表現する方法の検討に着手ました。

1990年代後半には、SGMLで文書を表現するための編集ソフトを試作したりしたのですが、「SGMLは静かなる革命」とも言われて、革命的な技術ですが、なかなか普及しませんでした。

SGMLも、タグとタグで囲った本文で文書を表現します。SGMLでドキュメントを表現すれば、当然、SGML文書にスタイルを与えてページの形に整形し、印刷するための方法が必要です。

このための方法としては、米国ではFormatted Output Specification Instance (FOSI)があり、軍事用の文書などを中心に普及したようです。

FOSI

SGMLを印刷するための標準技術もあります。文書スタイル意味指定言語(Document Style Semantics and Specification:DSSSL)という仕様です。

DSSSL (Document Style Semantics and Specification)

DSSSLは、JIS X 4153:1998としてJIS規格にもなっています。

DSSSLを使ってSGMLを印刷するツールの必要性はあると考えられましたが、しかし、開発はかなり大変と予想されましたし、当時の市場を考えますとSGML自体がそれ程普及していないなかで、DSSSLツールを開発しても市場性が小さいと見られました。そこで、当社ではDSSSLツールの開発は見送ることにしました。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月16日

XSL-FOによるXMLのPDF化 (9) XSL Formatter前史

このPrinting XML: Why CSS Is Better than XSLですが、どうもHåkon Wium Lie氏のXSL批判はまとはずれなところが多いように思います。

Håkon Wium Lie氏は、この文書の中で、XSL Transformation(XSLT)のスクリプトが長く複雑なのにCSSは簡単である、だからCSSが優れているという趣旨の発言を繰り返しています。しかし、XSLTは、XMLのツリー構造を操作する言語なので、これをCSSと比較するのは不適切です。

【参考】
XSLT (XSL Transformations)

XSLTはXSL-FOを作り出すための最も主要な方式なのですが、XSLTを使わなくてもXSL-FOを作り出すことができます。

特にサーバサイドではデータベースなどから検索したデータとテンプレートを使ってダイナミックにXSL-FOを作り出すこともできるでしょう。

また、例えば、XML文書にもともと存在しない目次や索引をXSLT変換で作りだすことができます。こうして作り出した目次や索引にCSSを適用することもできます。このように、XSLTとCSSを組み合わせて使うこともできます。

ですので、スタイルシートの機能を比較するなら、CSSとXSL-FOを比較しなければならないのです。そしてCSSとXSL-FOはレイアウトモデルの観点では、兄弟の関係になります。つまり50歩100歩。お互いに批判するにしても兄弟喧嘩になるに過ぎません。

3.当社のXSL Formatter開発の経緯

時々、当社がなぜ、XSL Formatterの開発に取組んでいるのか、という質問を受けることがあります。XSL-FOの歴史をお話するついでにそのことをお話しましょう。

当社は、1989年にリッチテキスト・コンバータの開発を開始しました。リッチテキスト・コンバータの開発はかなり四苦八苦をしたのですが、漸く1995年頃には大きな収益を出すことができるようになりました。

リッチテキスト・コンバータの開発になぜ苦労したかと言いますと、ワープロ文書はバイナリ形式といってコンピュータでしか理解できないデータになっていて、文書の文章内容と制御用データが渾然一体となっていること。そして、レイアウト、スタイル、罫線の情報などが、各ワープロ独自の仕様になっていること。例えば、日本語ワープロでは、表を罫線で作りますが、Microsoft Wordを初めとして西欧言語のワープロでは表をセルを積み重ねて作ります。このようにそもそも文書のモデルが違うのです。

このため、データ変換ソフトは完全なレイアウト互換性をもたせることが困難です。苦労した割りに満足できる結果になりにくいのです。

そこで、次の製品プロジェクトを開始するにあたり、もっと標準的な文書表現方法がないものか、といろいろ考えました。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月15日

XSL-FOによるXMLのPDF化 (8) XSL-FOの歴史

2.XSL-FOの誕生

さて、ようやくXSL-FOにたどり着きました。
XSL-FOは、XMLをページに整形してPDF化するための標準技術です。XSL-FOの標準化はXMLが標準技術として勧告された1998年から始まっています。

XSLの標準化を提唱したのは、Microsoft、ArborText、InSoの3社だったと記憶しています。不確かです。提案資料は、今、見当たりません。

XSLを作ろうという動きは、恐らく1997年からはじまっているようです。1998年1月には、XSLの開発のための作業委員会の活動が始まっています。

従って、CSSよりも数年遅れてスタートしたことになります。

改めて、W3CのXSL開発作業委員会のメーリング・リストの書庫を少し見てみましたが、CSSでは、複雑なXMLのスタイル付けは難しいということがXSLの開発意図になっているようです。このあたりは、Jon Bosak氏あたりが主張しています。また、同じくSunのNorman Walsh氏あたりもXSL推進派です。

これに対して、CSSの開発者であるHåkon Wium Lie氏が激しく反論するなどCSSとXSLの位置づけについては、当初から議論があります。

Håkon Wium Lie氏は、Operaのホームページで、Formatting Objects considered harmful

というような、XSL-FO批判を行っています。

(2006年の現在から振り返ってみますと、Håkon 氏のこの文章は、XSL-FOの可能性を認識していない、的外れの批判になっています。上の文章で、Håkon 氏は、XSL-FOはWebでは使えないといって批判しています。しかし、実は、XSL-FOはWebではなく、XMLからPDFを生成する技術、特に、SGML時代のDSSSLの後継として広く利用されるものです。当時のHåkon 氏は、DSSSLの意義、PDFの重要性が分かっていなかったのだろうと思います。)

その後、しばらくの間は、Web用のCSS、PDF生成用のXSL-FOという棲み分けがなされていました。

ところが、XSL-FO派のNorman Walsh氏が、CSSは、いつまで経っても完成しないじゃないか("CSS is never going to fix it.")と挑発したため、また、両陣営の争いが勃発しています。

Norman Walsh氏のブログ
http://norman.walsh.name/2004/12/07/webarchPdf

これに対して、Håkon氏がPrinting XML: Why CSS Is Better than XSLで、XSL-FOよりCSSが優れている主張。次に、昨日紹介しましたように、Princeを使ってHTML+CSSをPDF化して書籍を作って、XSL-FOに挑戦しています。

このように、XSLは仕様の誕生時点から、先行するCSSとの位置づけが議論の対象になっています。今後、CSS3の進展で、XSL-FOとの関係がどうなるか、楽しみです。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月14日

XSL-FOによるXMLのPDF化 (7) XML+CSS でPDF生成

CSSは、HTMLをブラウザで表示する時に使用する用途を意図して提唱されたのだろうと思います。次の表でブラウザのCSSサポート状況を見ることができます。

【参考資料】
ブラウザのCSSサポート一覧

これを見ますと、CSS2.1レベルのサポートはFireFoxが比較的進んでいます。IE6、IE7ともCSS2.1サポートはそれ程進んでいないように思います。

特に、紙・PDFに印刷するためのページを指定するために使う@Pageルールは、IE6、IE7、FireFoxもサポートしていません。もともとブラウザは画面表示を想定しているため、奇麗にページに整形してPDFに出力することは重視していないのだろうと思います。

CSS3のサポートは、どのブラウザもまだまだです(仕様が草稿レベルですので当然ですが)。

一方、ブラウザとは別に、最近は、XMLにCSSでスタイルを与えて、PDFにするソフトが幾つか出てきました。これは新しい動きと言えるでしょう。

■海外
PDFReactor(RealObject社)

PDFReactor.PNG

JAVAで書かれています。GUIにブラウザビュー、PDFプレビューを表示できます(上の画面)。この他、ドキュメント(XML)のソースを表示して編集したり、スタイルシートを表示します。

JAVAのためか少し動作が鈍いのが気になりますが、簡単なドキュメントを整形してPDFにする用途なら十分使えそうです。ハイフネーションなどの高級な整形はできないようです。

Prince(YasLogic社)
Princeは、2003年4月に初版(V1.0)がリリースされており、2003年5月にV2.0(1ヶ月でV1からV2へ)、2003年12月V3、2004年10月V4、2005年10月V5になっています。
2005年4月に出版された「Cascading Stylesheets - Designing for the Web」 (Håkon Wium Lie and Bert Bos)という書籍は、HTMLで記述されCSSでスタイルをつけて、PrinceでPDF化されたそうです。

YasLogic社はオーストラリアの会社ですが、Håkon 氏がCTOを勤めています。

■日本
CSSJ
まだ初歩的なレベルのようですが、HTMLを整形してPDFを出力できます。
ブログのPDF化のサイト「ブログ出版局」に使用されています。

このようにHTML(XML)+CSSは、簡単なレイアウトの書籍を出版できるレベルにまでなってきているようです。CSS3仕様が完成して、それをきちんと実装すれば大化けするかもしれません。何年先のこと?

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月13日

PDF Conference 2006 開催

7月11日(火) 10:30~17:00 「PDF Conference 2006」が開催されます。

今回の「PDF Conference 2006」は、3部構成となっています。

第1部では、AcrobatとAdobe PDFの歴史から将来像までをコンパクトにまとめてわかりやすく紹介します。

第2部そして第3部では、行政・一般企業向けの「エンタープライズセッション」と出版・印刷業向けの「プロパブリッシングセッション」の2つに分けて各テーマを深く掘り下げます。

第1部 10時30分~12時00分
Acrobat&Adobe PDFオーバービュー
「さらに拡がるAcrobatソリューション」

プロパブリッシングセッション
第2部 13時00分~15時00分
「改めて確認しようPDF/X入稿~Acrobatでここまで出来る~」

第3部 15時15分~16時15分
「PDF/Xのすべて」

エンタープライズセッション
第2部 13時00分~15時00分
「チェック&コメント徹底活用法~制作/運用ワークフローの大幅な効率化を実現!~」

第3部 15時15分~16時15分
「Adobe Acrobat 3D徹底研究」

PDF/X-PlusJ推進協議会参加企業9社による展示コーナー及びミニセミナーも同時に開催されます

アンテナハウスも、展示会およびミニセミナーに参加します。
◇当社の出展内容
XML自動組版ソフトXSL Formatter V4のPDF/X出力機能

◇当社のセミナー内容
アンテナハウスは、PDF出力ライブラリー、PDF編集ライブラリー等PDF
基本ソフト開発において、標準PDFのサポートを重点課題としています。
今回はXSL Formatter V4のPDF/X、タグ付きPDFの出力等を紹介します。


■PDF Conferenceの開催概要
・名  称/ PDF Conference 2006
・会  期/ 2006年7月11日(火) 10:30~17:00
・会  場/ ゲートシティ大崎 ゲートシティホール・ルーム
  電車:JR山手線「大崎駅」下車、東口徒歩3分

・主  催/ PDF Conference実行委員会
・後  援/ アドビ システムズ 株式会社
・協  賛/ テクニカルコミュニケーター協会、社団法人日本印刷技術協会、
        PDF/X-PlusJ推進協議会
Webページ

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月12日

XSL-FOによるXMLのPDF化 (6) XMLのスタイル指定

XSL-FOによるXMLのPDF化 (3) 描画情報を規定するXMLタグおよびXSL-FOによるXMLのPDF化 (4) 特定アプリケーションのXMLタグで説明しましたような、”一般的でない”XMLのタグは、表示用の特にスタイルを指定しなくても表示することができます。但し、SVGやMathMLを表示アプリケーションは必要です。

これに対して、一般のXMLタグは、そのタグ自体、あるいはタグで囲った内容を画面に表示するためのスタイル情報がありません。

スタイル情報をもたないXMLファイルをブラウザで表示しようとしますと、次のように、「スタイル情報がないので、ドキュメント・ツリーを表示します」と言われてしまいます。

DocumentTree.PNG

このようなXMLファイルを、ページに整形して表示するための方法として、(1)標準技術に基づく方法と、(2)各ベンダの独自技術に基づく方法があります。

独自技術の方は、それこそ、いろいろなアイデアがあるだろうと思いますが、ここでは取り上げません。

比較的広く使われている標準技術には、CSSとXSL-FOの2種類があります。

1.CSS

現在、ノルウェーのOpera SoftwareでCSSの開発に携わっているHåkon Wium Lie氏が、1994年に提唱したものです。

1996年にはCSSレベル1がW3Cの標準として策定されました。現時点での仕様策定動向を、W3CにおけるCSS仕様策定の動向にまとめましたとおり、現在、レベル3の開発が行われていますが、レベル3の作業委員会は1999年に最初に任命されましたが、なかなか作業がはかどっておらず、まだ全てのドラフトが揃っていません。

従って、現在、標準仕様として使えるのはCSS2ということになります。

CSSの開発の進捗、および普及はなかなかはかばかしくないように思えます。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月11日

グーグル・クリック詐欺集団訴訟について その4

グーグル・クリック詐欺集団訴訟のオプト・アウト(原告団に参加しない)、または、反対意見の提出期限は、6月19日消印まで有効です。

ということで、今日は、オプト・アウトの手紙を作成して書留航空便で投函してきました。自らをオプト・アウトしておかないと、自動的に原告団の一員となってしまい、この訴訟の和解に制約されることになります。そうすると、このブログの意見も消さねばならないかもしれません。そこで、まずはオプト・アウトすることにしました。

手紙の内容は、簡単で、自分の住所氏名を書いて、本文に

Please exclude myself from this class.

と書けば良いと思います。

こうしておけば、少なくとも、将来グーグルに意見を言う権利は確保されるでしょう。

ところで、訴訟に関する説明文書の日本語訳が下記に出ています。

集団訴訟の係争と和解、和解審問および賠償請求手続きに関する通知

これを読んで、私の英語の理解が間違っていたかもしれないと気が付きました。

このところ
原文は
Class counsel intend to seek a maximum of 33 ⅓ percent of the settlement fund, or $30 million, in attorneys’ fees and expenses in this case.

公開されている日本語訳は
原告団弁護士は、和解の決済基金の最大33 1/3%、すなわち3 千万ドルまでの支払いを求めています。

原文のorを、ここではすなわちと訳すのが正しいようです。そうすると、弁護団への報酬は、最大で約33億円ということになります。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月10日

XSL-FOによるXMLのPDF化 (5) Office Open XML Format

ちょっと話が横道にそれてしまうかも知れませんが、ここで、Open XML Formatについて考えて見ます。

このブログでも何回か書きましたし、既にご承知の方も多いと思いますが、Microsoftは、次期Office 2007のファイル保存形式をデフォルトでXML形式にすることになっています。

例えば、Word2007の文書は、デフォルトでは、docxまたはdocmという拡張子が付きます。このファイルは内容はXML形式で、昨日説明しましたWordprocessingML(WordML)と同じようなものになります。

そうして、Microsoftは、Office 2007の文書形式をOpen XML Formatという名称をつけて、世界標準仕様にすることをもくろんでいます。

現在、EcmaでOpen XML Formatの標準化作業を進めており、中間段階の仕様書がここに公開されています。

Ecma Office Open XML File Formats Standard – Intermediate Draft 1.3 - 18th of May 2006 (5月18日付け中間的草稿1.3)

Microsoft Officeの文書形式がこういう形で公開されること自体は大変歓迎すべきことです。これによって、文書データの交換が非常にスムーズに進むようになるでしょうし、いままでよりも格段にユーザにとって便利になると思います。

では、このOpen XML Formatは世界標準になりえるものなのでしょうか?

私は、「Open XML Formatは世界標準の資格がないのではないだろうか」と考えます。

その理由は、このファイル形式は特定のアプリケーションを前提とするものだからです。つまり、Microsoft Officeがないと、Open XML Formatで記述された文書を正しく解釈して、正しくページを表示することができないのです。

もう少し詳しく言いますと、Open XML Formatは、Microsoft Officeというアプリケーション・ソフトウェアが存在して初めて意味があります。Open XML Formatを表示するソフトを開発しようとすると、Microsoft Officeの動き方を詳細に観察して、Microsoft Officeと同じように動くアプリケーション・ソフトウェアを開発しなければなりません。つまり、Open XML Formatで書かれた文書をPDFにするソフトを開発して欲しいという仕事を依頼されたとして、Open XML Formatを読むだけではその業務を行うことはできないだろうと思います。文字だけ取り出してPDFにして欲しいという程度ならできるかもしれませんが。

SVGやMathML (2006年06月08日 XSL-FOによるXMLのPDF化 (3) 描画情報を規定するXMLタグを参照)では、その仕様書を読むだけで、SVGやMathMLを表示するアプリケーションを作ることができます。

このように、このふたつの種類のXMLフォーマットには、根本的な違いがあるように思います。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月09日

XSL-FOによるXMLのPDF化 (4) 特定アプリケーションのXMLタグ

2.”一般的でない”第2のグループは、特定のアプリケーションで描画することを想定するXMLタグです。

この一番、典型的な例は、Microsoft Word 2003 のWordprocessingML(WordML)です。

例えば、Word2003で次のような文書を作成します。
WordML.png
(図A)

これを、XML形式で保存すると次のような内容のファイルができます。
WordML文書の例

WordMLのXMLタグの付け方は、Microsoftが仕様を公開しています。

Office 2003 XML リファレンス スキーマ

一般の書籍も出ています。

Simon St. Laurent 他 「Office 2003 XML, Integrating Office with the Rest of the World」 2004年6月刊 ISBN: 0-596-00538-5, 576 pages, US$39.95, O'Reilley

さて、上のWordMLの例には(文書本文)に次のような部分が出てきます。
<w:p>
<w:ppr>
<w:rpr>
<w:rfonts w:ascii="平成角ゴシック Std W7" w:fareast="平成角ゴシック Std W7" w:h-ansi="平成角ゴシック Std W7" w:hint="fareast"/>
<wx:font wx:val="平成角ゴシック Std W7"/>
<w:sz w:val="48"/>
<w:sz-cs w:val="48"/>
</w:rpr>
</w:ppr>
<w:r>
<w:rpr>
<w:rfonts w:ascii="平成角ゴシック Std W7" w:fareast="平成角ゴシック Std W7" w:h-ansi="平成角ゴシック Std W7" w:hint="fareast"/>
<wx:font wx:val="平成角ゴシック Std W7"/>
<w:sz w:val="48"/>
<w:sz-cs w:val="48"/>
</w:rpr>
<w:t>
Word2003のXML保存
</w:t>
</w:r>
</w:p>

これは、XMLの文書自体に、テキストのみでなく、文字の大きさやフォントの種類の情報が入っています。このWordMLを読んで上の図Aのように表示するためには、各タグをどのように表示するかという知識が前提として必要です。

昨日説明しました、SVG、MathML(表現用タグ)では、各タグをどのように表示するかが、W3Cの定める仕様として決まっています。

ところが、WordMLの各タグをどのように表示するかという仕様は(すくなくともパブリックには)存在しません。この仕様はMicrosoft Wordというソフトウェアの中に知識として内蔵されているのです。

このため、WordMLで書かれたXML文書を正しく表示したり、PDF化するには、Microsoft Word 2003 (Word ビューアを含む)、または、Microsoft Wordと表示機能において互換のアプリケーションが必要です。

例えば、当社のサーバべース・コンバータは、Microsoft Wordと互換のWordML表示・PDF化を実現することを狙って開発されているアプリケーションのひとつです。

ちなみに、WordMLをXSL-FOに変換してから表示したり、PDFにするソフトウェアは世界に幾つかあります。例えばこちらをご覧ください。しかし、XSL-FOではWordMLをあまりうまく表示することができません。それは、Microsoft Wordが内蔵している組版モデルと、XSL-FOの組版モデルはかなり異なったものだからです。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月08日

XSL-FOによるXMLのPDF化 (3) 描画情報を規定するXMLタグ

昨日説明しましたように、一般的なXMLのタグには、表示のスタイルが規定されませんので、表示するには、何らかのスタイルを与える必要があります。

さて、ここまで”一般的な”という言葉を定義しないで使ってしまいましたが、もう少し詳しく検討してみます。”一般的”というのは説明が難しいので、”一般的ではない”ものを取り上げてみます。

1.”一般的ではない”ものの最初のグループ —タグ自体に描画情報を含むもの。
ベクトル・グラフィックスを表現するためのSVG(Scalable Vector Graphics)、数式を表現するためのMathMLなど。

・SVGのタグは、それ自体がベクトル・グラフィックスへの描画を規定しています。

例.
 SVGのサンプル(W3Cのテストスイートより)

 上のSVGファイルを、XSL Formatter で表示すると次の図のようになります。
 SVG-test.PNG

・MathMLには、表現用タグ(プレゼンテーション・マークアップ)と内容タグ(コンテンツ・マークアップ)の2種類があります。表現用タグの場合は、そのタグ表現自体を見るとどのように表示するかが大体決まります。

例.
 MathMLのサンプル(MathTypeで作成したMathMLファイル)

 上のMathMLファイルを、XSL Formatter で表示すると次の図のようになります。

 MathML.PNG

SVGやMathMLを記述するためののタグは、タグ自体の仕様に画面にどう表示するかが決まっています。従って、外部から特にスタイル情報を与える必要がありません。

【参考資料】
Scalable Vector Graphics (SVG)
MathML
MathML2.0仕様に関する概要

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月07日

XSL-FOによるXMLのPDF化 (2) タグとスタイル

昨日のXHTMLでは次のようなタグが出てきました。

hr、h1、h2、ul、li、a

これらのタグ自身には、タグそのものまたはタグが囲むテキストなどの情報をどのように表示するかという定義はありません。

例えば、hrは、水平線(罫線)を引くという用途で使われるタグです。

ブラウザは、hrというタグを見つけると水平線を引こうとします。しかし、実際には、水平線を引くと言っても、次のような属性が決まらないと引くことができません。

・線を引く位置は?
 線の位置(前の行との間隔、次の行との間隔)
 水平線の開始位置、終了位置 (線の長さ)
・線の太さは?
・線の種類は?(実線、点線、破線、など)
・線の色は?
・線には、影を付けるかどうか?
・線の終端は丸めるか、丸めないか?

なにも指定していない場合、ブラウザはそれ自身の内部で既定値としてもっている情報を使って線を引きます。

さらに、これらの水平線の引き方を、次のようにhrタグに属性をつけて指定することもできます。

【例】
上から順に、線の太さ10px、長さ100px、左寄せ。線の太さ20px、長さ200px、中央。線の太さ30px、長さ200px、右寄せ。線の太さ30px、noshadeの線を引く。
<hr size="10px" width="100px" align="left" />
<hr size="20px" width="200px" align="center" />
<hr size="30px" width="300px" align="right" />
<hr size="30px" noshade="noshade"/>

これを、FireFoxで表示すると次の図のようになります。

hr-property.PNG

最近のXHTMLでは、これらの表示時用の属性をhrタグの属性として指定するのではなく、タグにstyle属性をつけてCSSとして与えるか、あるいはCSSスタイルシートを使って外部から指定するのが推奨されています。できるだけ、コンテンツを示すタグと表示属性を指定するスタイルとは独立にすることで、Webのメンテナンスをし易くしたり、見栄えを変更するのが簡単にできるようになるからです。

このように、XMLのタグには、一般にはどのように表示するかという情報は内在しておらず、表示の方法はスタイルとして別途与えるようになっています。ブラウザは、XHTMLのタグに指定されたスタイルを使ってコンテンツを画面上に整形することになります。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月06日

XSL-FOによるXMLのPDF化 (1) コンテンツのXML表現

XSL Formatter V4のリリースを機会に、XSL-FOによるXMLのPDF化について、少し説明してみたいと思います。

最初にコンテンツとスタイルについて考えて見ましょう。

最初に簡単な例で説明します。次の例はアンテナハウスのPDFの総合情報ページのソースです。このページはXHTMLで書いてあります。XHTMLというのは、XMLの文法に従って、Webページを記述するための言語です。XMLのタグセットの一例とお考えください。

---ここから---
<hr />
<h1>お知らせ</h1>
<ul>
<li>6月1日<a href="../XSL-FO/"><strong>『XSL Formatter V4.0』</strong></a>
出荷開始。<a href="http://www.antenna.co.jp/XSL-FO/V4/">詳細情報はこちらをご覧ください。</a></li>
</ul>
<ul>
<li><a href="http://www.antenna.co.jp/ptl/">PDF Tool V2</a> ご案内を開始しました。</li>
</ul>
<ul>
<li>2006年4月より<a href="http://www.pdfxplus.jp/">PDF/X-PlusJ推進協議会</a>に加盟しました。<a href="http://www.antenna.co.jp/OEM/PDF/index.htm#h2n2">アンテナハウスPDF生成ライブラリー</a>でPDF/Xができます。</li>
</ul>
<ul>
<li>2006年1月17日 PDFに文字をスラスラ書ける!<a href="http://www.antenna.co.jp/KPD/">書けまっせPDF</a> を出荷開始しました。</li>
</ul>
<ul>
<li>2005年12月15日<a href="http://www.antenna.co.jp/RTC/RtcPDF/">リッチテキストPDF V1.1</a>を出荷開始しました。</li>
</ul>
<hr />
<h1>デスクトップPDF製品</h1>
<h2>PDFファイルのデータを再利用</h2>
---ここまで---

このようにXHTMLでは、テキストやリンクなどの情報をXHTMLのタグ(<と>で囲まれた部分)で囲ってコンテンツを表現します。

これをブラウザ(FireFox)で表示すると次のようになります。
FireFox.PNG

XHTMLをご存知でない方のために簡単に、次の図でタグと表示画面とを対応付けてみました。FireFox1.PNG

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月05日

Office 2007のPDF保存問題

昨日の続きですが、Microsoft Office 2007のPDF保存機能は、Officeの市場支配力を乱用した、不公正な競争にあたるのでしょうか?

CNETの記事では、次のように書いています。
Adobe has threatened to file an antitrust complaint against Microsoft with the European Commission if the software giant includes the PDF "save as" feature in its Office 2007

すなわち、「アドビはソフトウェアの巨人(マイクロソフトのこと)が、Office2007にPDF保存機能をつけたならば、欧州委員会にマイクロソフトを独占禁止法違反で提訴すると脅した。」(マイクロソフトの独占禁止法違反問題を管理している弁護士Dave Heinerのコメント)

ECは、他のソフトウェア・メーカとの競争においてマイクロソフトがWindows OSの独占的市場支配力を乱用して、競争を阻害したと認定して、罰金を課したというニュースがあります。この問題はまだ決着がついていないはずです。

そうすると、なんとなく、マイクロソフトの弁護士の発言は、この問題についての牽制球を投げているという印象もあります。

ところで、今回のPDF保存問題は、本当に独占的地位の乱用にあたるのでしょうか。

まず、今回の問題はWindowsではありませんけれども、Officeの市場支配力も相当に大きいですから、Office 2007にPDF保存機能が標準で付けば、大抵の人はそれを使うでしょうから、競争がなくなり、消費者の選択範囲が狭くなることは確かです。

では、例えば、マイクロソフトがアドビからPDF作成ライブラリーを調達して、あるいは、Acrobatを調達して、Office2007に添付したらどうなるのでしょうか?

そうすれば、恐らくアドビがマイクロソフトを脅すようなことはなくなるでしょう。それともアドビは、マイクロソフトにはPDF作成ライブラリーを供給しないというのでしょうか?多分、そんなことはないと思います。

もし、アドビからPDF作成ライブラリーを調達すれば問題ないけれども、アドビ以外の会社から調達すれば問題だというなら、独占禁止法とはなんの関係もない議論になるのではないでしょうか。

私としては、どうも今回は、アドビの主張に疑問を感じます。法律の専門家に意見を聞いてみたいところです。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月04日

Microsoft Office 2007 のPDFサポートはどうなる?

週末に、思いがけないニュースが飛び込んできました。

Wall Street Journal (WSJ)が報じた、アドビとマイクロソフトの間で、Office 2007にPDF保存機能をつけることについての交渉が決裂したというニュースです。

ITmedai の記事 :MS、Office 2007の「PDFで保存」機能削除へ

オリジナルのWSJの記事は、読者でないと読めないようですが、米国ではCNETにもニュースが出ています。
Microsoft, Adobe squabble over PDF

要約するとアドビは、マイクロソフトに対して、Office 2007の”PDF保存”を有償にするか、削除することを要求していて、もし、いうことを聞かないと、ECに提訴すると脅しているというものです。

すでに、米国では様々なブログがこれを取り上げて、議論を始めています。

1.マイクロソフトのBrian Jonesのブログ
2006/6/2 Legal issues around PDF support

マイクロソフトのスタッフも知らなかったことのようです。

2.Joe Wilcox のMicrosoft Monitor Weblog
2006/06/02 There's More to This Story

このブログでは、最初の情報源がマイクロソフトの弁護士であるところに、マイクロソフトがアドビを悪者にしようという隠れた意図が感じられて、やや胡散臭い、と述べているように見えます。

古くは、DOSのMemoryExtender、NetscapeNavigatorなどサードパーティの製品と同等の機能を、WindowsOSにバンドルしたことで、市場が消滅して、競争相手のビジネスが破綻した例は枚挙に暇がないくらいです。

今度は、Officeへのバンドルが問題になっているわけですが、既に、Mac OS Xには、OSレベルでPDF作成機能がついていて、またOpenOffice.orgのような競争製品にもPDF作成機能がバンドルされているという状況の中でアドビの主張が正しいと看做されるものなのかどうか、なかなか判断が難しいところです。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月03日

企業の経営で一番大事なものはなにか?

先日、2006年05月31日グーグル・クリック詐欺集団訴訟和解案は、モラルを喪失した米国経済界の象徴で、弁護団もグーグルの経営陣もモラルにもとる行為をしている、と書いて、匿名氏から「ちょっと、企業のドメイン下に置くblogとしては感情的すぎるかと。」と批判を浴びてしまいました。

まあ、確かに少し過激発言ではありますが、感情的になっている訳ではありません。

個人的なことになりますが、私は1979年1月に中途採用で日経マグロウヒルという会社に入社しました。

日経マグロウヒル社(現在は、日経BP社になっています)は、当時、日本経済新聞社と米国のマグロウヒルの合弁会社として米国系の外資系企業でした。

入社が決まりまして、最初の上司に言われましたのが、「わが社はオネスト・カンパニーである。お客さんにウソを付かない経営を行っているんだ。」ということでした。その言葉は大変新鮮でいまでも印象に残っています。

それは、どういうことかと言いますと、日経マグロウヒル社は雑誌社ですから雑誌の広告掲載収入が、売上げの過半を占めている訳です。

広告というのは、経済効果を測定するのが、いまでも事情は変わっていませんが、昔から難しいものです。そうして、雑誌の発行部数というのは、いわゆる公称部数と言って、水増しした発行部数を広告主に提示するということが日常茶飯に行われています。

そういう風潮の中で、日経マグロウヒル社は、雑誌の部数についても正直に報告する、ということを会社の方針にしているのだ、と言われたのです。

また、1980年にニューヨークの米国マグロウヒルに行き、そこでマーケティングの研修を受けました。その時も、米国では雑誌の発行部数を公査するABC(Audit Bereau of Circulation)という機関があり、広告主は部数公査を受けている雑誌でなければ、広告を出さないんだ、ということをいろいろ教えてもらった記憶があります。

要するに、雑誌社には、自分達の雑誌の発行部数を水増しして、広告主に対して過大な部数を公称する会社が多い中で、日経マグロウヒルの経営陣は、そうではなく、自分達は正直にやるんだ、また、部数についても第三者機関の公査を受けて信頼できる部数を出すのだ、それで広告主の信頼を得るのだ、そういう企業姿勢が大事なのだということを言っていたわけです。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (2) | トラックバック

2006年06月02日

XSL Formatter V4.0をリリース

アンテナハウスは、6月1日より、「Antenna House XSL Formatter V4.0」を出荷開始いたします。

本製品は、標準レイアウト指定言語XSL-FOで記述されたコンテンツを、紙に印刷したり、PDFやSVGに出力するための組版用ソフトウェアです。

XSL-FOはW3Cが、2001年10月にバージョン1.0を勧告した世界標準の仕様です。当社は、1999年よりXSL-FO用の組版ソフトウェアの開発を進め、現在、V3.4を販売しております。

XSL-FOの組版ソフトウェアは、世界的に数10種類以上販売されていますが、XSL Formatter は、世界市場において高い評価を得ており、30ヶ国以上での販売実績を誇っています。

XSL-FOは、汎用で高度なレイアウト指定言語であることから、非常に幅広い用途に使われています。以下に一例を挙げます。

・数万ページに及ぶ巨大なPDF文書の生成が可能です。
・SVGなどの高精細な画像を用いた、工業部品の製造マニュアルの生成が可能です。
・50ヶ国語以上の言語をサポートしていることから、多言語を必要とするグローバル企業でのマニュアル作成が可能です。
・サーバ上で、XMLデータベースなどと連携したオンデマンドによるPDF生成と配信システムの構築が可能です。
・MathMLを利用した高度な数式処理が可能です。
・SVG出力を利用した携帯端末などに向けての配信が可能です。

W3Cの定めるXSL-FO仕様は、現在バージョン1.0が勧告されています。バージョン1.1は、策定作業が進行中でありますが、当初の予定より遅れており、未だ勧告に至っていません。当社は、バージョン1.1のドラフトの段階から積極的に実装作業を進めてまいりました。

XSL Formatter V4.0 は、勧告候補ではありますが、XSL-FOバージョン1.1の仕様を網羅した、世界初(現時点で唯一)のソフトウェアです。

詳細はこちらをどうぞ。
http://www.antenna.co.jp/XSL-FO/

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック

2006年06月01日

Adobe InDesign CS/CS2 に翻訳メモリツールを適用するためのフィルターの開発について

来る6月12日(月曜日)16:00-18:00より、第21回多言語組版研究会を開催します。

表題は、「Adobe InDesign CS/CS2 に翻訳メモリツールを適用するためのフィルターの開発について」で、株式会社イデア・インスティテュート 研究開発本部 本部長の天野 薫氏にお話をしていただきます。

概要は次の通りです。

最近、従来FrameMakerで行っていたようなマニュアルの制作にInDesignを使うことが多くなっています。このため、多言語のマニュアルを作成するために、InDesignのレイアウトを維持したまま翻訳メモリとの間でデータのやり取りが必要となっています。

こうしたことから、株式会社イデア・インスティテュートでは、SDL TradosとInDesign CS/CS2の間のデータ交換用のフィルターを自社開発しました。今回の研究会では、InDesignとSDL Tradosのフィルターについて次のような発表をしていただきます。

* InDesignの交換形式INXとは
* InDesignと翻訳メモリ間の幾つかのフィルターの現状
* 株式会社イデアで開発したフィルターの紹介
* 今後の課題、予定など

参加費用は、3150円(消費税込み)となります。
関心をお持ちの方は、ぜひ、お時間をお繰り合わせの上、ご参加くださいますようご案内します。

お申し込みはこちらからどうぞ。

次回研究会の開催案内

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック