PDF出力

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

  • PDF1.3
    PDF1.3は、Adobe Acrobat(Reader)4.0以降で閲覧することができます。
  • 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以降で閲覧することができます。
  • PDF2.0
    AH Formatter V7.2 では、ISO 32000-2:2017 に準拠した PDF2.0 を出力することができます。
  • PDF/X
    AH Formatter V7.2 では、PDF/X を出力することができます。
  • PDF/A
    AH Formatter V7.2 では、PDF/A を出力することができます。
  • PDF/UA
    AH Formatter V7.2 では、PDF/UA を出力することができます。

AH Formatter V7.2 が出力するPDFには、次のような特徴があります。

  • 元文書内の拡張プロパティにより、PDFのしおり(bookmark)、リンクを作成することができます。  しおりとリンク
  • ひとつのFOから、PDFを多分冊出力することができます。  多分冊PDF出力
  • 元文書内の拡張プロパティにより、PDFの「タイトル」、「サブタイトル」、「作成者」、「キーワード」などのメタ情報や、文書を開いたときの表示方法やページレイアウトを設定することができます。  文書情報
  • セキュリティ設定時の暗号化は 40-bit RC4、128-bit RC4、128-bit AES、256-bit AES が利用できます。 PDFのバージョンによって利用できる暗号化が違います。   PDF出力の設定PDFオプション設定ダイアログ
  • タグ付きPDFを出力することができます。
  • リニアライズドPDFを出力することができます。

PDF出力に関する設定内容の詳細については、PDF出力の設定を参照してください。

PDF/X

PDF/Xは、ISO 15930 で規定されており、印刷用のデータ交換を目的としたPDFのサブセットです。 基本的には、印刷するためのすべての情報がPDFファイル内に含まれています。 AH Formatter V7.2 は、以下のバージョンの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-4:2010, PDF/X-4p:2010 (ISO 15930-7:2010)
    PDF1.6ベースの仕様です。

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

PDF/X-1aPDF/X-2PDF/X-3PDF/X-4PDF/X-4p
フォントはすべて埋め込まれなければならない
出力インテントが指定されていなければならない
出力インテントとして指定されたICCプロファイルを埋め込まなければならない× × × ×
CMYK、スポットカラーをサポートする
グレイスケールをサポートする
RGBをサポートする×
透明をサポートする× × ×
パスワードの設定や、印刷制限、変更制限などを行ってよい× × × × ×
リンクや注釈などを含めてよい× × × × ×
しおり等のアクションを含む要素を含めてよい× × × × ×

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

フォントの埋め込みなど、多くの情報はユーザの設定を無視して適切なものが採用されます。 例えば、出力するPDFのバージョンがPDF/Xに設定されているとき、PDFオプション設定ダイアログフォント埋め込み は淡色表示されます。

PDF/X として不適合な画像が指定されたときは、PDF出力の設定error-on-pdfx-fault によって処理が異なります。error-on-pdfx-fault を参照してください。

PDF/X では、出力インテントが指定されていなければなりません。 出力インテントは、ICCプロファイルを直接指定する方法と、出力条件識別子を指定する方法があります。

出力インテントを、ICCプロファイルによって指定する場合は、<fo:color-profile> の src プロパティにICCプロファイルのURLを指定します。 color-profile-name プロパティは、省略するか、"#CMYK""#GrayScale" または "#RGB" を指定します。省略したときは "#CMYK" が指定されているとみなされます。例えば、次のように指定します。

<fo:declarations>
 <fo:color-profile
  src="url('file:///C:/​WINDOWS/​system32/​spool/​drivers/​color/​JapanColor2001Coated.icc#OutputConditionIdentifier=JC200103')"
  color-profile-name="#CMYK"
 />
</fo:declarations>

HTMLでは、<meta name="color-profile"> を利用して次のように指定できます。

<meta
 name="color-profile"
 content="src='file:///C:/​WINDOWS/​system32/​spool/​drivers/​color/​JapanColor2001Coated.icc#OutputConditionIdentifier=JC200103' name='#CMYK'"
/>

PDF/X では、指定できる出力インテントはひとつだけです。複数の出力インテントが指定された場合は、どれが採用されるかは不定です。

PDF/X では、埋め込むことのできる出力インテントのICCプロファイルは、そのデバイスクラスが "prtr" であるものだけです。"prtr" 以外のICCプロファイルは利用できません。"prtr" 以外のICCプロファイルを指定すると、次のようなエラーが報告されるでしょう。

6908 (420C): PDF output warning. Unsupported ICC Profile Device Class : mntr: Xxxxxxxx.icc

PDF/X-1~3では、<fo:color-profile> の src プロパティで、出力条件識別子を指定することもできます。 指定は、URIのフラグメントの形式で行います。

<fo:declarations>
 <fo:color-profile
  src="#OutputConditionIdentifier=CGATS%20TR%20001&amp;RegistryName=http://www.color.org"
 />
</fo:declarations>

先頭文字は # でなければなりません。その後、パラメータを &amp; で区切って羅列します。 各パラメータは、名前=値 の形式です。 各パラメータの名前は、(PDF/X の OutputIntent辞書の項目に対応し)以下のとおりです。

  • OutputConditionIdentifier
    出力条件識別子を指定します。 ICCプロファイルのURLを指定した場合のデフォルトは Custom です。
  • OutputCondition
    出力条件を指定します。(省略可)
  • RegistryName
    出力条件識別子の登録機関のURIを指定します。 OutputConditionIdentifier を指定してこれを省略した場合のデフォルトは http://www.color.org です。
  • Info
    追加情報を指定します。(省略可)

ICCプロファイルに続けてこのフラグメントパラメータの形式を記述することで、プロファイルの情報を与えることもできます。axf:base-uri によるベースURIを指定することもできます。

<fo:declarations axf:base-uri="url('file:///C:/WINDOWS/system32/spool/drivers/color/')">
 <fo:color-profile src="url('Photoshop5DefaultCMYK.icc#Info=Photoshop5')"/>
</fo:declarations>

出力インテントを出力条件識別子で指定した場合は、その出力インテントはPDF/Xに埋め込みません。ICCプロファイルで指定した場合は、PDF/XにそのICCプロファイルを埋め込みます。

標準出力インテントは、次で定義されている標準的なICCプロファイルです。

 CMYK Characterization Data

出力条件識別子にこれらのいずれかを指定することができます。 AH Formatter V7.2 で指定できる標準出力インテントは以下のとおりで、いずれもCMYK用です。

  • CGATS TR 001
  • CGATS TR 002
  • CGATS TR 003
  • CGATS TR 005
  • CGATS TR 006
  • CGATS21-2-CRPC1
  • CGATS21-2-CRPC2
  • CGATS21-2-CRPC3
  • CGATS21-2-CRPC4
  • CGATS21-2-CRPC5
  • CGATS21-2-CRPC6
  • CGATS21-2-CRPC7
  • FOGRA1
  • FOGRA2
  • FOGRA3
  • FOGRA4
  • FOGRA5
  • FOGRA6
  • FOGRA7
  • FOGRA8
  • FOGRA9
  • FOGRA11
  • FOGRA12
  • FOGRA13
  • FOGRA14
  • FOGRA15
  • FOGRA16
  • FOGRA17
  • FOGRA18
  • FOGRA19
  • FOGRA20
  • FOGRA21
  • FOGRA22
  • FOGRA23
  • FOGRA24
  • FOGRA25
  • FOGRA26
  • FOGRA27
  • FOGRA28
  • FOGRA29
  • FOGRA30
  • FOGRA31
  • FOGRA32
  • FOGRA33
  • FOGRA34
  • FOGRA35
  • FOGRA36
  • FOGRA37
  • FOGRA38
  • FOGRA39
  • FOGRA40
  • FOGRA41
  • FOGRA42
  • FOGRA43
  • FOGRA44
  • FOGRA45
  • FOGRA46
  • FOGRA47
  • FOGRA48
  • FOGRA49
  • FOGRA50
  • FOGRA51
  • FOGRA52
  • FOGRA53
  • FOGRA54
  • IFRA22
  • IFRA26
  • IFRA28
  • IFRA30
  • JCS2011
  • JC200103
  • JC200104
  • JCN2002
  • JCW2003
  • EUROSB104
  • EUROSB204

URLで指定されたICCプロファイルは、その内容からそれが標準出力インテントかどうかが判断されます。標準出力インテントがURLで指定された場合、PDF/X-1~3 では ICCプロファイルの埋め込みは必須ではないため、埋め込むか埋め込まないかは、PDF出力の設定embed-std-output-intent により選択が可能です。 ただし、PDF/X-4ではこの指定は無視され、常に埋め込みます。 PDF/X-1~3 では、出力条件識別子によって指定された場合は、embed-std-output-intent の設定にかかわらず、埋め込まれません。

FOに出力インテントの指定がない場合は、PDF出力の設定default-output-intent が採用されます。

ICCプロファイルは、Adobeから標準的なものをダウンロードすることができます。

 Adobe ICC profiles

ここからダウンロードできるプロファイルは、Adobe Acrobat などにバンドルされ、すでにあなたのシステムにインストールされているかも知れません。 Windows であれば、%windir%\system32\spool\drivers\color ディレクトリなどを探してみてください。

PDF/A

PDF/Aは ISO 19005 で規定されており、電子文書の長期保存を目的とした仕様です。 AH Formatter V7.2 は、以下のバージョンのPDF/Aを出力することができます。

  • PDF/A-1a:2005
    ISO 19005-1:2005 に完全準拠したPDF1.4ベースの仕様です。表示できることが保証され、さらに論理的な順序でテキストが抽出できることが保証されます。
  • PDF/A-1b:2005
    ISO 19005-1:2005 に一部準拠したPDF1.4ベースの仕様です。表示できることが保証されます。
  • PDF/A-2a:2011
    ISO 19005-2:2011 に完全準拠した ISO 32000-1ベースの仕様です。表示できることが保証され、さらに論理的な順序でテキストが抽出できることが保証されます。
  • PDF/A-2b:2011
    ISO 19005-2:2011 に一部準拠した ISO 32000-1ベースの仕様です。表示できることが保証されます。
  • PDF/A-2u:2011
    ISO 19005-2:2011 に一部準拠した ISO 32000-1ベースの仕様です。表示できることが保証され、さらにPDF内のテキストのUnicode値が取得できることが保証されます。
  • PDF/A-3a:2012
    ISO 19005-3:2012 に完全準拠した ISO 32000-1ベースの仕様です。表示できることが保証され、さらに論理的な順序でテキストが抽出できることが保証されます。
  • PDF/A-3b:2012
    ISO 19005-3:2012 に一部準拠した ISO 32000-1ベースの仕様です。表示できることが保証されます。
  • PDF/A-3u:2012
    ISO 19005-3:2012 に一部準拠した ISO 32000-1ベースの仕様です。表示できることが保証され、さらにPDF内のテキストのUnicode値が取得できることが保証されます。

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

PDF/A-1aPDF/A-1bPDF/A-2aPDF/A-2bPDF/A-2uPDF/A-3aPDF/A-3bPDF/A-3u
フォントはすべて埋め込まれなければならない
ICCプロファイルを埋め込まなければならない
タグ付けされていなければならない × × × × ×
XMP準拠のメタデータを含んでいなければならない
暗号化してよい × × × × × × × ×
LZW圧縮してよい × × × × × × × ×
透明な画像を含めてよい× ×
外部コンテンツを参照してよい × × × × × × × ×
JavaScriptを含めてよい × × × × × × × ×
テキストにUnicodeが使用されなければならない × × ×
PDF/A を注釈として添付できる × ×
PDF/A 以外の任意のファイルを注釈として添付できる × × × × ×

PDF/Aでは、PDF/Xと同様に、すべてのフォントは埋め込まれなければなりません。埋め込みが許可されていないフォントを使用している場合、PDF/Aを生成することはできません。また、PDF/Aでは、ICCプロファイルも埋め込まなければなりません。したがって、出力インテントの指定はICCプロファイルのURL指定のみが有効となります。

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

XMPメタデータは、PDFの文書情報から自動的に生成されますが、<axf:document-info name="xmp"> で独自のXMPを指定することもできます。

ファイルを注釈として添付するには axf:annotation-file-attachment を使って行います。 上の表では[]ですが、PDF/A にファイルを添付するときは以下の制約があります。PDF/A 以外ではこのような制約はありません。

  • PDF/A-1 には、どんなファイルも注釈として添付することはできません。
  • PDF/A-2 には、PDF/A-1 または PDF/A-2 のファイルだけを注釈として添付することができます。そのとき、添付するPDFのバージョンは、出力するPDFのバージョン以下でなければなりません。
  • PDF/A-3 には、PDF/A を含め任意のファイルを注釈として添付することができます。

フォームは、PDFにフォントを埋め込めないため、PDF/Aを生成することはできません。ただし、以下のフォームにおいてのみ、フォームがあってもPDF/Aを生成することができます。

PDF/UAAH Formatter V7 サンプルFO集表の本文セルと表の見出しセルの関連付け

PDF/UAは、ISO 14289-1 で規定されており、ISO 32000-1仕様に基づいた PDF のアクセシビリティ向上を目的とした仕様です。AH Formatter V7.2 は、以下のバージョンのPDF/UAを出力することができます。

  • PDF/UA-1:2014 (ISO 14289-1:2014)

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

  • コンテンツは論理的な読み順にタグ付けされなければならない。
  • 意味のある画像や注釈、数式には代替テキストを含めなければならない。 代替テキストの指定 を参照してください。
  • アクセシビリティを禁止しない暗号化を行わなければならない。
  • しおりを含めることが推奨される。
  • 注釈やフォームやリンク、マルチメディアを含めてもよい。
  • 文書の言語を指定しなければならない。
  • フォントはすべて埋め込まれなければならない。

タグ付きPDF

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

タグ付きPDFは、PDF中に埋め込まれたタグによってPDF文書を構造化します。 文書が構造化されることによって、PDFは再利用可能な情報となります。このため、タグ付きPDFはアクセシブルなPDF作成に欠くことができません。 PDFのタグ付きPDFの仕様は次を参考にしてください。

  • ISO 32000-1:2008 14.8 Tagged PDF
  • ISO 32000-2:2017 14.8 Tagged PDF

タグ付きPDFは、PDFアクセシビリティの重要な要素です。アクセシブルなPDFのためには、タグ付きPDFに加えていくつかの要件があり、全体としては、PDF/UAで規定されています。

AH Formatter V7.2 は、各FO要素に対して次のようなタグ(構造要素)を埋め込みます。なお、region-body 以外の領域に割り当てられたFO要素は Artifact としてタグ付けされます。

FO要素PDF要素コメント
fo:rootDocument
fo:page-sequencePart
fo:flowSect または DivPDF2.0以降では Div
fo:static-contentSect または AsidePDF2.0以降では Aside
fo:blockP または Divinline-level の内容を持つ場合 P、それ以外は Div
fo:block-containerDiv または Sect・Asideabsolute-position="fixed" または "absolute" の場合は Sect、それ以外は Div。PDF2.0以降では Sect ではなく Aside となります。
fo:inlineSpan または Reference<fo:footnote>の子の場合は Reference、それ以外は Span。PDF2.0以降では <fo:footnote> の子も Span となります。
fo:inline-containerSpan
fo:leaderSpan
fo:page-numberSpan
fo:page-number-citationSpan
fo:page-number-citation-lastSpan
fo:scaling-value-citationSpan
fo:index-page-citation-listSpan
fo:bidi-overrideSpan
fo:footnote footnote-reference-areaは ページ上のすべての footnote を含んでいる Sect を埋め込む。PDF2.0以降では Aside を埋め込む。
fo:footnote-bodyNote または FENote
fo:floatSect または Aside
fo:external-graphicFigure または FormulaMathML のとき Formula、それ以外は Figure
fo:instream-foreign-objectFigure または FormulaMathML のとき Formula、それ以外は Figure
fo:basic-linkLink
fo:list-blockL
fo:list-itemLI
fo:list-item-labelLbl
fo:list-item-bodyLBody
fo:tableTable
fo:table-captionCaption
fo:table-headerTHead
fo:table-footerTFoot
fo:table-bodyTBody
fo:table-rowTR
fo:table-cellTH または TD <fo:table-header> 中のとき TH、それ以外は TD
axf:form-fieldForm
axf:rubyRuby
axf:ruby-baseRB
axf:ruby-textRT

AH Formatter V7.2 は、各HTML要素に対して次のようなタグ(構造要素)を埋め込みます。

HTML要素PDF要素コメント
htmlDocument
divDiv
h1H1
h2H2
h3H3
h4H4
h5H5
h6H6
pP
ulL
olL
liLI
li::markerLblリストのラベル
dlL
dtLbl
ddLBody
blockquoteBlockQuote または PPDF2.0以降では P
captionCaption
tableTable
trTR
tdTD
thTH
theadTHead
tfootTFoot
tbodyTBody
rubyRuby
rbRB
rtRT
spanSpan
imgFigure
a[href]Link
sectionSect または PartPDF2.0以降では Part
articleArt または ASidePDF2.0以降では ASide
codeCode または PPDF2.0以降では P
その他のブロック要素Div
その他のインライン要素Span

構造要素でないタグがいくらか存在します。

PDF要素コメント
Artifactページの本文から区別される内容に付けられます。 改ページのたびに繰り返し出力される <fo:static-content> や、<fo:table-header>(tableの最初のもの以外)、<fo:table-footer>(tableの最後のもの以外)が、Artifact となります。 axf:pdftag="Artifact" と指定したときも同様です。
ReversedCharsアラビア語など、右から左に書くテキストに付けられます。
Span表示用に加工した文字列の加工前の文字列を ActualText として設定するために使用されます。これは、構造要素の Span とは別です。 加工前の文字列とは、例えば、ハイフネーションされる前の文字列や、タイ語などで複雑なグリフ置換が起こる前の文字列です。

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

拡張プロパティの axf:pdftag で、PDF に出力するタグ名に任意のタグ名が指定できます。

アラビア文字やデヴァナガリ文字などの複雑なスクリプトでは、元文字列は複雑にグリフに変換されてPDFへ出力されます。そのグリフは元文字列のUnicodeとは一対一対応しないので、PDFから正しい元文字列をコピーすることはできません。タグ付きPDFにすれば、元文字列をコピーすることができます。

AH Formatter V7.2 では、Role Map を指定することができます。Role Map とはタグの要素名のエイリアスを設定する機能です。AH Formatter V7.2 では、オプション設定ファイルtag-role-map を設定することで標準のタグに準拠しながらも可読性の高いタグ付けが可能になります。

Dr. のような略字に対して axf:expansion-text を適用することで略字の展開後のテキストを設定できます。 V7.2

<fo:inline axf:expansion-text="Doctor">Dr.</fo:inline> Antenna

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

  • 代替テキストの指定

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

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

    axf:alttext の指定がないときや空のときは、内容テキストを代替テキストとみなします。ただし、<fo:external-graphic>などの空要素では内容テキストは空です。内容テキストが空でHTMLのときは、titleプロパティの値を代替テキストとみなします。titleプロパティの値も空のときやHTMLでないときは、roleプロパティの値を代替テキストとみなします。ただし、これはroleプロパティの本来の使い方ではないので推奨しません。roleプロパティの値も空のときはひとつの空白文字(U+0020)を代替テキストとみなします。 これは、代替テキストが不要な画像であっても、代替テキストが指定されていないといって、アクセシビリティチェックでエラーが出るのを防ぐためです。有効な代替テキストを与えることは、FO/HTML作成者の責任です。

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

    リンクの代替テキストは、拡張プロパティ axf:annotation-contents で指定できます。axf:annotation-contents の指定がないときや空のときは、axf:alttext を代替テキストとします。axf:alttext の指定がないときや空のときは、画像の代替テキストと同様に処理されます。

  • テキスト言語の指定

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

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

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

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

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

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

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

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

    axf:field-description拡張プロパティの指定があればそのテキストを、なければフォーム名を割り当てます。

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

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

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

    AH Formatter V7.2 は、正しい順序でタグを出力します。

タグ付きPDFへのタグ付きPDFの埋め込みや、PDFのバージョンによる制約については、PDFの埋め込みを参照してください。

リニアライズドPDF

リニアライズドPDF(Linearized PDF)にすることで、生成されたPDFのWebでの表示は高速となります。リニアライズドPDFの特徴は以下が挙げられます。

  • PDFを開くとき、最初のページを可能な限りすばやく開く。
  • ユーザが開いたページから別のページを要求したとき、可能な限りすばやくそのページを開く。
  • 文書を遅い通信回線を使って配布するとき、ページを少しづつ順に表示できるようにする。
  • リンクを辿るときに、すべてのページを受信して表示しなくてもよいようにする。

Web表示用に最適化したPDFとは、このリニアライズドPDFのことを指します。

XMP

XMP(Extensible Metadata Platform)はメタデータを表現するXML仕様で、ISO 16684 で規定されています。 PDF1.4以降のPDFには、XMPが含まれています。 XMPは、<axf:document-info> で指定された情報から生成されます。 また、任意のXMPを <axf:document-info xmp> で指定できますが、その内容は矛盾がないように調整されます。以下の内容が調整されます。

  • PDF/X、PDF/A、PDF/UA のときはそれぞれに対応するメタ情報が追加されます。指定されたXMP中の矛盾する情報は削除されます。
  • <pdf:Producer><xmp:CreatorTool> には、AH Formatter V7.2 のものが設定されます。
  • <xmp:CreateDate><xmp:ModifyDate><xmp:MetadataDate> には、PDF生成日時が設定されます。
  • <dc:format> に application/pdf が設定されます。
  • <axf:document-info document-title> が指定されているときは、<dc:title> にそれが設定されます。指定されたXMPに <dc:title> が含まれず、<axf:document-info document-title> も指定されてないとき、PDF/X では適当なタイトルが設定されます。
  • <axf:document-info subject> が指定されているときは、<dc:description> にそれが設定されます。
  • <axf:document-info author> が指定されているときは、<dc:creator> にそれが設定されます。
  • <axf:document-info author-title> が指定されているときは、<photoshop:AuthorsPosition> にそれが設定されます。
  • <axf:document-info description-writer> が指定されているときは、<photoshop:CaptionWriter> にそれが設定されます。
  • <axf:document-info keywords> が指定されているときは、<pdf:Keywords> にそれが設定されます。
  • <axf:document-info copyright-notice> が指定されているときは、<dc:rights> にそれが設定されます。
  • <axf:document-info copyright-info-url> が指定されているときは、<xmpRights:WebStatement> にそれが設定されます。
  • <axf:document-info copyright-status> がUnknown以外に指定されているときは、<xmpRights:Marked> にそれが設定されます。
  • PDF/X で、指定されたXMPに <xmpMM:DocumentID> が含まれていないときは、適当なUUIDが追加されます。
  • PDF/X で、指定されたXMPに <xmpMM:VersionID> が含まれていないときは、1 として追加されます。
  • PDF/X で、指定されたXMPに <xmpMM:RenditionClass> が含まれていないときは、default として追加されます。
  • PDF/A 以外で、カスタムプロパティを追加します。

ここに現れるnamespaceは以下のとおりです。

  • xmp : http://ns.adobe.com/xap/1.0/
  • xmpMM : http://ns.adobe.com/xap/1.0/mm/
  • dc : http://purl.org/dc/elements/1.1/
  • pdf : http://ns.adobe.com/pdf/1.3/
  • photoshop : http://ns.adobe.com/photoshop/1.0/

上記以外の調整はしません。指定されたXMP中に不明なnamespaceの要素が含まれていても、削除されません。PDF/A などでそのような要素が含まれると準拠違反となることがあります。

PDFの埋め込み

PDF中に、他のPDFを埋め込むことができます。 また、フォームによる記入欄のあるPDFを埋め込むこともできます。

これは、<fo:external-graphic> を用いて、画像を扱うように行います。 グラフィクスを参照してください。

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

このように、埋め込みたいページ番号をURI中に指定します。 ページの指定は、#page=​<FirstPage>-​<LastPage> の形式で行います。 ページ番号の指定がない場合は1ページ目が埋め込まれます。

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

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

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

複数のページを連続して埋め込むことができます。

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

上のような指定で、3ページ目から5ページ目までを連続して埋め込みます。すべてのページを埋め込みたいときは、次のようにします。

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

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

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

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

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

axf:background-repeat="repeat" を指定することはできません。 CSSでは、@page に背景を指定します。

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-imageaxf:background-repeat が指定されている場合は、<fo:simple-page-master> が優先します。<fo:simple-page-master> への指定では、<fo:region-*> への埋め込みも可能となります。

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

埋め込まれる​PDF PDF​1.3​~1.7PDF​2.0PDF/X
1a:​20013:​20021a:​20032:​20033:​20034:​20104p:​2010
出力するPDFPDF1.3​~1.7
PDF2.0
PDF/X​-1a:​2001
PDF/X-3:​2002
PDF/X-1a:​2003
PDF/X-2:​2003
PDF/X-3:​2003
PDF/X-4:​2010
PDF/X-4p:​2010
埋め込まれる​PDF PDF/APDF/UA
1a:​20051b:​20052a:​20112b:​20112u:​20113a:​20123b:​20123u:​20121:​2014
出力するPDFPDF1.3​~1.7
PDF/A​-1a:​2005
PDF/A​-1b:​2005
PDF/A​-2a:​2011
PDF/A​-2b:​2011
PDF/A​-2u:​2011
PDF/A​-3a:​2012
PDF/A​-3b:​2012
PDF/A​-3u:​2012
PDF/UA​-1:​2014

PDF を埋め込むとき、上の表で[]であっても、以下の制限があります。

  • 埋め込まれるPDFのバージョンが出力するPDFのバージョンより大きいときはエラーとなります。
  • PDF/A へ PDF/A を埋め込む場合、OutputIntentに互換性がないときはエラーとなります。
  • 埋め込まれるPDFにあるしおりは無視されます。
  • 埋め込まれるPDFにある注釈は、埋め込む注釈の種類をPDF出力の設定import-annotation-types で指定しておくことができます。また、GUIの PDFオプション設定ダイアログその他 ページでも指定することができます。指定されていない注釈は無視されます。
  • 埋め込まれるPDFの internal-destination などで指定されたIDは削除されます。
  • 埋め込まれるPDFの内部リンクとして axf:destination-type で FitH、FitV などが指定されている場合は、インポート先の用紙幅に拡縮されて表示されます。
  • 埋め込まれるPDFにある画像は、画像処理(圧縮色変換など)の対象外です。
  • タグ付きPDFにタグ付きPDFを埋め込むには、PDF出力の設定import-tagged-pdf="true" を指定してください。これは、GUI の PDFオプション設定ダイアログバージョン ページでも指定できます。タグの付いていないPDFは、常に埋め込むことができます。
  • 埋め込まれるPDFのページに OutputIntent が指定されていても無視されます。
  • 埋め込まれるPDFの画像に地図位置情報が添付されている場合、AH Formatter V7.2 は Form XObject の中に画像を配置するのでPDFビューアによっては地図位置情報が表示されない可能性があります。

フォント出力

Type 1 フォント(Adobe標準の欧文基本14フォントを含む)、TrueTypeフォント(TrueTypeアウトライン形式のOpenTypeフォントを含む)、OpenTypeフォント(PostScriptアウトライン)、WOFF(Web Open Font Format)、WOFF2、Macintosh TrueType フォントデータフォークスーツケース をサポートします。その他の形式のフォントはサポートされません。 詳細は、「フォント」を参照してください。

AH Formatter V7.2 では使用するフォントが実行環境にインストールされている必要があります。Windows版でのフォントのインストール方法については、Windowsのヘルプ、あるいはフォントに添付される説明書などを参照してください。 Windows版で、フォントフォルダ以外に置いたフォントをPDFへ出力することができます。そのときは、フォント構築ファイルによる指定が必要です。

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

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

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

AH Formatter V7.2 の内部処理はすべて Unicode で行われます。中国語、日本語、韓国語(CJK) の文字の場合、AH Formatter V7.2 が出力する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、OpenTypeフォントに対してのみ行われます。

フォント埋め込み

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

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

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

埋め込みが許可されていないフォントをPDFに埋め込むことはできません。 埋め込みを行うフォントの指定方法についてはPDF出力の設定を参照してください。

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

  • 次のスクリプトのフォント
    • Ethi : エチオピア文字
    • Arab : アラビア文字
    • Syrc : シリア文字
    • Hebr : ヘブライ文字
    • Deva : デヴァナガリ文字
    • Beng : ベンガリ文字
    • Guru : グルムキ文字
    • Gujr : グジャラート文字
    • Orya : オリヤ文字
    • Taml : タミル文字
    • Telu : テルグ文字
    • Knda : カンナダ文字
    • Mlym : マラヤラム文字
    • Sinh : シンハラ文字
    • Thai : タイ文字
    • Khmr : クメール文字
    • Laoo : ラーオ文字
    • Mymr : ミャンマー文字
  • リガチャされた文字  axf:ligature-mode
  • font-variant によって、変更された字体(small-capsのエミュレーションを除く)
  • 異体字選択された文字
  • 16bitで表現できない Unicode の文字

イメージ出力

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

ベクタイメージ

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

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

EPSについては、グラフィクスEPSを参照してください。

ラスタイメージ

一般に、ラスタイメージデータは何らかの方法で圧縮されています。 もし、その圧縮(非圧縮)方法がPDFファイルに適合するならば、そのラスタイメージはそのままPDFに埋め込まれます。 そうでない場合は、まず、そのラスタイメージを非圧縮化して、PDFと互換性のあるビットマップ形式に変換します(非圧縮化できないラスタイメージは扱うことができません)。 そして、そのビットマップ形式を JPEGまたはZLIB圧縮(BitMap形式のFlate圧縮)してからPDFに埋め込みます。 オプション設定ファイルPDF出力の設定の、color-compression、color-jpeg-quality 属性を参照してください。ラスタイメージが直接PDFに埋め込まれた場合、これらの属性は適用されません。

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

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

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

ダウンサンプリング

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

PDFオプション設定ダイアログ圧縮ページ や、オプション設定ファイル でどのようにダウンサンプリングするかを指定しておきます。

圧縮には、以下の制約があります。

JPEG圧縮が可能なのは以下の場合です。条件を満たさない場合はZLIB圧縮となります。

  • BitsPerComponentが8
  • カラースペースが、CMYK、RGB、グレイスケール、CIE L*a*b* のいずれか

JPEG 2000圧縮が可能なのは以下の場合です。条件を満たさない場合はJPEG圧縮となります。

  • PDF1.5以降
  • BitsPerComponentが8
  • カラースペースが、RGB、グレイスケール、CIE L*a*b* のいずれか

マルチメディア

ビデオやオーディオなどのマルチメディアデータをPDFへ埋め込むまたはリンクすることができます。 指定は、次のように <fo:external-graphic> で行います。

<fo:external-graphic src="video.mpg" content-type="video/mpeg"
                     axf:multimedia-treatment="embed"
                     axf:poster-image="poster.jpg"
                     axf:show-controls="true"
                     width="640pt" height="400pt"/>

HTMLでの指定は、次のように <object> または <video> で行います。

<object data="video.mpg" type="video/mpeg"
        width="640" height="400"
        style="-ah-poster-image:url('poster.jpg'); -ah-show-controls:true">
</object>

または

<video src="video.mpg" type="video/mpeg"
       width="640" height="400"
       poster="poster.jpg" controls="controls">
</video>

content-type(HTMLではtype属性)の指定は必須です。AH Formatter V7.2 は、src に指定されたデータが、この content-type に従っているものと仮定します。データの内容をチェックしたりすることはありません。 axf:poster-image(HTML <video>要素ではposter属性)でポスター画像を指定することができます。GUIでは、ポスター画像が表示されます。 width、height の指定がない場合は、参照領域の大きさが仮定されます。 マルチメディアを埋め込むのかリンクするのかは、axf:multimedia-treatment で指定します。

axf:show-controls(HTML <video>要素ではcontrols属性)の指定がある場合、再生中のマルチメディアの下側にコントロールバーが表示されます。コントロールバーと他の要素とが重ならないようにするにはマルチメディア要素の下側に充分なスペースの確保が必要です。

マルチメディアとして、デフォルトで受け付けるコンテントタイプは以下のとおりです。

  • audio/*
  • video/*
  • application/x-shockwave-flash

これら以外のコンテントタイプは、オプション設定ファイル<multimedia> で追加することができます。 代表的な拡張子とコンテントタイプの組み合わせの例は以下のとおりです。

拡張子コンテントタイプ
*.3g2 video/x-msvideo
*.3gp video/x-msvideo
*.aac audio/basic
*.aiffaudio/x-aiff
*.asf video/x-ms-asf
*.au audio/basic
*.avi video/x-ms-wm
*.dv video/x-dv
*.f4v video/mp4
*.flv video/x-msvideo
*.ivf video/x-ivf
*.m1v video/x-mpeg
*.m2v video/x-mpeg
*.m4a audio/mp4
*.m4b audio/x-m4b
*.m4v video/mp4
*.mid audio/x-midi
*.midi
*.mov video/quicktime
*.mp2 audio/x-mpeg
*.mp3 audio/x-mp3
*.mp4 video/mp4
*.mpe video/mpeg
*.mpeg
*.mpg
*.qt video/quicktime
*.swf application/x-shockwave-flash
*.wav audio/x-wav
*.wma audio/x-ms-wma
*.wmv audio/x-ms-wmv
*.wmx audio/x-ms-wmx

これらが正しく再生できるかどうかは、PDFのビューアに依存します。再生時に、「プレーヤー不足」や「コーデック不足」のエラーが出た場合は、対応するプレイヤやコーデックの導入で再生可能になることがあります。

以下の制約があります。

  • PDF1.5 以降で有効です。ただし、PDF/X、PDF/A は除きます。
  • background-image に指定することはできません。
  • axf:poster-image に指定することはできません。

リッチメディア

マルチメディアを、リッチメディア注釈として埋め込むことができます(ここでは、そのようなマルチメディアを単にリッチメディアと呼びます)。 これは、再生のために外部のプレイヤなどを必要としません。 指定は、次のように <fo:external-graphic>axf:multimedia-treatment でリッチメディアであることを指定します。HTMLでの指定は、<object> または <video> で行います。また、有効なプロパティに違いがあります。詳細は画像・マルチメディアを参照してください。

<fo:external-graphic src="video.mpg" content-type="video/mpeg"
                     axf:multimedia-treatment="richmedia"
                     axf:poster-image="poster.jpg"
                     width="640pt" height="400pt"/>

以下のマルチメディアをリッチメディアとして埋め込むことができます。

拡張子コンテントタイプ
*.3g2 video/x-msvideo
*.3gp video/x-msvideo
*.f4v video/mp4
*.flv video/x-msvideo
*.m4v video/mp4
*.mov video/quicktime
*.mp3 audio/x-mp3
*.mp4 video/mp4
*.swf application/x-shockwave-flash

サポートされているデータ形式であっても正しく再生するには、ビデオやオーディオのコーデックと Adobe Acrobat の Flash Player とに互換性が必要です。

以下の制約があります。

  • PDF1.7 以降で有効です。ただし、PDF/X、PDF/A は除きます。
  • background-image に指定することはできません。
  • axf:poster-image に指定することはできません。

その他

  • AH Formatter V7.2 では、<fo:root><html>のルート要素に言語が指定されている場合、それをPDFの言語情報として出力します。言語が指定されていない場合、オプション設定ファイルdefault-langの指定があれば、それが言語情報として出力されます。

  • AH Formatter V7.2 では、出力 PDF のファイルサイズを縮小する 高圧縮設定 が指定できます。高圧縮設定 は、GUI の PDFオプション設定ダイアログ圧縮 で指定できます。PDFのサイズは小さくなりますが、画質は低下しますので注意してください。採用される設定値は、オプション設定ファイルcolor-compression-minimumgrayscale-compression-minimummonochrome-compression-minimum などで指定しておくことができます。

    既定値の 高圧縮設定 では次のように設定されます。

    <pdf-settings
        color-compression="auto2k"
        color-jpeg-quality="40"
        color-downsampling="bicubic"
        color-downsampling-target-dpi="150"
        color-downsampling-above-dpi="225"
        grayscale-compression="auto2k"
        grayscale-jpeg-quality="40"
        grayscale-downsampling="bicubic"
        grayscale-downsampling-target-dpi="150"
        grayscale-downsampling-above-dpi="225"
        monochrome-compression="zlib"
        monochrome-downsampling="bicubic"
        monochrome-downsampling-target-dpi="300"
        monochrome-downsampling-above-dpi="450"
        pass-through="none"/>
    

    圧縮の効果は、元画像の種類、形式、カラースペース、圧縮率 などさまざまな要因で異なります。pass-through="all" の方がサイズが小さくなることもあります。