最終更新日: 2008/04/28

XSL Formatter V4 PDF出力の仕様/機能

XSL Formatter V4では独自開発エンジンのPDF出力機能、もしくは「Adobe Acrobat Distiller」を使用することで、XSL Formatterの機能を十二分に発揮したPDFを作成することができます。

XSL Formatter V4からPDFを作成するメリット

PDF/Xを出力することができます。

XSL Formatter V4 は、PDF/Xを出力することができます。PDF/Xは、印刷用に ISO で規定されているデータ交換を重視した仕様です

PDF/Aを出力することができます。

XSL Formatter V4 は、PDF/Aを出力することができます。PDF/Aは、ISOで規定されている PDF1.4 仕様に基づく電子文書の長期保存を目的とした仕様です。

アクセシブルなPDFを出力することができます。

XSL Formatter V4 は、障害者のアクセシビリティ向上のために、タグ付きPDFを作成することが可能です。これは、2001年6月21日に施行された米国の法律 Section 508 を遵守するためにもなくてはならない機能です。

PDFを複数に分冊して出力することができます。

アンテナハウス独自拡張機能によって、ひとつのFOから、PDFを多分冊出力することができます。分冊されたPDFにしおりを付けることも可能です。

PDFファイルへの「しおり」の埋め込みができます。

PDFには「しおり」と呼ばれる機能があります。 「しおり」は、目次を階層化した概観を持っており、項目をクリックすることにより目的の位置へジャンプすることができます。たとえば、ページ一覧や索引から、目的の項目をクリックすることによって、目的ページへのジャンプが可能になります。
XSL Formatter PDF出力機能、もしくは「Adobe Acrobat Distiller」をお使い頂ければ、「しおり」を設定したPDFを作成することができます。しおりをグループ化することもできます。

PDFファイルへの「リンク」の埋め込みができます。

PDFのリンクは、PDF文書内の特定位置へのリンクと外部へのリンクが有ります。 リンクの設定を行うことによりAcrobat Readerでは、文書内での関連項目へのジャンプ、 あるいはホームページへリンクすることができます。
XSL Formatter PDF出力機能、もしくは「Adobe Acrobat Distiller」をお使い頂ければ、「リンク」を設定したPDFを作成することができます。
また、ベースURIの指定もできます。

PDF中に、他のPDFを埋め込むことができます。

<fo:external-graphic> を用いてPDF中に、他のPDFを埋め込むことができます。

  • 埋め込むページ番号の指定が可能です。1ページだけではなく、複数ページを連続的に埋め込むことも可能です。
  • content-width や content-height を指定して拡大縮小の指定が可能です。

なお、GUIなどではダミーの画像が表示されます。

PDFファイルの「文書情報」が設定できます。

元文書内の拡張プロパティにより、PDFの「タイトル」、「サブタイトル」、「作成者」、「キーワード」を設定することができます。

PDFファイルの「セキュリティ設定」が設定できます。

PDFファイルの「ユーザパスワード」、「マスタパスワード」の設定、および、各種アスセス権限の指定が可能です。
セキュリティ設定時の暗号化は 40-bit RC4(Acrobat3.x、4.x) を使用します。 PDF1.4以上のときは 128-bit RC4(Acrobat5.x) の高レベルの暗号を利用することができます。

電子署名を付けることができます。

別売の「PDF電子署名モジュール」がインストールされている環境で、組版時にPDFへ電子署名を付けることができます。(Windows版のみ)

「XSL Formatter PDF出力機能」によるPDFの出力

「XSL Formatter PDF出力機能」は、XSL Formatter V4 の組版結果を PDF(Portable Document Format)ファイルとして出力するための機能です。これを使用すれば、Adobe Acrobatが無くてもPDFを作成することができます。

「XSL Formatter V4 PDF出力機能」のメリット

  • アンテナハウス独自拡張機能によって、ひとつのFOから、PDFを多分冊出力することができます。分冊されたPDFにしおりを付けることも可能です。
  • XSL Formatter同様、サーバ上にてPDF化を行うことができます。 Acrobat のPDFWriter や Distiller は、サーバでの利用が制限されていますが、XSL Formatter PDF出力機能をつかえば接続数を気にすることなくサーバでPDFの作成ができます。
  • 標準出力へPDFを出力するといったストリーム処理が可能です。Webサーバに応用すれば、PDFストリームを直接呼び出しクライアントのブラウザに出力することもできます。

出力できるPDFのバージョン

XSL Formatter V4 では、PDF出力機能が標準装備されています。出力できるPDFのバージョンは以下のとおりです。

  • PDF1.3
    PDF1.3は、Adobe Acrobat(Reader) 4.1以上で閲覧することができます。
  • PDF1.4
    PDF1.4は、Adobe Acrobat(Reader) 5.0以上で閲覧することができます。
  • PDF1.5
    PDF1.5は、Adobe Acrobat(Reader) 6.0以上で閲覧することができます。
  • PDF1.6
    PDF1.6は、Adobe Acrobat(Reader) 7.0以上で閲覧することができます。
  • PDF1.7
    PDF1.7は、Adobe Acrobat(Reader)8.0以上で閲覧することができます。
  • PDF/X
    XSL Formatter V4 では、PDF/Xを出力することができます。
  • PDF/A
    XSL Formatter V4 では、PDF/Aを出力することができます。

PDF/X

PDF/Xは、ISO 15930 で規定されており、印刷用のデータ交換を目的としたPDFのサブセットです。 基本的には、印刷するためのすべての情報がPDFファイル内に含まれています。 XSL Formatter V4 は、以下のバージョンのPDF/Xを出力することができます。

  • PDF/X-1a:2001 (ISO 15930-1:2001)
    PDF1.3ベースの仕様です。
  • PDF/X-3:2002 (ISO 15930-3:2002)
    PDF1.3ベースの仕様です。
  • PDF/X-1a:2003 (ISO 15930-4:2003)
    PDF1.4ベースの仕様で、PDF/X-3:2003のサブセットです。
  • PDF/X-2:2003 (ISO 15930-5:2003)
    PDF1.4ベースの仕様で、PDF/X-3:2003のスーパーセットです。
  • PDF/X-3:2003 (ISO 15930-6:2003)
    PDF1.4ベースの仕様です。

PDF/Xの大きな特徴は以下が挙げられます。

PDF/X-1a PDF/X-2 PDF/X-3
フォントはすべて埋め込まれなければならない
出力インテントが指定されていなければならない
画像も含めて、CMYK、スポットカラーのみサポートされる × ×
透明な画像は避ける
パスワードの設定や、印刷制限、変更制限などを行なってはならない ×

PDF/A

PDF/A-1は、ISO 19005-1:2005 で規定されており、PDF1.4仕様に基づく電子文書の長期保存を目的とした仕様です。 XSL Formatter V4 は、以下のバージョンのPDF/Aを出力することができます。

  • PDF/A-1a:2005
    ISO 19005-1:2005 に完全準拠した仕様です。表示できることが保証され、さらに論理的な順序でテキストが抽出できることが保証されます。
  • PDF/A-1b:2005
    ISO 19005-1:2005 に一部準拠した仕様です。表示できることが保証されます。

PDF/Aの大きな特徴は以下が挙げられます。

PDF/A-1a:2005PDF/A-1b:2005
フォントはすべて埋め込まれなければならない
タグ付けされていなければならない ×
XMP準拠のメタデータを含んでいなければならない
暗号化してはならない
LZW圧縮してはならない
透明な画像を含んではならない
外部コンテンツを参照してはならない
JavaScriptを含んではならない

PDF/Aでは、PDF/Xと同様に、すべてのフォントは埋め込まれなければなりません。埋め込みが許可されていないフォントを使用している場合、PDF/Aを生成することはできません。

フォントの埋め込みなど、多くの情報はユーザの設定を無視して適切なものが採用されます。 PDF/A-1a では、強制的にタグ付けを行います。

XMPメタデータは、PDFの文書情報から自動的に生成します。 これら以外の情報を埋め込むことは、XSL Formatter V4 ではできません。

注意: XSL Formatter V4 では、PDF/AとPDF/Xを同時に指定することはできません。

タグ付きPDF

通常のPDFは、その内容に文書構造を持ちません。例えば、文章は行ごとに千切れています。段組で、左の段の第1行目に右の段の第1行目が続いていたりします。そのため、視覚障害者などが、何らかのリーダを用いてPDFを読もうとしても、正しい順序で文章を読むことは非常に困難です。 これは、PDFからのテキスト抽出などでも同様です。

タグ付きPDFは、PDF中に埋め込まれたタグによってPDF文書を構造化します。 文書が構造化されることによって、PDFは再利用可能な情報となります。 XSL Formatter V4 は、各FO要素に対して次のようなタグを埋め込みます。

FO要素 PDF要素 コメント
fo:root Document
fo:page-sequence Part
fo:flow Sect
fo:static-content Sect
fo:block P または Div inline-level の内容を持つ場合 P、それ以外は Div
fo:block-container Div または Sect absolute-position="fixed" または "absolute" の場合は Sect、それ以外は Div
fo:inline Span
fo:inline-container Span
fo:leader Span
fo:page-number Span
fo:page-number-citation Span
fo:page-number-citation-last Span
fo:scaling-value-citation Span
fo:index-page-citation-list Span
fo:bidi-override Span
fo:footnote Note
fo:footnote-body Sect
fo:float Sect
fo:external-graphic Figure
fo:instream-foreign-object Figure
fo:basic-link Link
fo:list-block L
fo:list-item LI
fo:list-item-label Lbl
fo:list-item-body Lbody
fo:table Table
fo:table-caption Caption
fo:table-header THead
fo:table-footer TFoot
fo:table-body TBody
fo:table-row TR
fo:table-cell TD

タグ付きPDFを作成するには、PDFオプション設定ダイアログでタグ付きPDFをチェックしたり、コマンドラインインタフェースで -taggedpdf を指定したりします。

Adobe Acrobat でのアクセシビリティの完全チェックでの各チェック項目(Acrobat 7.0 の場合)に対して、XSL Formatter V4 は、次のような処理をします。

  • 代替テキストの指定

    画像の代替テキストは、拡張プロパティ axf:alttext で指定できます。

    <fo:external-graphic src="..." axf:alttext="AltText"/>
    

    XSL Formatter V4 は、代替テキストの指定の指定がないときは、代替テキストをスペース(U+0020)1文字としています。これは、代替テキストが不要な画像であっても、代替テキストが指定されていないといって、アクセシビリティチェックでエラーが出るのを防ぐためです。

    画像に代替テキストが与えられているかどうかを確認するには、Acrobat で、「ナビゲーションタブ」の「タグ」を表示して、<Figure> 要素のプロパティを開いて「代替テキスト」の項目を見ます。

  • テキスト言語の指定

    FO に言語指定のプロパティ(language, country, xml:lang)を与えれば、それがタグ付きPDFの構造要素の言語になります。例えば、

    <fo:block language="ja">日本語です</fo:block>

    として出力したタグ付きPDFを、Acrobat でタグの表示をして、この段落の <P> 要素のプロパティを見ると言語「日本語」と表示されます。

  • 適切な文字エンコーディングの指定

    テキストはUnicodeで出力されているので問題ありません。

  • 文書構造に含まれるすべてのコンテンツ

    上のタグの一覧表を参照してください。

  • すべての説明付きフォームフィールド

    XSL Formatter V4 は、フォームフィールドに対応していません。

  • 箇条書きとテーブル構造

    FOのリスト fo:list-block が、タグ付きPDFの箇条書きの構造に、テーブル fo:table がテーブル構造に対応します。

  • タブの順序が論理構造の順序と一致する

    XSL Formatter V4 は、正しい順序でタグを出力します。

電子署名

XSL Formatter V4 Windows版では、「PDF電子署名モジュール」がインストールされている環境で、組版時にPDFへ電子署名を付けることができます。

電子署名を付けるためには、「PDF電子署名モジュール」をご購入していただく必要があります。 詳しくは、弊社ウェブサイトをご覧ください。

XSL Formatter V4 で電子署名を付けるためには、FO中に署名領域を作っておく必要があります。 署名領域は、次のように <axf:form-field> 拡張要素を利用して作成します。

<axf:form-field
     field-type="signature"
     field-apply-signature="true"
     width="40pt"
     height="50pt"

field-type="signature" によって、フィールドの属性を署名領域として指定します。ここでは、署名の外観などを指定することはできません。領域の大きさなどが指定できるだけです。 実際の署名は、PDFを生成するときに行います。 このとき、署名領域は署名済みの署名フィールドとしてPDF中に生成されます。 署名領域は、いくつでも作っておけますが、XSL Formatter V4 がPDFを生成するときに付けられる署名は、その中のひとつだけです。実際に署名したい領域には、field-apply-signature="true" を指定しておかなければなりません。 field-apply-signature="true" が複数に指定されているときは、最初の指定領域に署名されます。 署名されない署名領域に対しては、未署名の署名フィールドが生成されます。 そのような署名フィールドには、「PDF電子署名モジュール」によって後から署名を付けることができます。

また、実際に署名をするために、署名の外観などを定義した署名情報と、使用する証明書の両方を指定しなければなりません。これらの情報は、「PDF電子署名モジュール」によって定義し保存されます。 GUIでは、PDFオプション設定ダイアログセキュリティページで指定します。コマンドラインでは、-pdss オプションなどで指定します。 他のインターフェイスでの設定方法も、それぞれを参照してください。

GUIPDF出力を行うとき、「電子署名をする」をチェックしないで作成されたPDFでは、署名フィールドは生成されません。 同様に、「PDF電子署名モジュール」がインストールされていない環境では、field-type="signature" によって、フィールドの属性が署名領域として指定されていても、PDFへの出力で署名フィールドは生成されません。 「PDF電子署名モジュール」は、PDF中の署名フィールドに署名を付加します。 XSL Formatter V4 で署名せずに、あとから署名したい場合でも、組版時には「電子署名をする」が指定されていなければならないことに注意してください。 他のインターフェイスでも同様です。

以下の制約があります。

  • PDF/X、PDF/A に電子署名を付けることはできません。
  • 分冊出力を行うときは、電子署名を付けることはできません。

電子署名についての詳細は、「PDF電子署名モジュール」のマニュアルをご覧ください。

注意: PDF電子署名モジュール」は、Windows版のみでご利用いただけます。

PDFの埋め込み

PDF中に、他のPDFを埋め込むことができます。

これは、<fo:external-graphic> を用いて行います。

<fo:external-graphic src="embedded.pdf#page=3"/>

このように、埋め込みたいページ番号をURI中に指定します。ページ番号の指定がない場合は1ページ目が埋め込まれます。サイズ指定がない場合は、埋め込まれるPDFのページサイズで埋め込みますが、拡大縮小したいときは、次のように content-widthcontent-height を指定すればよいでしょう。

<fo:external-graphic src="embedded.pdf#page=3" content-width="50%"/>

dataスキームRFC2397)を利用してPDFを指定するとき、ページ番号は次のようにメディアタイプのパラメータとして指定します。

<fo:external-graphic src="data:application/pdf;page=3;base64,JVBERi0xLjQKJeLjz9M..."/>

また、PDFを背景として埋め込むことも可能です。これは、帳票雛形を背景として、その上に内容データだけを組版するようなときに利用できます。 背景としてPDFを指定するときは、次のように background-repeat="no-repeat" を指定してください。background-repeat="repeat" を指定することはできません。

<fo:simple-page-master axf:background-image="background.pdf"
                       background-repeat="no-repeat" ...>

PDFを背景に埋め込むとき、ある1ページだけではなく、複数ページを連続的に埋め込むことが可能です。次のように axf:background-repeat="paginate" を指定します。

<fo:simple-page-master axf:background-image="background.pdf#page=3-5"
                       axf:background-repeat="paginate" ...>

この例では、3ページ目から5ページ目が背景として埋め込まれます。 埋め込みPDFのページ数より fo:flow の内容から生成されるページ数が少ない場合は、埋め込みPDFのページ数すべてが出力されるようにページが追加されます。 したがって、fo:flow の内容は空でも構いません。fo:flow の内容から生成されるページ数の方が多い場合は、埋め込みPDFのページ数を超えたページの背景画像はなしとなります。 ページの指定は、#page=<FirstPage>-<LastPage> の形式で行います。axf:background-repeat="paginate" が指定されていないときは、-<LastPage> 部分は無視されます。

background.pdf#page=3-5
3ページ~5ページ
background.pdf#page=3-
3ページ~最後のページ
background.pdf#page=3
3ページのみ
background.pdf
全ページ

fo:page-sequence と fo:simple-page-master の両方に axf:background-image や axf:background-repeat が指定されている場合は、fo:simple-page-master が優先します。 fo:simple-page-master への指定では、fo:region-body/before/after/start/end への埋め込みも可能となります。

埋め込まれるPDFのバージョンは、出力するPDFのバージョン以下でなければなりません。 PDF/Xなどとの許される組み合わせは、次の表を参照してください。

埋め込まれるPDF PDF PDF/X
1.3 1.4 1.5 1.6 1.7 1a:2001 3:2002 1a:2003 2:2003 3:2003
出力するPDF PDF1.3
PDF1.4
PDF1.5
PDF1.6
PDF1.7
PDF/X-1a:2001
PDF/X-3:2002
PDF/X-1a:2003
PDF/X-2:2003
PDF/X-3:2003

出力するPDFがタグ付きの場合、タグ付きPDFを埋め込むことはできません。

フォント出力

Adobe Type1 フォント(Adobe標準の欧文基本14フォントを含む)、TrueTypeフォント(TrueTypeアウトライン形式のOpenTypeフォントを含む)、OpenTypeフォント(PostScriptアウトライン)、Macintosh TrueType フォントデータフォークスーツケース をサポートします。その他の形式のフォントはサポートされません。

XSL Formatter V4 では使用するフォントが実行環境にインストールされている必要があります。Windows版でのフォントのインストール方法については、Windowsのヘルプ、あるいはフォントに添付される説明書などを参照してください。 Windows版で、フォントフォルダ以外に置いたフォントをPDFへ出力することができます。ただし、そのフォントをGUIで表示することはできません。

Adobe Type1 フォント内の次の14フォントは、PDFでは欧文基本14フォントと呼ばれます。

  • Courier
  • Courier-Bold
  • Courier-Oblique
  • Courier-BoldOblique
  • Helvetica
  • Helvetica-Bold
  • Helvetica-Oblique
  • Helvetica-BoldOblique
  • Times-Roman
  • Times-Bold
  • Times-Italic
  • Times-BoldItalic
  • Symbol
  • ZapfDingbats

これらの欧文基本14フォント以外の Adobe Type1 フォントを使用する場合でも、AFM(Adobe Font Metrics)ファイルを用意する必要はありません。Adobe Type1 フォントのグリフ名称と 組版データの文字コード(Unicode)との対応付けはAGL(Adobe Glyph List)の定義に沿って行います。AGL に定義されていない名称を持つグリフは出力されません。

文字セット・エンコーディング

サポートされる文字セットは以下のものです。

  • Adobe 標準ラテン文字セット
  • Symbol 文字セット
  • ZapfDingbats 文字セット
  • 日本語文字セット(Adobe-Japan1-Supplement2)
  • 簡体中国語文字セット(Adobe-GB1-Supplement2)
  • 繁體中国語文字セット(Adobe-CNS1-Supplement0)
  • 韓国語文字セット(Adobe-Korea1-Supplement1)

XSL Formatter V4 の内部処理はすべて Unicode で行われます。中国語、日本語、韓国語(CJK) の文字の場合、XSL Formatter V4 が出力するPDFは、この Unicode を、それぞれ以下のCMapを使用して、CJK各文字セット内のグリフへ割り当てています。

  • 日本語 : UniJIS-UCS2-H(V)、UniJIS-UCS2-HW-H(V)
  • 簡体中国語 : UniGB-UCS2-H(V)
  • 繁體中国語文字セット(Adobe-CNS1-Supplement0)
  • 韓国語文字セット(Adobe-Korea1-Supplement1)

上記の文字セットに含まれない文字が FO内に含まれていた場合、フォントファイルからグリフを取得して、PDFに埋め込みを行います。この処理は TrueTypeフォントに対してのみ行われます。

フォント埋め込み

PDFにフォントを埋め込むことで、フォントが存在しない環境でも表示可能なPDFファイルを作成することができます。

TrueTypeフォントの場合、デフォルトの設定では、フォントが対応する文字セットに定義のない文字のみ、フォントの埋め込みを行います。フォントベンダによって埋め込みが禁止されているフォントであった場合、エラーを返して終了します。これをエラーとせず、空白文字に置き換えてPDF出力を行うこともできます。
なお、埋め込みを行うフォントとして指定された場合、指定されたフォント内の文字は文字セットに含まれている文字か否かによらず、埋め込まれます。

Adobe Type1フォントの場合、デフォルトの設定では、フォント固有のエンコーディング(font specific encoding)を持つフォントのみ、埋め込みを行います。
TrueTypeの場合と同様に、埋め込みを行うフォントとして指定されたフォントは、標準のエンコーディング(standard encoding)を持つフォントも埋め込まれます。

埋め込みが許可されていないフォントをPDFに埋め込むことはできません。

指定によらず、常にフォントの埋め込みを行うことがあります。以下の場合は、常にそのフォントを埋め込みます。もし、そのフォントが埋め込み禁止の場合、そのフォントを利用することはできません。

  • 次のスクリプトのフォント
    • Arab : アラビア文字
    • Hebr : ヘブライ文字
    • Thai : タイ文字
    • Deva : デヴァナガリ文字
  • リガチャされたラテン文字
  • 変更された日本語の漢字の字体
  • 16bitで表現できない Unicode の文字

イメージ出力

サポートしているグラフィックイメージについては、「XSL Formatter V4 グラフィックス・サポート」を参照してください。

ベクタイメージ

次のベクタイメージは、PDF命令に置き換えられてベクタイメージのまま直接PDFに出力されます。そのため、画質の劣化はありません。

  • SVG
  • MathML
  • EMF
  • WMF
  • Excelチャート
  • CGM

これら以外のベクタイメージは、ラスタイメージに変換されてPDFに出力されます。このときに生成するラスタイメージの解像度を変換結果のPDF内でのdpi値で指定することができます。
ただし、ラスタイメージへの変換は Windows版のみ対応しています。Windows版以外では直接 PDFに出力できないベクタイメージは無視されます。

注意: MathMLは、XSL Formatter MathML オプションがインストールされていない場合はラスタイメージに変換されます。この場合、MathML Pluginが必要になります。
Excelチャートは、XSL Formatter チャートオプションが組み込まれていない場合は利用できません。
CGMは、XSL Formatter CGM オプションが組み込まれていない場合は、ラスターイメージに変換されます。この場合、CGMを表示するためのIsoViewなどのPluginが必要になります。

ラスタイメージ

一般に、ラスタイメージデータは何らかの方法で圧縮されています。もし、その圧縮(非圧縮)方法がPDFファイルに適合するならば、そのラスタイメージはそのままPDFに埋め込まれます。そうでない場合は、まず、そのラスタイメージを非圧縮化して、PDFと互換性のあるビットマップ形式に変換します (非圧縮化できないラスタイメージは扱うことができません)。そして、そのビットマップ形式を JPEGまたはZLIB圧縮(BitMap形式のFlate圧縮)してからPDFに埋め込みます。

PDFに直接埋め込むことのできるラスタイメージは以下のとおりです。

  • JPEG
  • PNG
  • GIF
  • TIFF
  • JPEG2000

ただし、次のような制約があります。

  • Progressive JPEG、Interlaced GIF は通常の JPEG、GIF に変換されます。
  • PNG、TIFFで、16ビットカラーは8ビットカラーに切り詰められます。
  • PNG、TIFFで、αチャネルが付いている場合は分離されます。
  • TIFFでは対応していない形式があります。
  • JPEG2000は、PDF1.5以上のときのみPDFへ埋め込まれます。それ以外ではJPEGなどに変換されてから埋め込まれます。

ダウンサンプリング

XSL Formatter では、PDFに埋め込まれるラスタ画像のダウンサンプリングを行うことができます。


Copyright © 1996-2010 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.