Comments
Description
Transcript
PDFlib 9.0.6 APIリファレンス 日本語版
ABC PDFlib, PDFlib+PDI, PPS A library for generating PDF on the fly Version 9.0.6 API リ フ ァ レ ン ス C ・ C++ ・ Cobol ・ COM ・ Java ・ .NET ・ Objective-C ・ Perl ・ PHP ・ Python ・ REALbasic/Xojo ・ RPG ・ Ruby エデ ィ シ ョ ン Copyright © 1997–2016 PDFlib GmbH and Thomas Merz. All rights reserved. PDFlib ユーザーは本マニ ュ アルを内部利用のために印刷または電子的に複製する こ と を許諾 さ れます。 PDFlib GmbH Franziska-Bilek-Weg 9, 80339 München, Germany www.pdflib.com 電話 +49 • 89 • 452 33 84-0 FAX +49 • 89 • 452 33 84-99 疑問点がおあ り の場合は groups.yahoo.com/neo/groups/pdflib/info にある PDFlib メ ー リ ング リ ス ト と アー カ イ ブ を ご覧 く だ さ い。 ラ イ セ ン ス取得のための連絡先 : [email protected] 商用 PDFlib ラ イ セ ン ス保持者向けサポー ト : [email protected] (ラ イ セ ン ス番号をお知らせ く だ さ い) この出版物および こ こ に含まれた情報はあ り のま まに供給 さ れる ものであ り 、 通知な く 変更 さ れる こ と が あ り 、 また、 PDFlib GmbH によ る誓約 と し て解釈 さ れるべき ものではあ り ません。 PDFlib GmbH はいかな る誤 り や不正確に対 し て も責任や負担を全 く 負 う ものではな く 、 こ の出版物に関するいかな る類の (明示 的 ・ 暗示的または法定に関わら ず) 保障を も行 う ものではな く 、 そ し て、 いかな る そ し てすべての売買可 能性の保障 と 、 特定の目的に対する適合性 と 、 サー ド パーテ ィ の権利の侵害 と を明白に否認 し ます。 PDFlib と PDFlib ロ ゴは PDFlib GmbH の登録商標です。 PDFlib ラ イ セ ン ス保持者は PDFlib の名称 と ロ ゴ を彼 らの製品の文書内で用いる権利を与え られます。 ただ し 、 こ れは必須ではあ り ません。 Adobe ・ Acrobat ・ PostScript ・ XMP は Adobe Systems Inc. の商標です。 AIX ・ IBM ・ OS/390 ・ WebSphere ・ i5/ iSeries ・ zSeries は International Business Machines Corporation の商標です。 ActiveX ・ Microsoft ・ OpenType ・ Windows は Microsoft Corporation の 商標です。 Apple ・ Macintosh ・ TrueType は Apple Computer, Inc. の 商標 です。 Unicode ・ Unicode ロ ゴは Unicode, Inc. の 商標です。 Unix は The Open Group の 商標です。 Java ・ Solaris は Sun Microsystems, Inc. の 商標です。 HKS は HKS 商標連合= Hostmann-Steinberg ・ K+E Printing Inks ・ Schmincke の登録商標です。 他の企業の製品 と サービ ス名は他の商標やサービ スマー ク である場合が あ り ます。 ソ フ ト ウ ェ ア ア プ リ ケーシ ョ ンやユーザー向け文書で表示 さ れる PANTONE® カ ラ ーは PANTONE 定義規格 と 一致 し ない場合があ り ます。 正確な色については最新の PANTONE Color Publication を ご覧 く だ さ い。 PANTONE® およびその他の Pantone, Inc. の商標は Pantone, Inc. に帰属 し ます。 © Pantone, Inc., 2003. Pantone, Inc. は PDFlib GmbH に対 し て PDFlib ソ フ ト ウ ェ ア と の組み合わせでのみ使用する ための頒布ラ イ セ ン ス さ れた色デー タ および/またはソ フ ト ウ ェ アの著作権者です。 PANTONE カ ラ ーデー タ および/また は ソ フ ト ウ ェ アは PDFlib ソ フ ト ウ ェ アの実行の部分 と し て以外に他のデ ィ ス ク上や メ モ リ 内へ複製 し ては いけません。 PDFlib は以下のサー ド パーテ ィ ソ フ ト ウ ェ アの変更 さ れた部分を含んでいます。 ICClib、 Copyright © 1997-2002 Graeme W. Gill GIF 画像デ コ ーダ、 Copyright © 1990-1994 David Koblas PNG 画像参照ラ イ ブ ラ リ (libpng)、 Copyright © 1998-2012 Glenn Randers-Pehrson Zlib 圧縮ラ イ ブ ラ リ 、 Copyright © 1995-2012 Jean-loup Gailly and Mark Adler TIFFlib 画像ラ イ ブ ラ リ 、 Copyright © 1988-1997 Sam Leffler、 Copyright © 1991-1997 Silicon Graphics, Inc. Eric Young の書いた Cryptographic ソ フ ト ウ ェ ア 、 Copyright © 1995-1998 Eric Young ([email protected]) Independent JPEG Group の JPEG ソ フ ト ウ ェ ア、 Copyright © 1991-1998, Thomas G. Lane Cryptographic ソ フ ト ウ ェ ア、 Copyright © 1998-2002 The OpenSSL Project (www.openssl.org) Expat XML パーサ、 Copyright © 1998, 1999, 2000 Thai Open Source Software Center Ltd ICU International Components for Unicode, Copyright © 1995-2012 International Business Machines Corporation and others 参照 sRGB ICC カ ラ ープ ロ フ ァ イルデー タ , Copyright © 1998 Hewlett-Packard Company PDFlib は RSA Security, Inc. の MD5 メ ッ セージダ イ ジ ェ ス ト アルゴ リ ズムを含んでいます。 目次 1 プ ログ ラ ミ ングの概念 1.1 7 オプ シ ョ ン リ ス ト 7 1.1.1 文法 7 1.1.2 単純デー タ 型 10 1.1.3 文字サ イ ズ ・ ア ク シ ョ ンデー タ 型 12 1.1.4 色デー タ 型 13 1.1.5 図形デー タ 型 16 1.2 関数のス コ ープ 18 1.3 ログ記録 19 2 一般関数 21 2.1 例外処理 21 2.2 Unicode 変換 23 2.3 グローバルオプ シ ョ ン 25 2.4 PDFlib オブ ジ ェ ク ト を作成 ・ 削除 33 2.5 PDFlib 仮想フ ァ イルシス テム (PVF) 35 2.6 PDF オブ ジ ェ ク ト 作成 API (POCA) 38 3 文書 ・ ページ関数 43 3.1 文書関数 43 3.2 PDF 文書を メ モ リ から 取得 54 3.3 ページ関数 55 3.4 レ イ ヤー 61 4 フ ォ ン ト ・ テキス ト 関数 4.1 67 フ ォ ン ト 処理 67 4.2 テキス ト フ ィ ル タ ・ 書式オプ シ ョ ン 80 4.3 単純テキス ト 出力 86 4.4 ユーザー定義 (Type 3) フ ォ ン ト 90 4.5 ユーザー定義 8 ビ ッ ト エ ン コ ーデ ィ ン グ 93 目次 3 5 テキス ト と 表の組版 95 テキス ト 行によ る一行テキス ト 95 5.1 5.2 テキス ト フ ローによ る複数行テキス ト 102 5.3 表の組版 120 6 オブ ジ ェ ク ト のはめ込み と 範囲枠 131 オブ ジ ェ ク ト のはめ込み 131 6.1 6.2 範囲枠 139 7 グ ラ フ ィ ッ ク 関数 143 グ ラ フ ィ ッ ク 書式オプ シ ョ ン 143 7.1 7.2 グ ラ フ ィ ッ ク ス テー タ ス 146 7.3 座標系の変換 151 7.4 パス構築 154 7.5 描画 と ク リ ッ ピ ング 158 7.6 パスオブ ジ ェ ク ト 160 8 色関数 167 8.1 色を設定 167 8.2 ICC プ ロ フ ァ イル 170 8.3 パ タ ーン と シ ェ ーデ ィ ング 172 9 画像 ・ SVG ・ テ ン プ レー ト 関数 177 画像 177 9.1 9.2 SVG グ ラ フ ィ ッ ク 186 9.3 テ ン プ レー ト 193 9.4 共通 XObject オプ シ ョ ン 197 10 PDF 取 り 込み (PDI) ・ pCOS 関数 文書関数 203 10.1 10.2 ページ関数 207 10.3 その他の PDI 処理 214 10.4 pCOS 関数 216 4 目次 203 11 ブ ロ ッ ク 流 し 込み関数 (PPS) 11.1 221 ブ ロ ッ ク流 し 込み関数の長方形オプ シ ョ ン 221 11.2 テキス ト 行 ・ テキス ト フ ローブ ロ ッ ク 222 11.3 イ メ ージ ブ ロ ッ ク 225 11.4 PDF ブ ロ ッ ク 226 11.5 グ ラ フ ィ ッ ク ブ ロ ッ ク 227 12 イ ン タ ラ ク テ ィ ブ機能 12.1 229 し お り 229 12.2 注釈 231 12.3 フ ォ ーム フ ィ ール ド 240 12.4 ア ク シ ョ ン 249 12.5 名前付き移動先 255 12.6 PDF パ ッ ケージ ・ ポー ト フ ォ リ オ 257 12.7 地理空間機能 262 13 マルチ メ デ ィ ア機能 265 13.1 3D アー ト ワー ク 265 13.2 アセ ッ ト ・ リ ッ チ メ デ ィ ア機能 (Flash) 271 14 文書交換 279 14.1 文書情報 フ ィ ール ド 279 14.2 XMP メ タ デー タ 281 14.3 タ グ付き PDF 282 14.4 マー ク付き コ ン テ ン ツ 289 14.5 文書部分 ヒ エ ラルキー 291 A 全 API 関数一覧 293 B 全オプ シ ョ ン ・ キーワー ド 一覧 C 改訂履歴 索引 295 317 319 目次 5 6 目次 1 プ ログ ラ ミ ングの概念 1.1 オ プ シ ョ ン リ ス ト オプシ ョ ン リ ス ト は、 さ ま ざ ま な API 関数呼び出 し を制御する ための強力な、 それでいて 簡単な手段です。 関数に多数の引数を与え る 必要な し に、 多 く の API メ ソ ッ ド で、 オプ シ ョ ン リ ス ト を用い る こ と がで き ます。 略 し て optlist と も いい ます。 こ れは、 オプシ ョ ン を何個で も 内容 と し て持つ こ と ので き る 文字列です。 オプシ ョ ン リ ス ト には、 さ ま ざ ま なデー タ 型や、 リ ス ト な ど の複合デー タ を内容 と し て持たせる こ と がで き ます。 多 く の言 語バ イ ンデ ィ ン グで optlist は簡単に、必要な キー ワー ド と 値を文字列連結 し てい く だけで 作成す る こ と がで き ます。 バインディング C 言語バ イ ンデ ィ ン グ : sprintf( ) 関数を使っ て optlist を作成する と よ いで し ょ う 。 .NET 言語バ イ ンデ ィ ン グ : C# プ ロ グ ラ マーは、 StringBuilder の AppendFormat( ) メ ソ ッ ド では中括弧 { } を用いて書式項目を表現 し 、 それが引数の文字列表現で置換 さ れ る 点に留 意す る 必要があ り ます。 こ れに対 し 、 Append( ) メ ソ ッ ド では中括弧に特別な意味を持た せ て い ま せ ん。 オ プ シ ョ ン リ ス ト の 文 法 で は 中 括 弧 を 利 用 し て い ま す の で、 AppendFormat( ) メ ソ ッ ド か Append( ) メ ソ ッ ド か を適切に選んで用い る よ う 注意す る 必要 があ り ます。 1.1.1 文法 オ プ シ ョ ン リ ス ト の文法形式の定義 オプシ ョ ン リ ス ト は、 以下の規則に従っ て作成す る 必要があ り ます。 > オプシ ョ ン リ ス ト 内のすべての要素 (キー と 値) は、 以下の区切 り キ ャ ラ ク タ の う ち の 1 個ない し 複数に よ っ て区切 る 必要があ り ます : スペース ・ タ ブ ・ キ ャ リ ッ ジ リ タ ー ン ・ ニ ュ ー ラ イ ン ・ 等号 「=」。 > 最 も 外側を囲 う 中括弧は要素の内容 と し て扱われません。 文字列 { } は、 空の要素を表 し ます。 > 最 も 外側の中括弧ペアの内側にあ る 区切 り キ ャ ラ ク タ は、 要素を区切 ら ず、 要素の一 部分 と な り ます。 ですので、 区切 り キ ャ ラ ク タ のあ る 要素は中括弧で囲 う 必要があ り ます。 > 要素が中括弧キ ャ ラ ク タ (群) を含む と き は、各キ ャ ラ ク タ の直前にバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ 1 個を付けて保護す る 必要があ り ます。 > 要素が、中括弧キ ャ ラ ク タ の直前にバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ を 1 個ない し 複数連続 し て含んでい る と き は、そのキ ャ ラ ク タ 列の中の各バ ッ ク ス ラ ッ シ ュ に も う 1 個のバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ を付けて保護す る 必要があ り ます。 > 要素に、 開閉照応 し ない中括弧があ る と き は、 こ の中括弧は直前にバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ を つけ て保護す る 必要が あ り ま す。 要素の閉 じ 中括弧の直前のバ ッ ク ス ラ ッ シ ュ に も 、 直前にバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ をつけ る 必要があ り ます。 > オプシ ョ ン リ ス ト にバ イ ナ リ ゼ ロ 値を含めてはいけ ません。 オプシ ョ ンは、 こ の PDFlib リ フ ァ レ ン ス での記述に従っ て、 リ ス ト 値を内容 と し て持つ こ と がで き る 場合があ り ます。 リ ス ト 値は、 1 個ない し 複数の要素を内容 と し て持ち ます ( こ れ ら の要素自体が ま た リ ス ト であ る 場合 も あ り ます)。それ ら は上記の規則に従っ て区 1.1 オプ シ ョ ン リ ス ト 7 切 ら れますが、 ただ し こ の場合、 等号は区切 り キ ャ ラ ク タ と し て扱われない点だけが異な り ます。 注 オプ シ ョ ン名 (すなわちキー) がハイ フ ンキ ャ ラ ク タ を含む こ と はあ り ません。 オプ シ ョ ンの説明の表の中では、オプ シ ョ ン名が長い と き にはハイ フ ン区切 り し て示 し てある場合 があ り ますので、 こ の点に注意 し て く だ さ い。 そのハ イ フ ンは、 そのオ プ シ ョ ン を オ プ シ ョ ン リ ス ト 内で与え る際にはな く す必要があ り ます。 単純なオ プ シ ョ ン リ ス ト 多 く の場合オプシ ョ ン リ ス ト は、 1 個ない し 複数のキー / 値ペ ア を内容 と し て持ち ます。 キー と 値の間、 お よ びキー / 値ペア ど う し の間は、 1 個ない し 複数の空白キ ャ ラ ク タ (スペース ・ タ ブ ・ キ ャ リ ッ ジ リ タ ーン ・ ラ イ ン フ ィ ー ド ) で区切 る 必要があ り ます。 あ る いは、 キー と 値の間は等号 「=」 で区切る こ と も で き ます : key=value key = value key value key1 = value1 key2 = value2 可読性を上げ る ために、 キー と 値の間には等号を用い、 隣 り 合 う キー / 値ペアの間には空 白を用い る こ と を推奨 し ます。 オプシ ョ ン リ ス ト は左か ら 右へ評価 さ れてい き ますので、1 つのオプシ ョ ン を同 じ リ ス ト の中で複数回与え る こ と も で き ます。 その場合は、 最後に出て き た も のがそれ よ り 前の も のを オーバ ラ イ ド し ます。 以下の例では、 最初のオプシ ョ ン割 り 当て を次の も のがオー バ ラ イ ド し て、 オプシ ョ ン リ ス ト 処理完了後の key は値 value2 と な り ます : key=value1 key=value2 リ ス ト 値 リ ス ト は、 1 個ない し 複数の値の間を区切っ た も のを内容 と し て持ち ます。 こ れ ら の値は、 単純値であ る 場合 も あ り ます し 、 それ自体が さ ら に リ ス ト であ る こ と も 可能 です。 リ ス ト は中括弧 { } で囲まれ、 リ ス ト 内の値の間は空白キ ャ ラ ク タ で区切 る 必要が あ り ます。 例 : dasharray={11 22 33} position={ center bottom } (数値3個を内容として持つリスト) (キーワード2個を内容として持つリスト) リ ス ト は、 内容 と し て リ ス ト を ネ ス ト で持つ こ と も 可能です。 こ の場合 も 、 リ ス ト ど う し の間は空白で区切 る 必要があ り ます。 隣 り 合 う } キ ャ ラ ク タ と { キ ャ ラ ク タ と の間には区 切 り キ ャ ラ ク タ を入れ る 必要があ り ますが、同 じ 種類の中括弧ど う し の間では省略す る こ と も で き ます : polylinelist={{10 20 30 40} {50 60 70 80}} (リスト2個を内容として持つリスト) リ ス ト の中に リ ス ト が 1 個だけあ る と き も 、ネ ス ト さ れた リ ス ト の中括弧は省略 し てはい け ません : polylinelist={{10 20 30 40}} ト) (ネストされたリスト1個を内容として持つリス ネ ス ト さ れたオ プ シ ョ ン リ ス ト と リ ス ト 値 オプシ ョ ン のなかには、 オ プ シ ョ ン リ ス ト 型ま たはオプ シ ョ ン リ ス ト の リ ス ト 型の値を持つ こ と がで き る も のがあ り ます。オプ シ ョ ン リ ス ト 型のオプシ ョ ンは、 従属す る 1 個ない し 複数のオプシ ョ ン を内容 と し て持ち ま す。 オプ シ ョ ン リ ス ト の リ ス ト 型のオプシ ョ ンは、 ネ ス ト さ れた 1 個ない し 複数のオプ 8 第 1 章 : プ ログ ラ ミ ングの概念 シ ョ ン リ ス ト を内容 と し て持ち ます。オプシ ョ ン リ ス ト を ネ ス ト し て扱 う 際に重要な こ と は、 適切な数の中括弧を記述す る こ と です。 以下にい く つかの例を挙げます。 オプシ ョ ン metadata の値がオプシ ョ ン リ ス ト であ り 、 それ自体が 1 個のオプシ ョ ン filename を内容 と し て持つ : metadata={filename=info.xmp} オプシ ョ ン fill の値がオプシ ョ ン リ ス ト の リ ス ト であ り 、 それがオプシ ョ ン リ ス ト 1 個を 内容 と し て持つ : fill={{ area=table fillcolor={rgb 1 0 0} }} オプシ ョ ン fill の値がオプシ ョ ン リ ス ト の リ ス ト であ り 、 それがオプシ ョ ン リ ス ト 2 個を 内容 と し て持つ : fill={{ area=rowodd fillcolor={rgb 0 1 0} } { area=roweven fillcolor={rgb 1 0 0} }} リ ス ト がオプシ ョ ン リ ス ト 1 個を内容 と し て持ち、 その値の中に空白があ る : attachments={{filename={foo bar.xml} }} リ ス ト が文字列 3 個を内容 と し て持つ : itemnamelist = { {Isaac Newton} {James Clark Maxwell} {Albert Einstein} } リ ス ト がキーワー ド 2 個を内容 と し て持つ : position={left bottom} リ ス ト が複数の型を内容 と し て持つ (float と キーワ ー ド ) : position={10 bottom} リ ス ト が長方形 1 個を内容 と し て持つ : boxes={{10 20 30 40}} リ ス ト が折れ線 2 個を内容 と し て持ち、 その中にパーセ ン ト 値があ る : polygons = {{10 20 40 60 90 120}} {12 87 34 98 34% 67% 34% 7%}} よ く あ る落 と し 穴 オプシ ョ ン リ ス ト の文法について、 よ く あ る 誤 り を以下に挙げます。 中括弧は区切 り キ ャ ラ ク タ ではあ り ませんので、 以下は誤 り です : key1 {value1}key2 {value2} 誤り! こ の場合、 エ ラ ー メ ッ セージ 「Unknown option 'value2'」 が発生 し ます。 同様に、 以下 も 区切 り キ ャ ラ ク タ があ り ませんので誤 り です : key{value} key={{value1}{value2}} 誤り! 誤り! 中括弧は開閉照応 し てい る 必要があ り ます。 以下は誤 り です (括弧で囲ま ない文字列の文 法については後述) : key={open brace {} 誤り! 1.1 オプ シ ョ ン リ ス ト 9 こ の場合、 エ ラ ー メ ッ セージ 「Braces aren't balanced in option list 'key={open brace {}'」 が 発生 し ます。 文字列の中に単独の中括弧があ る と き は、 その直前にバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ を付加す る 必要があ り ます : key={closing brace \} and open brace \{} 正しい! 文字列値の末尾がバ ッ ク ス ラ ッ シ ュ の場合は、 も し その直後が閉 じ 中括弧キ ャ ラ ク タ な ら ば、 直前に も う 1 個バ ッ ク ス ラ ッ シ ュ をつけ る 必要があ り ます : key={\value\} key={\value\\} 誤り! 正しい! オ プ シ ョ ン リ ス ト 内の括弧で囲ま ない文字列 以下の場合には、 オプシ ョ ン リ ス ト 値内 のキ ャ ラ ク タ と 、 オプシ ョ ン リ ス ト 文法キ ャ ラ ク タ と の間に、 衝突が起 こ り え ます : > パ ス ワ ー ド が、 開閉照応 し ない中括弧や、 バ ッ ク ス ラ ッ シ ュ や、 その他特殊キ ャ ラ ク タ を含んでい る 場合 > 日本語の SJIS フ ァ イ ル名がオプシ ョ ン リ ス ト 内にあ る 場合(Unicode 非対応言語バ イ ン デ ィ ン グにおいてのみ意味を持ち ます) > JavaScript コ ー ド をオプシ ョ ン内で与え る と 、 中括弧 { } の使用に よ っ て、 問題の原因 と な り ます 任意のテ キ ス ト ま たはバ イ ナ リ のデー タ を、オプシ ョ ン リ ス ト 文法の構成要素 と 抵触 し な い よ う に与え る ための単純な し く みを提供する ため、 括弧で囲ま ないオプシ ョ ン値を、 以 下の文法変種の中で、 長 さ の指定子 と と も に与え る こ と がで き ます : key[n]=value key[n]={value} こ の 10 進値 n は以下を表 し ます : > Unicode 対応言語バ イ ンデ ィ ン グの場合 : UTF-16 コ ー ド ユニ ッ ト の数 > Unicode 非対応言語バ イ ンデ ィ ン グの場合 : 文字列を構成する バ イ ト の数 文字列値を囲む中括弧はオプシ ョ ナルではあ り ますが、 強 く 推奨 さ れます。 空白やその他 の区切 り キ ャ ラ ク タ で始ま る 文字列では中括弧は必須です。 文字列値の中の中括弧 ・ 区切 り キ ャ ラ ク タ ・ バ ッ ク ス ラ ッ シ ュ は、 何 ら 特殊な解釈を さ れ る こ と な く 、 文字通 り に取 ら れます。 空白 と 中括弧キ ャ ラ ク タ を含む 7 キ ャ ラ ク タ のパ ス ワー ド を指定す る 例です。 文字列 全体を中括弧で囲んでお り 、 こ の中括弧はオプシ ョ ン値の一部分ではあ り ません : password[7]={ ab}c d} オプシ ョ ン リ ス ト がネ ス ト さ れてい る 場合に、オプシ ョ ン値を長 さ カ ウ ン ト と と も に与え た と き は、 その中身のオプシ ョ ン リ ス ト も 長 さ カ ウ ン ト を与え る 必要があ り ます。 例 : fitannotation[34]={contents[19]={this is a brace '}'}} 1.1.2 単純デー タ 型 文字列 文字列はプ レ ー ン な ASCII 文字列で あ り (EBCDIC プ ラ ッ ト フ ォ ー ム 上では EBCDIC 文字列)、 通常、 ロ ーカ ラ イ ズ対象でないキーワー ド に用い ら れます。 文字列の 中に空白キ ャ ラ ク タ か 「=」 キ ャ ラ ク タ があ る と き は、 { } でか こ む必要があ り ます : 10 第 1 章 : プ ログ ラ ミ ングの概念 (文字列値の中に空白が3個ある) (文字列値の中に等号が1個ある) password={ secret string } contents={length=3mm} キ ャ ラ ク タ { か } を文字列に入れたい と き は、 直前にキ ャ ラ ク タ \ を付加す る 必要があ り ます : (文字列値の中に右中括弧が1個ある) password={weird\}string} 要素の閉 じ 中括弧の直前にバ ッ ク ス ラ ッ シ ュ があ る と き は、その直前にバ ッ ク ス ラ ッ シ ュ キ ャ ラ ク タ をつけ る 必要があ り ます : (文字列の末尾がバックスラッシュ 1個) filename={C:\path\name\\} 空文字列は中括弧のペアで作成で き ます : {} 内容文字列 ・ ハ イ パーテ キ ス ト 文字列 ・ 名前文字列 : こ れ ら は各種形式の Unicode 内容を 持つ こ と がで き ます。 オプシ ョ ン escapesequence が設定 さ れていれば、 シ ン グルバ イ ト を エ ス ケープシーケ ン ス で表現で き ます。 こ れ ら の文字列型 と 、 文字列オプシ ョ ンでのエ ン コ ーデ ィ ン グの選択について詳 し く は、 PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 Unicode 非対応言語バ イ ンデ ィ ン グ:オプシ ョ ン リ ス ト の先頭が [EBCDIC-]UTF-8 BOM の と き は、 そのオプシ ョ ン リ ス ト の各内容 ・ ハ イ パーテ キ ス ト ・ 名前文字列は、 [EBCDIC]UTF-8 文字列 と し て解釈 さ れます。 Unichar Unichar は 1 個の Unicode 値であ り 、 以下の各種文法が使え ます : 10 進値≧ 10 (例 : 173) 、 16 進値の前に x ・ X ・ 0x ・ 0X ・ U+ のいずれか をつけた も の (xAD ・ 0xAD ・ U+00AD) 、 数値参照 ・ 文字参照 ・ グ リ フ名参照か ら 「&」 ・ 「;」 修飾を除いた も の (shy ・ #xAD ・ #173) 。 あ る いは、 リ テ ラ ルな キ ャ ラ ク タ を与え る こ と も で き ます。 Unichar は、 範囲 0 ~ 65535 (0 ~ 0xFFFF) でなければな り ません。 例 : replacementchar=? replacementchar=63 replacementchar=x3F replacementchar=0x3F replacementchar=U+003F replacementchar=euro replacementchar=.question replacementchar=.marina (リテラル) (10進) (16進) (16進) (Unicode記法) (HTML文字参照) (標準のグリフ名参照) (フォント独自のグリフ名参照) 数字 1 文字は リ テ ラ ルに扱われ、 10 進 Unicode 値 と し ては扱われません : replacementchar=3 (U+0033 THREE。U+0003ではありません!) Unichar は、 16 進で 0 ~ 0x10FFFF (10 進で 0 ~ 1114111) の範囲内になければな り ませ ん。 ただ し 、 い く つかのオプシ ョ ンでは範囲 0 ~ 0xFFFF (0 ~ 65535) に制約 さ れます。 こ れはそれぞれのオプシ ョ ンの説明に注記 し て あ り ます。 Unicode 範囲 Unicode 範囲は、 連続的な範囲の Unicode キ ャ ラ ク タ 群を、 その範囲の先 頭キ ャ ラ ク タ と 末尾キ ャ ラ ク タ と で指定 し た も のです。 Unicode 範囲の先頭値 と 末尾値 と は、 空白を入れずに負号 「-」 で区切 る 必要があ り ます。 例 : 1.1 オプ シ ョ ン リ ス ト 11 forcechars={U+03AC-U+03CE} 論理値 論理値は値 true か false を持ち ます。論理値オプシ ョ ンの値が省略 さ れた と き は、 値 true であ る と 見な さ れます。 name=false のかわ り に短縮記法 noname を用い る こ と も で き ます : embedding noembedding (embedding=trueと同等) (embedding=falseと同等) キーワー ド キー ワ ー ド 型のオプシ ョ ンは、 固定キー ワ ー ド 群の定義済み リ ス ト か ら 1 つを持つ こ と がで き ます。 例 : blendmode=overlay オプシ ョ ンのなかには、 数値かキーワ ー ド のいずれかの値を持つ も のがあ り ます。 数値 オプシ ョ ン リ ス ト は、 い く つかの数値型に対応 し てい ます。 整数型は、 10 進ま たは 16 進の整数を持つ こ と がで き ます。 x ・ X ・ 0x ・ 0X のいずれかで 始ま る 正の整数は 16 進値を表 し ます : -12345 0 0xFF float は、 浮動小数点数ま たは整数を持つ こ と がで き ます。 浮動小数点値の小数点 と し ては ピ リ オ ド と カ ン マ を用い る こ と がで き ます。 指数記法に も 対応 し てい ます。 以下の値はす べて同等です : size size size size = = = = -123.45 -123,45 -1.2345E2 -1.2345e+2 パーセ ン ト 値は、 数値の直後に % キ ャ ラ ク タ を 1 個つけた数値です。 オプシ ョ ンに よ っ て は負のパーセ ン ト 値が許 さ れます : leading=120% topoffset=-20.5% ハン ド ル ハン ド ルは、 フ ォ ン ト ・ 画像 ・ ICC プ ロ フ ァ イ ル ・ ア ク シ ョ ン と いっ た さ ま ざ ま な種類のオブジ ェ ク ト を特定 し ます。 技術的には こ れ ら は、 API 関数に よ っ て以前に返 さ れた整数値です。 た と えば、 画像ハン ド ルは PDF_load_image( ) に よ っ て返 さ れ ます。 ハン ド ルはつねに不透明な値 と し て取 り 扱 う 必要があ り 、アプ リ ケーシ ョ ン側で直接変更 し た り 作成 し た り し てはいけ ません (API 関数に よ っ て返 さ れたハン ド ルを用い る 必要が あ り ます) 。 ハン ド ルはつねに、 それぞれのオブジ ェ ク ト の種類に対 し て有効でなければ な り ません。 た と えば、 ど ち ら のハン ド ル も 整数型だか ら と いっ て、 画像ハン ド ルを受け 付け る オプシ ョ ンにグ ラ フ ィ ッ ク ハン ド ルを与え てはいけ ません。 1.1.3 文字サ イ ズ ・ ア ク シ ョ ン デー タ 型 文字サ イ ズ 文字サ イ ズは、 い く つかの方式で定義する こ と がで き 、 それに よ り 、 テ キ ス ト のサ イ ズ を絶対値で指定 し た り 、 何 ら かの外部の実体に対す る 相対値で指定 し た り 、 何 ら かの フ ォ ン ト プ ロ パテ ィ に対す る 相対値で指定 し た り する こ と がで き ます。 通常、 文字 12 第 1 章 : プ ログ ラ ミ ングの概念 サ イ ズは 0 以外でなければな り ませんが、ただ し オプシ ョ ンの解説で特記あ る 場合は こ の 限 り ではあ り ません。 多 く の場合、 文字サ イ ズは float 値 1 個を内容 と し て持ち、 こ れはユーザー座標系にお け る 単位に対す る 比率を表 し ます : fontsize=12 ま たは、 パーセ ン ト 値を内容 と し て持つ こ と も で き 、 こ れが何に対す る パーセ ン ト 値であ る かは コ ン テ キ ス ト に よ っ て異な り ます (例 : PDF_fit_textline( ) では、 はめ込み枠に対す る 幅) : fontsize=8% あ る いは文字サ イ ズは、 オプシ ョ ン リ ス ト と し て指定する こ と も で き 、 こ れはキーワー ド と 数値を内容 と し て持つ必要があ り ます。 こ こ でキーワ ー ド は、 求め る フ ォ ン ト メ ト リ ッ ク を表 1.1 に従っ て記述 し 、 数値は、 求め る サ イ ズです。 選ばれた テ キ ス ト メ ト リ ッ ク が、 与え ら れた値に一致す る よ う 、 PDFlib が適切な文字サ イ ズ を算出 し ます : fontsize={capheight 5} 表 1.1 文字サイズ型のオプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 ascender 数値は、 アセ ン ダの高 さ と し て解釈 さ れます。 bodyheight 数値は、 ベース ラ イ ンの間隔の最小値 と し て解釈 さ れます。 すなわち、 こ の値を行送 り と し て用 いた と きは、 隣 り 合 う 行のデ ィ セ ン ダ と ア セ ン ダがち ょ う ど く っ つ く 形にな り ます。 こ れは、 キーワー ド が与え られない と きのデ フ ォ ル ト の動作です。 capheight 数値は、 大文字の高 さ と し て解釈 さ れます。 xheight 数値は、 小文字の高 さ と し て解釈 さ れます。 ア ク シ ョ ン リ ス ト ア ク シ ョ ン リ ス ト は、 1 個ない し 複数のア ク シ ョ ン を指定 し ます。 リ ス ト 内の各項目は、 イ ベン ト キー ワー ド ( ト リ ガ) 1 個 と 、 ア ク シ ョ ンハン ド ル群の リ ス ト 1 個 と か ら 成 り ます。 こ のア ク シ ョ ンハン ド ルは、 PDF_create_action( ) で作成 し てお く 必要があ り ます。 ア ク シ ョ ンは、 リ ス ト 内に記述 さ れた順に実行 さ れます。 許 さ れ る イ ベ ン ト (例 : docopen) と ア ク シ ョ ンの種類 (例 : JavaScript) は、 オプシ ョ ン ご と にそのつ ど記 し ます。 リ ス ト が、 ト リ ガ 1 個 と ア ク シ ョ ン 3 個を内容 と し て持つ : action={ activate={ 0 1 2 } } リ ス ト が ト リ ガ 3 個を持ち、 それぞれがア ク シ ョ ン を 1 個ずつ持つ : action={ keystroke=0 format=1 validate=2 } 1.1.4 色デー タ 型 色空間の概要 パ ス と テ キ ス ト キ ャ ラ ク タ を塗 る 色 と 描線す る 色を指定で き ます。色はい く つかの色空間で指定で き ます (各箇条書 き 項目の頭に、 PDF_setcolor( ) と 色オプシ ョ ン 群の色空間キー ワー ド を記 し てい ます) : > gray : 0= 黒 と 1= 白の間のグ レー値。 1.1 オプ シ ョ ン リ ス ト 13 > rgb:RGB の 3 値、すなわち、赤・緑・青を指定す る 0 か ら 1 ま での 3 つの値。(0, 0, 0)= 黒、 (1, 1, 1)= 白。 広 く 用い ら れてい る 範囲 0 ~ 255 の RGB カ ラ ー値は、 PDFlib が求め る 範囲 0 ~ 1 へス ケールす る ために 255 で割 る 必要があ り ます。 数値の RGB 値のかわ り に、 RGB 色を その HTML 名ま たは 16 進値を通 じ て指定す る こ と も で き ます。 > cmyk : CMYK の 4 値、 すなわち、 シ ア ン ・ マゼン タ ・ イ エ ロ ー ・ 黒の値を表す、 0= 色な し 、 1= フルカ ラ ーの間の値。 (0, 0, 0, 0)= 白、 (0, 0, 0, 1)= 黒。 こ れは RGB 指定 と は異な る こ と に留意 し て く だ さ い。 > iccbased (PDF_setcolor( ) では不可)・iccbasedgray/rgb/cmyk:ICC ベース カ ラ ーは ICC プ ロ フ ァ イ ルに基づ き ます。 > spotname : 定義済みス ポ ッ ト カ ラ ーの名前 と 濃度値 (パーセ ン ト 値) を、 0= 色な し か ら 1= 最高濃度ま での範囲で表 し た も の。 あ る いは、 カ ス タ ム ス ポ ッ ト カ ラ ーの名前 と 、 濃度値 (パーセ ン ト 値) と 、 代替表現 を上記の他の色空間のいずれか一つで。 > spot : 定義済み ま たはカ ス タ ム の ス ポ ッ ト カ ラ ー と 濃度値 (パーセ ン ト 値) へのハン ド ル。 > lab:D50 標準光源に よ る CIE L*a*b* 黒空間の中のデバ イ ス独立カ ラ ーを受け付け ます。 色は、 範囲 0 ~ 100 の輝度値 1 個 と 、 範囲 -128 ~ 127 の 2 個のカ ラ ー値 a と b で指定 さ れます。 a コ ン ポーネ ン ト の範囲は緑か ら 赤 / マゼン タ ま で (負値が緑を、 正値が マゼン タ を示す)、 b コ ン ポーネ ン ト の範囲は青か ら 黄ま で (負値が青を、 正値が黄を 示す) です。 > pattern : 任意のテ キ ス ト かベ ク ト ルグ ラ フ ィ ッ ク か画像で構成 さ れたオブジ ェ ク ト に よ る タ イ リ ン グパ タ ーン です。 パ タ ーンは PDF_begin_pattern_ext( ) か PDF_shading_ pattern( ) を用いて作成す る こ と がで き 、 パ タ ーンハン ド ルで識別で き ます。 描線 ・ 塗 り 操作のデフ ォ ル ト カ ラ ーは黒です。 こ のデフ ォ ル ト カ ラ ーの色空間は、 PDF/ X ・ PDF/A のカ ラ ー必要条件に合致す る よ う 自動的に選択 さ れます。 注 シ ェ ーデ ィ ング (スムーズブ レ ン ド ) は、 2 つの色の間の遷移を与え る も のです。 これは PDF_shading( ) を用いて作成で き ます。 色オ プ シ ョ ン 色オプシ ョ ンは、 3 種類の形式で定義す る こ と がで き ます : RGB カ ラ ー 名、 16 進 RGB 値、 任意の色空間の色のための フ レ キ シブルなオプシ ョ ン リ ス ト のいずれ かを用い ます。 ク ッ ク ブ ッ ク RGB カ ラ ー値を使用する フ ル コ ー ド サン プルがク ッ ク ブ ッ ク ト ピ ッ ク color/web_ colornames 内にあ り ます。 第一の形式では、 SVG 1.1 のすべての有効な カ ラ ー名を直接与え て、 RGB カ ラ ーを、 あ る いは sRGB ICC プ ロ フ ァ イ ルが選択 さ れてい る 場合には sRGB カ ラ ーを、 指定す る こ と が で き ます。 例 : . strokecolor=pink こ のカ ラ ー名は、 大文字 / 小文字を区別 し ます。 有効な RGB カ ラ ー名の一覧は、 以下の 場所で得 ら れます : www.w3.org/TR/SVG11/types.html#ColorKeywords 14 第 1 章 : プ ログ ラ ミ ングの概念 第二の形式では、 ハ ッ シ ュ 「#」 キ ャ ラ ク タ の直後に、 任意の 3 個の 16 進数ペア 00 ~ FF を与え て、 RGB カ ラ ー値を指定す る こ と がで き ます。 例 : strokecolor=#FFC0CB 第三の形式は、 色空間 と カ ラ ー値を指定す る 色オプシ ョ ン リ ス ト です。 色オプシ ョ ン リ ス ト は、 色空間キーワー ド 1 個 と 、 その色空間に よ っ て決ま る 個数の float 値の リ ス ト 1 個 を内容 と し て持ち ます。 色空間キー ワー ド は、 PDF_setcolor( ) (167 ページ 「8.1 色を設定」 参照) に対す る も の と 同 じ です。 具体的な説明 と 例を表 1.2 に示 し ます。 各関数の説明で 記 し ますが、 オプシ ョ ン リ ス ト に よ っ ては、 色空間キーワー ド 群の部分集合のみに対応 し てい る も の も あ り ます。 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの color/starter_color ト ピ ッ ク にあ り ます。 表 1.2 オプ シ ョ ン リ ス ト 内の色デー タ 型のキーワー ド キーワー ド 後続する値 例 gray グ レースケール色空間の float 値 1 個 { gray 0.5 } rgb RGB 色空間の float 値 3 個 { rgb 1 0 0 } (キーワー ド な し) HTML カ ラ ー名または RGB 色の 16 進値 pink cmyk CMYK 色空間の float 値 4 個 { cmyk 0 1 0 0 } lab Lab 色空間の float 値 3 個 { lab 100 50 30 } spot スポ ッ ト カ ラ ーハン ド ル と 、 濃度値を指定する float 1 個 { spot 1 0.8 } spotname (最大 63 バイ ト 。 Unicode キ ャ ラ ク タ 群な らば も っ と 少な く 、 形式 ・ エ ン コ ーデ ィ ングに依存) スポ ッ ト カ ラ ー名 と 、 濃度 値を指定する float 1 個 { spotname {PANTONE 281 U} 0.5 } spotname 上記の簡単な形の spotname と 同様ですが、 カ ラ ー値を追加す る こ と に よ り 、 カ ス タ ムスポ ッ ト カ ラ ー (すなわち PDFlib が 内部的に知ら ないスポ ッ ト カ ラ ー名) に対する代替色を指定 する こ と がで き ます。 複数のオプ シ ョ ン で同 じ カ ス タ ムス ポ ッ ト カ ラ ー名を定義する と きは、 すべての定義で整合性を と る (すなわち同 じ 代替色を定義する) 必要があ り ます。 { spotname {PDFlib Blue} 0.5 { lab 100 50 30 } } iccbased ICC プ ロ フ ァ イルハン ド ルまたはキーワー ド srgb と 、 ICC プ ロ フ ァ イルの種別 (グ レーか RGB か CMYK か) に応 じ て 1 個 か 3 個か 4 個のカ ラ ー値。 こ の srgb キーワー ド は文書 ス コ ー プ内では使用 し てはいけません。 { iccbased <handle> 0.5 } #FFC0CB { iccbased <handle> 0 0 0.75 } { iccbased srgb 0 0 0.75 } { iccbased <handle> 0 0 0.3 1 } iccbasedgray オプ シ ョ ン iccprofilegray を用いて選択 さ れた ICC プ ロ フ ァ イルを参照する float 値 1 個 { iccbasedgray 0.5 } iccbasedrgb オプ シ ョ ン iccprofilergb を用いて選択 さ れた ICC プ ロ フ ァ イルを参照する float 値 3 個 { iccbasedrgb 1 0 0 } iccbasedcmyk オプ シ ョ ン iccprofilecmyk を用いて選択 さ れた ICC プ ロ フ ァ イルを参照する float 値 4 個 { iccbasedgray 0 1 0 0 } pattern パ タ ーンハン ド ル { pattern 1 } none 色がない こ と を示 し ます none 1.1 オプ シ ョ ン リ ス ト 15 1.1.5 図形デー タ 型 線 線は、 float 値 4 個の リ ス ト であ り 、 こ れ ら は、 線分の始点 と 終点の x 座標 と y 座標を 指定 し ます。 こ れ ら の座標を解釈す る ための座標系 (デフ ォ ル ト 座標系ま たはユーザー座 標系) は、 オプシ ョ ンに よ っ て異な り ますので、 個別に示 し ます : line = {10 40 130 90} 折れ線 折れ線は、 n>2 の偶数 n 個の float 値を内容 と し て持つ リ ス ト です。 リ ス ト 内の それぞれのペアは、 点 1 個の x 座標 と y 座標を指定 し ます。 こ れ ら の点が線分でつながれ ます。 こ れ ら の座標を解釈す る ための座標系 (デフ ォ ル ト 座標系ま たはユーザー座標系) は、 オプシ ョ ンに よ っ て異な り ますので、 個別に示 し ます : polyline = {10 20 30 40 50 60} 以下のオプシ ョ ン リ ス ト は同等です : polyline = {10 20 30r 40r 50r 60r} polyline = {10 20 40 60 90 120} 四辺形は、 特殊な種類の折れ線です。 こ れは長方形が回転 し た も のであ り 、 ち ょ う ど 4 個 の点を指定す る 必要があ り ます。 も う 1 つの特殊な種類は多角形です。 こ れは、 自動的に線分に よ っ て閉 じ ら れ る 折れ 線です。 長方形 長方形は、 float 値 4 個の リ ス ト であ り 、 こ れ ら は、 長方形の左下隅 と 右上隅の x 座標 と y 座標を指定 し ます。 こ れ ら の座標を解釈する ための座標系 (デフ ォ ル ト 座標系ま たはユーザー座標系) は、 オプシ ョ ン に よ っ て異な り ま すので、 個別に示 し ま す。 オプ シ ョ ンのなかには、 パーセ ン ト 値を受け付け る も の も あ り 、 こ れが何に対す る パーセ ン ト 値であ る かは コ ン テ キ ス ト に よ っ て異な り ます (例 : テ キ ス ト フ ロ ーのはめ込み枠) 。 数 値の直後に接尾辞 r を付加す る こ と に よ り 、 相対座標を指定する こ と も で き ます。 座標 リ ス ト の中で、 相対座標は、 直前の x 座標か y 座標に対す る 値 と な り ます。 相対座標が リ ス ト の先頭にあ る と き は、 原点に対す る 値 と な り ますので、 すなわち絶対座標 と な り ます。 例: cropbox={ 0 0 500 600 } box={40% 30% 50% 70%} 以下のオプシ ョ ンは同等です : box={12 34 56r 78r} box={12 34 68 112} 円 円は、 float 値 4 個の リ ス ト と し て指定 さ れ、 1 番目のペアは、 中心の x 座標 と y 座標 を指定 し 、 2 番目のペアは、 円周上の任意の点の x 座標 と y 座標を指定 し ます。 こ れ ら の 座標を解釈す る ための座標系 (デフ ォ ル ト 座標系ま たはユーザー座標系) は、 オプシ ョ ン に よ っ て異な り ますので、 個別に示 し ます : circle={200 325 200 200} 曲線 リ ス ト 曲線 リ ス ト は、 連結 さ れた 2 本以上の 3 次のベジエ曲線分か ら 成 り ます。 1 本のベジエ曲線は、 4 個の制御点に よ っ て指定 さ れます。 1 個目の制御点は曲線の始点で 16 第 1 章 : プ ログ ラ ミ ングの概念 あ り 、 4 個目の点は終点です。 2 個目の点 と 3 個目の点は曲線の形状を制御 し ます。 曲線 リ ス ト では、 1 つの曲線分の最後の点が、 次の曲線分の 1 個目の点 と な り ます : curve={200 700 240 600 80 580 400 660 400 660 440 620} 曲線の描画後は、 最後の制御点が新 し いカ レ ン ト 点 と な り ます。 1.1 オプ シ ョ ン リ ス ト 17 1.2 関数のス コ ープ PDFlib のアプ リ ケーシ ョ ンは、 わか り やすい一定の構造規則に従 う 必要があ り ます。 た と えば、 文書を開始す る 前に終了す る こ と な ど当然で き ません。 PDFlib は、 関数が正 し い順 序で呼び出 さ れ る よ う 、 厳格な ス コ ープ機構で強制 し てい ま す。 各 ス コ ープの定義を表 1.3 に示 し ます。 すべての API 関数の解説に、 各関数の許 さ れ る ス コ ープを示 し ます。 そ の許 さ れ る ス コ ープの外で関数を呼ぶ と 、 例外が発生 し ます。 PDF_get_option( ) の scope キーワ ー ド を使 う と 、 カ レ ン ト の ス コ ープを知る こ と がで き ます。 表 1.3 関数のス コ ープの定義 ス コ ープ名 定義 パス PDF_moveto( ) ・ PDF_circle( ) ・ PDF_arc( ) ・ PDF_arcn( ) ・ PDF_rect( ) ・ PDF_ellipse( ) ・ PDF_elliptical_ arc( ) のいずれかで開始。 158 ページ 「7.5 描画 と ク リ ッ ピ ング」 のいずれかの関数で終了 ページ PDF_begin_page_ext( ) と PDF_end_page_ext( ) の間、 ただ し パスス コ ープの外 テ ン プ レー ト PDF_begin_template_ext( ) と PDF_end_template( ) の間、 ただ し パスス コ ープの外 パ タ ーン PDF_begin_pattern_ext( ) と PDF_end_pattern( ) の間、 ただ し パスス コ ープの外 フォン ト PDF_begin_font( ) と PDF_end_font( ) の間、 ただ し グリフス コ ープの外 グリ フ PDF_begin_glyph_ext( ) と PDF_end_glyph( ) の間、 ただ し パスス コ ープの外 文書 PDF_begin_document( ) と PDF_end_document( ) の間、 ただ し ページ ・ テンプレート ・ パターン ・ フォントス コ ープの外 オブ ジ ェ ク ト PDFlib オブ ジ ェ ク ト が存在 し ている間、 ただ し 文書ス コ ープの外。 C ・ Cobol 言語バイ ンデ ィ ング の場合は、 PDF_new( ) と PDF_delete( ) の間、 ただ し 文書ス コ ープの外 18 第 1 章 : プ ログ ラ ミ ングの概念 1.3 ロ グ記録 ロ グ記録機能を使 う と 、 API の呼び出 し を ト レースす る こ と がで き ます。 ロ グ フ ァ イ ルの 内容は、 デバ ッ グ目的に も 有用です し 、 PDFlib GmbH のサポー ト か ら 求め ら れ る こ と も あ り ます。 ロ グ記録のオプシ ョ ンは、 以下の方法で与え る こ と がで き ます : > PDF_set_option( ) のグ ロ ーバル logging オプシ ョ ンに対す る オプシ ョ ン リ ス ト と し て。 例: p.set_option("logging={filename=tracelog remove}") > PDFLIBLOGGING と い う 環境変数で。こ う す る と 、いちばん初めに何 ら かの API 関数を呼 び出 し た時か ら ロ グ出力が始め ら れます。 表 1.4 logging オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 (空 リ ス ト ) ログ出力を有効に し ます disable (論理値) ログ記録の出力を無効に し ます enable (論理値) ログ出力の出力を有効に し ます filename (文字列) ログ フ ァ イルの名前。 特殊名 と し て stdout と stderr も認識 さ れます。 CICS ではこ の オプ シ ョ ンは無視 さ れ、 ログ出力はつねに stderr へ書き出 さ れます。 既存の内容があ る と きは、 出力はそれに追加 さ れます. デ フ ォ ル ト : pdflog z/OS の場合 PDFlib.log Mac ・ i5/iSeries の場合 \PDFlib.log Windows の場合 /tmp/PDFlib.log それ以外の全シ ス テムの場合 あ るいはログ フ ァ イルの名前は、 PDFLIBLOGFILE と い う 環境変数で与え る こ と も で き ます。 flush (論理値) true な ら、 出力が終わる たびに ログ フ ァ イルが閉 じ ら れ、 次の出力で ま た開かれるの で、 出力が確実に 放出 さ れます。 これは、 ログ フ ァ イルの中断箇所を見て プ ログ ラ ムのク ラ ッ シ ュ を追いたい と き に有用ですが、 ただ し 処理はかな り 遅 く な り ます。 false な ら ログ フ ァ イルは 1 回だけ開かれます。 デ フ ォル ト : false includepid (論理値。 MVS では不可) ログ フ ァ イル名にプ ロ セス ID を含めます。 複数のプ ロ セスが同一のロ グ フ ァ イル名を用いる場合には こ れを有効にするべき です。 デ フ ォ ル ト : false includetid (論理値。 MVS では不可) ログ フ ァ イル名にス レ ッ ド ID を含めます。 同一プ ロ セス内の複数のス レ ッ ド が同一のログ フ ァ イル名を用いる場合にはこ れを有効にするべき です。 デ フ ォル ト : false includeoid (論理値。 MVS では不可) ログ フ ァ イル名にオブ ジ ェ ク ト ID を含めます。 同一ス レ ッ ド 内の複数 の PDFlib オブ ジ ェ ク ト が同一のログ フ ァ イル名を用いる場合には こ れを有効にするべき です。 デ フ ォ ル ト : false remove (論理値) true な ら、 既存のロ グ フ ァ イルは、 新 し い出力が書き出 さ れる前に削除 さ れます。 デ フ ォ ル ト : false removeonsuccess (論理値) 生成 さ れた ログ フ ァ イルを、 例外が発生 し た場合を除き、 PDF_delete( ) で削除 し ます。 こ れは、 マルチス レ ッ ド ア プ リ ケーシ ョ ンにおいて時たま起 こ る問題や、 散発的に し か起 こ ら な い問題を分析する ために有用で し ょ う 。 こ のオプ シ ョ ン を、 includepid/includetid/includeoid と 適宜組み合わせて用いる こ と を推奨 し ます。 stringlimit (整数) 行あた り の文字数の制限値か、 または 0 で無制限。 デ フ ォ ル ト : 0 1.3 ログ記録 19 表 1.4 logging オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 classes (オプ シ ョ ン リ ス ト ) 整数型のオプ シ ョ ン を入れたオプ シ ョ ン リ ス ト 。 こ こ で各オプ シ ョ ンはロ グ 記録種別を記述 し 、 その値は粒度レ ベルを記述 し ます。 レ ベル 0 な ら そのログ記録種別は無効に な り 、 正の値な ら その種別は有効にな り ます。 レ ベルを上げるほど出力は詳 し く な っ てい き ます。 以下のオプ シ ョ ンが用意 さ れています (デ フ ォ ル ト : {api=1 warning=1}) : api すべての API 呼び出 し を、 その関数引数 と 戻 り 値 と と も に ログ記録 し ます。 api=2 にす る と 、 すべての API ト レース行の頭に タ イ ムス タ ン プが生成 さ れる と と も に、 非推奨の 関数 ・ オプ シ ョ ンはその旨が示 さ れます。 filesearch SearchPath ま たは PVF によ る フ ァ イル検索に関連 し たすべての試みを ログ記録 し ます。 20 resource Windows レ ジ ス ト リ と UPR 定義に よ るすべての リ ソ ース検索の試みを、 その リ ソ ース 検索の結果 と と も に ログ記録 し ます。 tagging 構造エ レ メ ン ト ( タ グ) 操作 user userlog オプ シ ョ ン で与えている、 ユーザー指定のログ記録出力。 warning すべての PDFlib 警告を ログ記録 し ます。 警告 と は、 無視または内部対応で き る エ ラ ー 状況です。 warning=2 にする と 、 例外を発生 さ せずに メ ッ セージ テキス ト を中継 さ せて PDF_get_errmsg( ) で取得 さ せる関数からの メ ッ セージ と 、 フ ァ イルを開 こ う と し て失敗 し たすべての試みの原因も ログ記録 さ れます。 第 1 章 : プ ログ ラ ミ ングの概念 2 一般関数 2.1 例外処理 こ の節に関連す る オプシ ョ ン を表 2.1 に示 し ます。 こ れ ら のオプシ ョ ンは多 く の関数で用 い る こ と がで き 、 それぞれのオプシ ョ ン リ ス ト の開設でその旨示 さ れてい ます。 こ れは、 PDF_set_option( ) に対す る グ ロ ーバルオプシ ョ ン と し て も 与え る こ と がで き ます (25 ペー ジ 「2.3 グ ロ ーバルオプシ ョ ン」 参照)。 表 2.1 PDF_set_option( ) の例外関連オプ シ ョ ン キー 説明 errorpolicy (キーワー ド ) エ ラ ー発生時の さ ま ざ ま な関数の動作を制御 し ます。 errorpolicy グ ローバルオプ シ ョ ンは、 さ ま ざ ま な関数の errorpolicy オプ シ ョ ンに よ っ てオーバラ イ ド する こ と がで き、 こ のオプ シ ョ ンに対するデ フ ォ ル ト と し てはた ら き ます。 使え るキーワー ド (デ フ ォ ル ト : legacy) : legacy (非推奨) 関数の動作は PDFlib 6 と 同 じ です。 return エ ラ ーが起き る と 関数は返 り ます。 エ ラ ー コ ー ド を返せる関数 (PDF_load_image( ) 等) は -1 (PHP では 0) を返 し ます。 結果文字列を返す関数 (PDF_fit_table( ) 等) は文字列 _error を返 し ます。 ア プ リ ケーシ ョ ンの開発者は、 戻 り 値が -1 (PHP では 0) または _error でないかを検査 し てエ ラ ー状況を検出する必要があ り ます。 エ ラ ーが起き た と きは、 問題の詳 し い内容は PDF_get_errmsg( ) で取得で き ます。 新規のア プ リ ケーシ ョ ン にはこ の設定を推奨 し ます。 exception エ ラ ーが起き る と 、 関数は例外を発生 さ せます。 こ の例外は、 バイ ンデ ィ ング固有の し く みを用いて ク ラ イ ア ン ト コ ー ド 内で補足する必要があ り ます。 その時点ま でに生成 さ れた作 り かけの PDF 出力は使え な く な り ますので、 破棄する必要があ り ます。 C++ Java C# int get_errnum( ) Perl PHP int get_errnum( ) C int PDF_get_errnum(PDF *p) 最後に発生 し た例外か、 ま たは関数呼び出 し 失敗の原因の番号を得ます。 戻り値 も っ と も 最近のエ ラ ー条件のエ ラ ー コ ー ド 。 スコープ PDFlib で例外が発生 し てか ら 、 PDFlib オブジ ェ ク ト が死ぬま での間。 あ る いは関数がエ ラ ー コ ー ド -1 (PHP では 0) を返 し てか ら 、 こ の節で示 し てい る も のを除 く 任意の関数を 呼び出すま での間に、 こ の関数を呼び出す こ と も で き ます。 バインディング C++ ・ Java ・ Objective C ・ .NET ・ PHP ・ REALbasic/Xojo では、 こ の関数は PDFlibException オブジ ェ ク ト で get_errnum( ) と し て も 得 ら れます。 2.1 例外処理 21 C++ Java C# String get_errmsg( ) Perl PHP string get_errmsg( ) C const char *PDF_get_errmsg(PDF *p) 最後に発生 し た例外か、 ま たは関数呼び出 し 失敗の原因のテ キ ス ト を得ます。 戻り値 も っ と も 最近のエ ラ ー条件の記述 さ れたテ キ ス ト 。 スコープ PDFlib で例外が発生 し てか ら 、 PDFlib オブジ ェ ク ト が死ぬま での間。 あ る いは関数がエ ラ ー コ ー ド -1 (PHP では 0) を返 し てか ら 、 こ の節で示 し てい る も のを除 く 任意の関数を 呼び出すま での間に、 こ の関数を呼び出す こ と も で き ます。 バインディング C++ ・ Java ・ Objective C ・ .NET ・ PHP ・ REALbasic/Xojo では、 こ の関数は PDFlibException オブジ ェ ク ト で get_errmsg( ) と し て も 得 ら れます。 C++ Java C# String get_apiname( ) Perl PHP string get_apiname( ) C const char *PDF_get_apiname(PDF *p) 最後の例外を発生 さ せたか、 ま たは失敗 し た API 関数の名前を得ます。 戻り値 例外を発生 さ せた API 関数の名前か、 ま たは も っ と も 最近に呼び出 さ れて失敗 し エ ラ ー コ ー ド を返 し た関数の名前。 スコープ PDFlib で例外が発生 し てか ら 、 PDFlib オブジ ェ ク ト が死ぬま での間。 あ る いは関数がエ ラ ー コ ー ド -1 (PHP では 0) を返 し てか ら 、 こ の節で示 し てい る も のを除 く 任意の関数を 呼び出すま での間に、 こ の関数を呼び出す こ と も で き ます。 バインディング C++ ・ Java ・ Objective C ・ .NET ・ PHP ・ REALbasic/Xojo では、 こ の関数は PDFlibException オブジ ェ ク ト で get_apiname( ) と し て も 得 ら れます。 C++ void *get_opaque( ) C void *PDF_get_opaque(PDF *p) PDFlib 内に格納 さ れてい る 不透明な アプ リ ケーシ ョ ン ポ イ ン タ を取 り 出 し ます。 戻り値 PDF_new2( ) を呼び出 し た時に与え ておいた、 PDFlib 内に格納 さ れてい る 不透明な アプ リ ケーシ ョ ン ポ イ ン タ 。 詳細 PDFlib は、 こ の不透明ポ イ ン タ を一切 さ わ ら ずに、 その ま ま で ク ラ イ ア ン ト に与え ます。 こ れは、 マルチ ス レ ッ ド の ア プ リ ケ ーシ ョ ン で プ ラ イ ベー ト な ス レ ッ ド 独自デー タ を PDFlib オブジ ェ ク ト 内に格納す る ために使え る で し ょ う 。 特に、 ス レ ッ ド 独自の例外処理 に有用です。 スコープ 任意 バインディング C ・ C++ バ イ ンデ ィ ン グでのみ得 ら れます。 22 第 2 章 : 一般関数 2.2 Unicode 変換 C++ string convert_to_unicode(string inputformat, string input, string optlist) Java string convert_to_unicode(string inputformat, byte[ ] input, string optlist) Perl PHP string convert_to_unicode(string inputformat, string input, string optlist) C const char *PDF_convert_to_unicode(PDF *p, const char *inputformat, const char *input, int inputlen, int *outputlen, const char *optlist) 任意のエン コ ーデ ィ ン グの文字列を、 さ ま ざ ま な形式の Unicode 文字列へ変換 し ます。 inputformat 入力文字列の解釈を指定す る Unicode テ キ ス ト 形式ま たはエン コ ーデ ィ ン グ名 : > Unicode テ キ ス ト 形式 : utf8 ・ ebcdicutf8 ・ utf16 ・ utf16le ・ utf16be ・ utf32 > font オプシ ョ ンが指定 さ れてい る 場合のみ : builtin ・ glyphid > すべての内部的に知 ら れてい る 8 ビ ッ ト エン コ ーデ ィ ン グ、ホ ス ト シ ス テ ム上で利用可 能なエン コ ーデ ィ ン グ、 お よ び日中韓エン コ ーデ ィ ン グ cp932 ・ cp936 ・ cp949 ・ cp950 > キー ワー ド autoは以下の動作を指定 し ます: も し 入力文字列がUTF-8かUTF-16のBOM を含んでい る な ら 、 それを用いて適切な形式を決定 し 、 そ う でない場合にはカ レ ン ト のシ ス テ ム コ ー ド ページであ る と 見な さ れます。 input Unicode へ変換 し たい文字列 (COM の場合 : バ リ ア ン ト 。 REALbasic/Xojo の場合 : MemoryBlock)。 inputlen (C 言語バ イ ンデ ィ ン グ のみ) 入力文字列の長 さ を バ イ ト 単位で表 し た も の。 inputlen=0 の場合には、 ヌ ル終端文字列を与え る 必要があ り ます。 outputlen (C 言語バ イ ンデ ィ ン グのみ) 返 さ れ る 文字列の長 さ が格納 さ れ る メ モ リ 位置 への C ス タ イ ルのポ イ ン タ 。 optlist 入力解釈 と Unicode 変換のためのオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 表 4.6 に従っ た テ キ ス ト フ ィ ル タ オプシ ョ ン群 : charref ・ escapesequence > 表 2.2 に従っ た Unicode 変換オプシ ョ ン群 : bom ・ errorpolicy ・ font ・ inflate ・ outputformat 戻り値 入力文字列か ら 、 指定 さ れた引数群 と オプシ ョ ン群に従っ て作成 さ れた Unicode 文字列。 入力文字列が、 指定 さ れた入力形式に準拠 し ていない と き は (た と えば無効な UTF-8 文 字列)、 errorpolicy=return の場合には空の出力文字列が返 さ れ、 errorpolicy=exception の場 合には例外が発生 し ます。 詳細 こ の関数は、汎用の Unicode 文字列変換のために有用で し ょ う 。 こ れは、然る べき Unicode 変換機能を有 さ ない環境で作業をす る ユーザーの便宜のために提供 さ れてい ます。 スコープ 任意 バインディング C バ イ ンデ ィ ン グ : 返 さ れ る 文字列は、 最大 10 項目を持つ リ ン グバ ッ フ ァ に格納 さ れま す。 も し 10 個 よ り 多い文字列が変換 さ れ る と 、 こ のバ ッ フ ァ は再利用 さ れますので、 ク ラ イ ア ン ト は、 10 個を超え る 文字列を並行 し て利用 し たい場合には、 こ の文字列群を複 製す る 必要があ り ます。 た と えば、 こ の関数への呼び出 し が 10 回ま でであれば、 それを ス テー ト メ ン ト に対す る 引数 と し て用いて差 し 支え あ り ません。 なぜな ら 、 10 個を超え る 文字列が同時に使用 さ れないな ら ば、返 さ れ る 文字列は独立であ る こ と が保証 さ れ る か ら です。 2.2 Unicode 変換 23 Unicode 非対応言語バ イ ンデ ィ ン グ : こ の関数を使 う と 、 Unicode 非対応言語バ イ ンデ ィ ン グ で名前文字列 と オプシ ョ ン リ ス ト を作成す る こ と がで き ま す。 こ れは、 オプ シ ョ ン bom=optimize かつ outputformat=utf8 の場合、 必要な BOM を作成 し ます。 C++ バ イ ンデ ィ ン グ :引数 inputformat と optlist は通常どお り wstring と し て渡す必要 があ り ますが、 input と 返 さ れ る デー タ は型 string を持つ必要があ り ます。 表 2.2 PDF_convert_to_unicode( ) のオプ シ ョ ン オプ シ ョ ン 説明 bom (キーワー ド 。 outputformat=utf32 では無視 さ れます) 出力文字列にバイ ト 順序マー ク (BOM) を 付加するにあた っ てのポ リ シー。 使え るキーワー ド (デ フ ォ ル ト : none) : errorpolicy add BOM を付加。 keep 入力文字列に BOM があ る な ら BOM を付加。 none BOM を付加 し ない。 optimize outputformat=utf8 か ebcdicutf8 かつ出力文字列が範囲 < U+007F 内のキ ャ ラ ク タ のみを 内容 と し ている場合を除いて BOM を付加。 (キーワー ド ) 変換エ ラ ーの際の動作 (デ フ ォ ル ト : errorpolicy グ ローバルオプ シ ョ ンの値。 表 2.1 参照) : return 文字参照が解決で き ない場合、 または指定 さ れた フ ォ ン ト 内に コ ー ド かグ リ フ ID が存在 し ない場合に、 代替キ ャ ラ ク タ が用い ら れます。 変換エ ラ ーの場合には空文字列が返 さ れます。 exception 変換エ ラ ーの場合には例外が発生 し ます。 font (フ ォ ン ト ハン ド ル。 inputformat=builtin ・ glyphid の場合には必須) 指定 さ れた フ ォ ン ト に応 じ て、 フ ォ ン ト 固有の変換を適用 し ます。 inflate (論理値。 inputformat=utf8 の場合のみ) true の場合には、 無効な UTF-8 入力文字列は例外を発 生 さ せず、 指定 さ れた出力形式のイ ン フ レー ト さ れたバイ ト 文字列が生成 さ れます。 こ のイ ン フ レー ト さ れた文字列は、 その入力文字列内のバイ ト 群の ASCII 解釈に照応する Unicode キ ャ ラ ク タ 群を内容 と し ます。 こ れはデバ ッ グのために有用で し ょ う 。 デ フ ォ ル ト : false outputformat (キーワー ド ) 生成 さ れる文字列の Unicode テキス ト 形式 : utf8 ・ ebcdicutf8 ・ utf16 ・ utf16le ・ utf16be ・ utf32。 空文字列は utf16 と 等価です。 デ フ ォル ト : Default: utf16 Unicode 対応言語バイ ンデ ィ ン グ : 出力形式は強制的に utf16 にな り ます。 C++ 言語バイ ンデ ィ ング : 以下の出力形式のみが許 さ れます : ebcdicutf8 ・ utf8 ・ utf16 ・ utf32。 24 第 2 章 : 一般関数 2.3 グ ロ ーバルオ プ シ ョ ン PDFlib は、ラ イ ブ ラ リ と PDF 出力の書式を制御す る ための さ ま ざ ま な グ ロ ーバルオプシ ョ ン を提供 し てい ます。 こ れ ら のオプシ ョ ンの設定は、 PDFlib オブジ ェ ク ト が存在 し てい る 間ずっ と 、 も し く は ク ラ イ ア ン ト が明示的に設定を変更す る ま で保持 さ れます。 C++ Java C# void set_option(String optlist) Perl PHP set_option(string optlist) C void PDF_set_option(PDF *p, const char *optlist) 1 個ない し 複数のグ ロ ーバルオプシ ョ ン を設定 し ます。 optlist 表 2.3 に従っ た グ ロ ーバルオプシ ョ ン群を指定す る オプシ ョ ン リ ス ト 。 以下のオ プシ ョ ン を用い る こ と がで き ます : > 表 2.3 に従っ た、 リ ソ ース処理 と リ ソ ース カ テ ゴ リ のためのオプシ ョ ン群 : CMap ・ Encoding ・ enumeratefonts ・ FontAFM ・ FontnameAlias ・ FontOutline ・ FontPFM ・ HostFont ・ ICCProfile ・ resourcefile ・ saveresources ・ searchpath > 表 2.3 に従っ た、 フ ァ イ ル処理 と ラ イ セ ン シ ン グのためのオプシ ョ ン群 : avoiddemostamp ・ filenamehandling ・ license ・ licensefile > 表 2.3 に従っ た テ キ ス ト フ ィ ル タ オプシ ョ ン群 : charref ・ escapesequence ・ glyphcheck ・ stringformat ・ textformat > 表 2.3 に従っ た、 イ ン タ ラ ク テ ィ ブ要素のためのオプシ ョ ン群 : hypertextencoding ・ hypertextformat ・ usehypertextencoding ・ usercoordinates > 表 2.3 に従っ たその他のオプシ ョ ン群 : asciifile・autospace・compress・ kerning・logging・shutdownstrategy・usehostfonts・userlog > 表 2.1 に従っ た、 エ ラ ー処理のためのオプシ ョ ン : errorpolicy > 表 8.1 に従っ た、 色処理のためのオプシ ョ ン群 : iccprofilecmyk ・ iccprofilegray ・ iccprofilergb ・ preserveoldpantonenames ・ spotcolorlookup 詳細 リ ソ ー ス カ テ ゴ リ オプシ ョ ン群を除 き 、 新 し い値は、 以前に設定 さ れたオプシ ョ ン値を オーバ ラ イ ド し ます。 以下のオプシ ョ ンは、同名のテ キ ス ト オプシ ョ ンのためのデフ ォ ル ト 値を与え ます (表 4.6 ・ 表 4.7 参照) : charref ・ escapesequence ・ glyphcheck ・ kerning ・ textformat と 同時に、 こ れ ら のオプシ ョ ンは、 カ レ ン ト のテ キ ス ト ス テー ト におけ る 同名のオプ シ ョ ン を変更 し ま す。 望 ま ない副作用を避け る ため、 コ ン テ キ ス ト 文字列のためのオプ シ ョ ン を PDF_set_text_option( ) でのみ設定す る こ と を推奨 し ます。 スコープ 任意、 ただ し い く つかのオプシ ョ ンでは制約 さ れた ス コ ープが適用 さ れます。 表 2.3 PDF_set_option( ) のグローバルオプ シ ョ ン オプ シ ョ ン 定義 asciifile (論理値。 i5/iSeries ・ zSeries でのみ対応) テキス ト フ ァ イル (PFA ・ AFM ・ UPR ・ エ ン コ ーデ ィ ン グ) を ASCII エ ン コ ーデ ィ ング と 見な し ます。 デ フ ォ ル ト : i5/iSeries では true、 zSeries では false 2.3 グローバルオプ シ ョ ン 25 表 2.3 PDF_set_option( ) のグローバルオプ シ ョ ン オプ シ ョ ン 定義 autospace true の場合、かつ カ レ ン ト フ ォ ン ト が U+0020 のためのグ リ フ を含んでいる場合には、PDFlib は、各 テキス ト 出力の後に自動的に空白キ ャ ラ ク タ を付加 し ます。 こ れは タ グ付き PDF を生成する ため に有用で し ょ う 。 空白が付加 さ れる こ と によ っ て、 その show 操作の後のカ レ ン ト テキス ト 位置が 変わる こ と に留意 し て く だ さ い。 デ フ ォ ル ト : false avoiddemostamp (論理値) true の場合、 有効な ラ イ セ ン スキーが見つか ら ない と き に例外が発生 し ます。 false の 場合、 すべてのページ上にデモ ス タ ン プが作成 さ れます。 こ のオプ シ ョ ンは、 PDF_begin_ document( ) への最初の呼び出 し の前に設定する必要があ り ます。 デ フ ォル ト : false charref (論理値) true の場合、 すべての内容 ・ 名前 ・ ハイパーテキス ト 文字列に対 し て、 数値 ・ 文字実体 参照 と グ リ フ 名参照の置き換え を有効に し ます。 文字参照の置き換え を望ま ない箇所でそれが起 こ ら ないよ う にする には ( フ ァ イル名な ど)、 PDF_set_text_option( ) で こ のオプ シ ョ ン を内容文字 列に対 し てのみ設定する こ と を推奨 し ます。 詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 デ フ ォ ル ト : false CMap (名前文字列のペアの リ ス ト ) リ ソ ース定義を空白か等号 「=」 で区切っ たキー/値ペアの リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 内部 リ ス ト に新たな エ ン ト リ が追加 さ れます。 compress (整数) 圧縮レ ベル。 圧縮な し = 0 か ら、 1 =最高速、 等々、 最高圧縮= 9 ま で。 このオプ シ ョ ン は、 パス スルーモー ド で処理 さ れる画像デー タ では効力を持ち ません。 デ フ ォ ル ト : 6。 ス コ ー プ : オブジェクト以外任意 Encoding (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 enumeratefonts (論理値) true の場合、 PDFlib は、 SearchPath リ ソ ース を通 じ てア ク セス で き るすべてのデ ィ レ ク ト リ 内で フ ォ ン ト アウ ト ラ イ ン フ ァ イルを探 し ます。 これは、 多量のフ ォ ン ト が利用可能の場 合にはかな り の時間を要 し ますので、 注意 し て使用する必要があ り ます。 生成 さ れる リ ソ ース リ ス ト を、 saveresources オプ シ ョ ン を用いて フ ァ イルへ保存する こ と も で き ます。 推奨 さ れる戦略 は、 利用可能な フ ォ ン ト の数が変わっ た時にのみ リ ソ ース リ ス ト を作成 ・ 保存 し 、 PDFlib オブ ジ ェ ク ト ご と に生成文書ご と に こ れを行 う こ と は し ない こ と です。 有効な フ ォ ン ト アウ ト ラ イ ン フ ァ イルそれぞれについて、 PDFlib は、 その font-family 名 ・ fontweight 名 ・ font-style 名を決定 し 、 以下の方式に従 っ て API フ ォ ン ト 名を合成 し ます : <font-family>[,<font-weight>][,font-style] PDFlib は、 この合成フ ォ ン ト 名 と そのフ ォ ン ト の フルパス名 と 紐付ける形式 <fontname>=<pathname> の FontOutline リ ソ ース を作成 し ます。PostScript Type 1 フ ォ ン ト の場合に は、 照応する FontAFM または FontPFM リ ソ ース も 作成 さ れます。 こ の API フ ァ イル名に加えて、 PDFlib は、 その フ ォ ン ト の PostScript 名が合成名 と 異な る場合には、 こ の PostScript 名を持つ FontnameAlias リ ソ ース も作成 し ます : <PostScript fontname>=<artificial fontname> 結果 と し て、 そのフ ォ ン ト は、 その合成 フ ォ ン ト 名か PostScript 名のいずれかを通 じ て読み込め る よ う にな り ます。 デ フ ォ ル ト : false escapesequence 26 (論理値) true の場合、 すべての内容 ・ 名前 ・ ハイパーテキス ト 文字列内のエ スケープ シーケ ン ス の置き換え を有効に し ます。 エ スケープ シーケ ン スの置き換え を望ま ない箇所でそれが起 こ ら な いよ う にする には ( フ ァ イル名な ど)、 PDF_set_text_option( ) で こ のオプ シ ョ ン を内容文字列に対 し てのみ設定する こ と を推奨 し ます。 デ フ ォル ト : false 第 2 章 : 一般関数 表 2.3 PDF_set_option( ) のグローバルオプ シ ョ ン オプ シ ョ ン 定義 filenamehandling (キーワー ド ) フ ァ イル名のエ ン コ ーデ ィ ング を示 し ます。 Unicode 非対応言語バイ ンデ ィ ングに おいて UTF-8 BOM な し で関数引数 と し て与え られた フ ァ イル名は、 その フ ァ イルシ ス テムにおい て違法 と な るキ ャ ラ ク タ に対 し てガー ド する ため、 かつその フ ァ イル名の Unicode 版を作成する た めに、 こ のオプ シ ョ ンに従っ て解釈 さ れます。 そのフ ァ イル名が、 こ こ で指定 さ れたエ ン コ ー デ ィ ング外のキ ャ ラ ク タ を含んでいる と きは、 エ ラ ーが発生 し ます。 デ フ ォ ル ト : Windows ・ OS X では unicode、 i5/iSeries では auto、 それ以外では honorlang : ascii 7 ビ ッ ト ASCII basicebcdic コ ー ド ページ 1047 に従っ た基本 EBCDIC、 ただ し Unicode 値≦ U+007E のみ basicebcdic_37 コ ー ド ページ 0037 に従っ た基本 EBCDIC、 ただ し Unicode 値≦ U+007E のみ honorlang (i5/iSeries では不可) 環境変数 LC_ALL ・ LC_CTYPE ・ LANG を解釈 し て フ ァ イル名に適 用。 LANG で指定 さ れた コ ー ド セ ッ ト が利用可能な場合にはそれがフ ァ イル名に適用 さ れます。 legacy host エ ン コ ーデ ィ ング を用いて フ ァ イル名を解釈。 unicode (EBCDIC-) UTF-8 形式の Unicode エ ン コ ーデ ィ ン グ すべての有効な エ ン コ ーデ ィ ング名 PDFlib によ っ て認識 さ れる任意のエ ン コ ーデ ィ ング (表 4.2 参照)、 ただ し Cmap ・ glyphid ・ builtin を除 く FontAFM (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 FontnameAlias (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 FontOutline (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 FontPFM (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 glyphcheck (キーワー ド ) 説明は表 4.6 を参照 し て く だ さ い。 PDF_set_text_option( ) で こ のオプ シ ョ ン を内容文 字列に対 し てのみ設定する こ と を推奨 し ます。 詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 デ フ ォル ト : replace HostFont (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 hypertextencoding (文字列。 Unicode 非対応言語バイ ンデ ィ ングに対 し てのみ) ハイパーテキス ト 文字列のためのエ ン コ ーデ ィ ング。 空文字列は unicode と 等価です。 デ フ ォ ル ト : auto hypertextformat (キーワー ド 。 Unicode 非対応言語バイ ンデ ィ ングに対 し てのみ) 関数引数 と し てのハイパーテキ ス ト 文字列のための形式。 使え るキーワー ド は bytes ・ utf8 ・ ebcdicutf8 ・ utf16 ・ utf16le ・ utf16be ・ auto。 デ フ ォ ル ト : auto ICCProfile (名前文字列のペアの リ ス ト ) 空白か等号 「=」 で区切 っ た、 リ ソ ース定義に対するキー / 値ペア の リ ス ト (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 複数回呼び出す と 、 内部 リ ス ト に新たな項目 群が追加 さ れます。 2.3 グローバルオプ シ ョ ン 27 表 2.3 PDF_set_option( ) のグローバルオプ シ ョ ン オプ シ ョ ン 定義 iccprofilecmyk iccprofilegray iccprofilergb( (ICC プ ロ フ ァ イルハン ド ル) iccbasedcmyk/gray/rgb 色オプ シ ョ ン で用いる ための CMYK かグ レーか RGB 色空間を指定する ICC プ ロ フ ァ イル。 デ フ ォ ル ト : ICC 色空間な し kerning (論理値) true の場合、 readkerning オプ シ ョ ン を用いて開かれている フ ォ ン ト に対 し て カ ーニ ン グ を有効に し ます。 そ う でない場合にはカ ーニ ング を無効に し ます。 デ フ ォル ト : true license (文字列) PDFlib か PDFlib+PDI か PPS のラ イ セ ン スキー (詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い)。 キーを設定で き るのは、 初めて PDF_begin_document( ) を呼び出す前です。 ラ イ セ ン スキーがないためにデモ ス タ ン プが生成 さ れて し ま う 事故を防ぐ ため、 avoiddemostamp オプ シ ョ ン を用いて く だ さ い。 licensefile (名前文字列) ラ イ セ ン スキーの入っ た フ ァ イルの名前 (詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い)。 ラ イ セ ン ス フ ァ イルを設定で き るのは、 初めて PDF_begin_document( ) を呼び出す前 に 1 回だけです。 logging (オプ シ ョ ン リ ス ト ) 表 1.4 に従っ た ログ記録オプ シ ョ ン群 maxfilehandles (非サポー ト 。 Windows にのみ実装) 同時に開かれている (C ラ ン タ イ ム内で) フ ァ イルの数の新 し い最大値。 こ の数は 20 以上、 2048 以下である必要があ り ます。 こ の新 し い値が C ラ ン タ イ ム によ っ て受け付け ら れなか っ た と きは、 例外が発生 し ます。 ス コ ープ : オブ ジ ェ ク ト resourcefile (名前文字列) PDFlib UPR リ ソ ース フ ァ イルの相対フ ァ イル名ま たは絶対 フ ァ イル名。 リ ソ ース フ ァ イルはただ ちに読み込まれます。 既存の リ ソ ースは保持 さ れますが、 再設定 さ れた と き には 新 し い値でオーバラ イ ド さ れます。 saveresources (名前文字列) PDFlib UPR リ ソ ース フ ァ イルの相対または絶対フ ァ イル名。 この リ ソ ース フ ァ イル は、 いずれかの リ ソ ースへの最初のア ク セ スの直前に読み込まれます。 既存の リ ソ ースは保持 さ れます。 その値は、 再設定 さ れている場合には、 新 し い ものでオーバラ イ ド さ れます。 searchpath (名前文字列の リ ス ト ) 読み取 り たい フ ァ イルが位置する、 1 個ない し 複数のデ ィ レ ク ト リ の相対 パス名または絶対パス名。 検索パスは複数回設定する こ と がで き、 その項目群は蓄積 さ れて、 設 定 さ れた順に用い ら れます (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 デ ィ レ ク ト リ 名が空白キ ャ ラ ク タ を含んでいる場合の問題を避ける ために、 エ ン ト リ が 1 個 し かな く て も二重中括弧を用い る こ と を推奨 し ます。 空の文字列 リ ス ト (すなわち {{}}) は、 デ フ ォル ト エ ン ト リ 群を含めて既 存の検索パス項目群をすべて削除 し ます。 Windows では、 検索パスはレ ジ ス ト リ 項目で設定する こ と も で き ます。 デ フ ォ ル ト : プ ラ ッ ト フ ォ ーム依存。 PDFlib チ ュ ー ト リ アルを参照 shutdownstrategy (整数) すべての PDFlib オブ ジ ェ ク ト に対 し て一度割 り 当て られたグ ローバル リ ソ ース を解放する 方式。 各グローバル リ ソ ースはそれぞれ、 それが初めて必要 と さ れた時に要求に よ っ て初期化 さ れます。 このオプ シ ョ ンは、 1 つのプ ロ セス内のすべての PDFlib オブ ジ ェ ク ト に対 し て、 同 じ 値 に設定する必要があ り ます。 そ う で ない場合には動作は未定義です (デ フ ォル ト : 0) : 28 0 参照カ ウ ン タ が、 い く つの PDFlib オブ ジ ェ ク ト がそのグローバル リ ソ ース を使っ てい るかを追跡 し ます。 最後の PDFlib オブ ジ ェ ク ト が削除 さ た と き、 その リ ソ ースは解放 さ れます。 1 リ ソ ース群はプ ロ セスの終了ま で保持 さ れます。 こ れはパフ ォ ーマ ン ス を若干向上 さ せ ますが、 最後の PDFlib オブ ジ ェ ク ト が削除 さ れた後に よ り 多 く の メ モ リ を必要 と し ま す。 第 2 章 : 一般関数 表 2.3 PDF_set_option( ) のグローバルオプ シ ョ ン オプ シ ョ ン 定義 stringformat (キーワー ド 。 Unicode 非対応言語バイ ンデ ィ ングのみ) 名前文字列 ・ 内容文字列 ・ ハイパーテキ ス ト 文字列 ・ オプ シ ョ ン リ ス ト な ど、 API におけるあ ら ゆる文字列を解釈する ために用い られる形 式。 使え るキーワー ド (デ フ ォル ト : legacy) : ebcdicutf8 (i5/iSeries ・ zSeries のみ) すべての文字列 と オプ シ ョ ン リ ス ト は、 BOM あ り またはな し の EBCDIC-UTF-8 形式 と 見な さ れます。 legacy 名前文字列 ・ 内容文字列 ・ ハイパーテキス ト 文字列 ・ オプ シ ョ ン リ ス ト は、 textformat ・ hypertextformat ・ hypertextencoding オプ シ ョ ンに従っ て扱われます。 utf8 (i5/iSeries ・ zSeries では不可) すべての文字列 と オプ シ ョ ン リ ス ト は、 BOM あ り または な し の UTF-8 形式 と 見な さ れます。 オプ シ ョ ン textformat ・ hypertextformat ・ hypertextencoding は許容 さ れません。テキス ト フ ローオプ シ ョ ン fixedtextformat は強 制的に true にな り ます。 レ ガシ日中韓 CMap を用いて フ ォ ン ト を読み込む こ と はで き ません。 C 言語バイ ンデ ィ ングでは、 length 引数に 0 よ り 大き な値を与え られた場合 には、 関数引数 と し ての名前文字列はなお UTF-16 文字列 と し て解釈 さ れます。 8 ビ ッ ト エ ン コ ーデ ィ ングの文字列を UTF-8 へ変換するには PDF_convert_to_unicode( ) を用い ます。 usercoordinates (論理値) false の場合、 ハイパーテキス ト 長方形のための座標群は、 デ フ ォ ル ト 座標系で表 さ れ ている と 見な さ れます。 そ う で ない と きは、 カ レ ン ト ユーザー座標系が用い られます。 デ フ ォ ル ト : false userlog ログ フ ァ イルへ複製 さ れる文字列 usehostfonts (論理値) true の場合、 フ ォ ン ト 検索にホス ト フ ォ ン ト が含まれます。 デ フ ォ ル ト : true usehypertextencoding (論理値。 Unicode 非対応言語バイ ンデ ィ ングのみ) true の場合、 hypertextencoding オプ シ ョ ン で指定 さ れたエ ン コ ーデ ィ ングが名前文字列に対 し て も用い られます。 false の場合、 UTF-8 BOM のない名前文字列のためのエ ン コ ーデ ィ ングは host にな り ます。 デ フ ォ ル ト : false textformat (キーワー ド 。 Unicode 非対応言語バイ ンデ ィ ングのみ) 内容文字列を解釈する ために用い られる 形式。 使え るキーワー ド : bytes ・ utf8 ・ ebcdicutf8 (i5/iSeries ・ zSeries のみ) ・ utf16 ・ utf16le ・ utf16be ・ auto。 デ フ ォ ル ト : auto C++ Java C# double get_option(String keyword, String optlist) Perl PHP float get_option(string keyword, string optlist) C double PDF_get_option(PDF *p, const char *keyword, const char *optlist) 何 ら かのオプシ ョ ンかその他の値を取得 し ます。 keyword 取得 し たいオプシ ョ ン を指定 し た キー ワ ー ド 。 以下のキーワ ー ド が使え ます : そ れ ら の 意 味 に つ い て は PDF_set_option( ) ・ PDF_set_text_option( ) ・ PDF_set_graphics_ option( ) の説明を参照 し て く だ さ い。 照応す る オプシ ョ ンが存在 し ないキーワー ド につい ては表 2.4 に説明 し てい ます : > 指定 し た リ ソ ース の n 番目のエン ト リ の文字列番号のためのキーワー ド 。 こ こ で n は resourcenumber オプシ ョ ンに照応 し ます : Encoding ・ FontAFM ・ FontnameAlias ・ FontOutline ・ FontPFM ・ HostFont ・ ICCProfile ・ searchpath > 論理値オプシ ョ ン値のためのキー ワー ド 。 true な ら 1 を、 false な ら 0 を返 し ます : asciifile ・ autospace ・ avoiddemostamp ・ charref ・ decorationabove ・ escapesequence ・ fakebold ・ kerning ・ overline ・ pdi ・ preserveoldpantonenames ・ spotcolorlookup ・ strikeout ・ tagged ・ topdown ・ underline ・ usercoordinates ・ usehostfonts ・ usehypertextencoding 2.3 グローバルオプ シ ョ ン 29 > 整数 ・ 浮動小数点オプシ ョ ン値のためのキーワー ド : charspacing・compress・ctm_a・ctm_b・ctm_c・ctm_d・ctm_e・ctm_f・currentx・currenty・ icccomponents・flatness・font・fontsize・horizscaling・iccprofilecmyk・iccprofilegray・iccprofilergb・ italicangle ・leading ・ linecap ・ linejoin・ linewidth・ major・minor ・miterlimit ・ pageheight ・ pagewidth ・ revision ・ scope ・ textrendering ・ textrise ・ textx ・ texty ・ underlineposition ・ underlinewidth ・ wordspacing > オプシ ョ ン値に対す る 文字列番号を返すキー ワ ー ド 。 その文字列値が得 ら れない と き は -1 を返 し ます : cliprule ・ errorpolicy ・ filenamehandling ・ fillrule ・ glyphcheck ・ hypertextencoding ・ hypertextformat ・ resourcefile ・ scope ・ textformat > カ レ ン ト 構造エ レ メ ン ト を ク エ リ す る ためのキーワー ド ( タ グ付 き PDF モー ド での み) : activeitemid ・ activeitemindex ・ activeitemisinline ・ activeitemkidcount ・ activeitemname ・ activeitemstandardname 表 2.4 PDF_get_option( ) の さ ら な るキーワー ド キーワー ド 説明 activeitemid (整数) カ レ ン ト で ア ク テ ィ ブ な構造ア イ テムのア イ テム ID。 こ れは、 PDF_activate_item() か、 PDF_begin_item() の parent サブオプ シ ョ ン と 、 tag オプ シ ョ ン で用いる こ と がで き ます。 ルー ト エ レ メ ン ト がまだ作成 さ れていない場合には -1 が返 さ れます。 ス コ ープ : 文書・ページ activeitemindex (整数) カ レ ン ト で ア ク テ ィ ブ な構造ア イ テムの、 その親の中での、 ゼロベースの番号。 こ れは、 index タ グオプ シ ョ ン で用いる こ と がで き ます。 カ レ ン ト ア イ テムが擬似エ レ メ ン ト かルー ト エ レ メ ン ト である場合、 またはルー ト エ レ メ ン ト がまだ作成 さ れていない場合には、 -1 が返 さ れます。 ス コ ープ : 文書・ページ activeitemisinline (整数) カ レ ン ト で ア ク テ ィ ブ な構造ア イ テムがイ ン ラ イ ン エ レ メ ン ト であ る な ら 1、 そ う でない な ら 0。 ス コ ープ : 文書・ページ activeitemkidcount (整数) カ レ ン ト で ア ク テ ィ ブ な構造エ レ メ ン ト の、 この時点ま でに作成 さ れた子エ レ メ ン ト の数 (擬似エ レ メ ン ト を数えない)。 ルー ト エ レ メ ン ト がまだ作成 さ れていない場合には -1 が返 さ れま す。 ス コ ープ : 文書・ページ activeitemname カ レ ン ト でア ク テ ィ ブ な構造エ レ メ ン ト か擬似エ レ メ ン ト の種別名に対する文字列番号、 あ るい はルー ト エ レ メ ン ト がま だ作成 さ れていない場合には -1。 ス コ ープ : 文書・ページ activeitemstandardname カ レ ン ト でア ク テ ィ ブ なア イ テムがロールマ ッ プ さ れている標準エ レ メ ン ト 種別名に対する文字 列番号、 あるいはルー ト エ レ メ ン ト がまだ作成 さ れていないか、 カ レ ン ト エ レ メ ン ト がロール マ ッ ピ ングが得られない カ ス タ ムエ レ メ ン ト である場合には -1。 ロールマ ッ プがア ク テ ィ ブ で な い と きは、 元の種別名が返 さ れます。 ス コ ープ : 文書 ・ ページ ctm_a ctm_b ctm_c ctm_d ctm_e ctm_f (float) ベ ク ト ルグ ラ フ ィ ッ ク に対する カ レ ン ト 変換マ ト リ ッ ク ス (CTM) の構成要素群。 ス コ ー プ : ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・ パス currentx currenty (float) カ レ ン ト 点のそれぞれ x ・ y 座標 (カ レ ン ト 座標系の単位で)。 ス コ ープ : ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・ パス icccomponents (整数) iccprofile オプ シ ョ ン で与え られたハン ド ルに よ っ て参照 さ れる ICC プ ロ フ ァ イル内の色 要素の数。 major minor revision 30 (整数) PDFlib のそれぞれ メ ジ ャ ー ・ マ イ ナー ・ リ ビ ジ ョ ン番号。 ス コ ープ : 任意 ・ null1 第 2 章 : 一般関数 表 2.4 PDF_get_option( ) の さ ら な るキーワー ド キーワー ド 説明 pageheight pagewidth (float) カ レ ン ト ページ (MediaBox の寸法) かテ ン プ レー ト かグ リ フ のページサイ ズ。 pdi (整数) 基礎を なす ラ イ ブ ラ リ を ビル ド し た際に PDI がイ ン ク ルー ド さ れていたな ら 1 を返 し ま す。 これは、 PDFlib GmbH によ っ て頒布 さ れている PDFlib ・ PDFlib+PDI ・ PPS のバイ ナ リ すべてに ついて、 ラ イ セ ン スキーに よ ら ず真です。 そ う でない場合には 0 を返 し ます。 ス コ ープ : 任意 ・ null1 scope (整数) カ レ ン ト ス コ ープの名前に対する文字列番号 (表 1.3 参照) textx texty (float) カ レ ン ト テキス ト 位置の x ・ y 座標。 ス コ ープ : ページ・パターン・テンプレート・グリフ ス コ ープ : オブジェクト以外任意 1. C 言語バイ ンデ ィ ン グ : PDF * 引数 NULL か 0 と と も に呼び出す こ と がで き ます。 optlist 表 2.5 に従っ てオプシ ョ ン を指定 し たオプシ ョ ン リ ス ト 。 戻り値 keyword に よ っ て要求 さ れた何 ら かのオプシ ョ ンの値。 要求 さ れた キー ワー ド に対 し て値 が得 ら れない と き は、 こ の関数は -1 を返 し ます。 要求 さ れた キー ワー ド がテ キ ス ト を生 成す る 場合には、 文字列番号が返 さ れ、 その照応する 文字列は PDF_get_string( ) を用いて 取得す る 必要があ り ます。 スコープ 任意、 ただ し い く つかのキー ワー ド では、 制限 さ れた ス コ ープが適用 さ れます。 表 2.5 PDF_get_option( ) のオプ シ ョ ン オプ シ ョ ン 説明 textstate (論理値) true の場合、 以下のオプ シ ョ ンの値がカ レ ン ト テキス ト ス テー ト か ら取得 さ れ、 そ う で ない場合にはグ ローバルオプ シ ョ ンから 取得 さ れます (デ フ ォ ル ト : false) : charref・escapesequence・glyphcheck・kerning・textformat iccprofile (ICC プ ロ フ ァ イルハン ド ル) icccomponents キーワー ド で用いる ための ICC プ ロ フ ァ イル resourcenumber (整数) 取得 し たい リ ソ ースの番号。 リ ソ ースは 1 から数え ます。 デ フ ォ ル ト : 1 C++ Java C# String get_string(int idx, String optlist) Perl PHP string get_string(int idx, string optlist) C const char *PDF_get_string(PDF *p, int idx, const char *optlist) 文字列値を取得 し ます。 idx PDF_get_option( ) か PDF_info_*( ) 関数のいずれか一つに よ っ て返 さ れ る 文字列番号、 あ る いはオプシ ョ ン を与え る 場合には -1。 optlist 表 2.6 に従っ てオプシ ョ ン を指定 し たオプシ ョ ン リ ス ト 。 戻り値 idx ・ optlist に よ っ て要求 さ れた何 ら かの文字列の値。 スコープ 要求 さ れたオプシ ョ ンに よ り ます。 バインディング C : 返 さ れた文字列は、 次に何 ら かの API 関数を呼び出すま で有効です。 2.3 グローバルオプ シ ョ ン 31 表 2.6 PDF_get_string( ) のオプ シ ョ ン オプ シ ョ ン version 説明 (論理値) <major>.<minor>.<revision> 形式に、 場合に よ っ ては beta ・ rc な ど と い っ た さ ら な る 修飾子を末尾付加 し た、 フ ルな PDFlib バージ ョ ン文字列。 ス コ ープ : 任意 ・ null1 1. C 言語バイ ンデ ィ ン グ : PDF * 引数 NULL か 0 を用いて呼び出す こ と がで き ます。 C++ Java C# void set_parameter(String key, String value) Perl PHP set_parameter(string key, string value) C void PDF_set_parameter(PDF *p, const char *key, const char *value) 非推奨。 PDF_set_option( ) ・ PDF_set_text_option( ) ・ PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void set_value(String key, double value) Perl PHP set_value(string key, float value) C void PDF_set_value(PDF *p, const char *key, double value) 非推奨。 PDF_set_option( ) ・ PDF_set_text_option( ) ・ PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# String get_parameter(String key, double modifier) Perl PHP string get_parameter(string key, float modifier) C const char * PDF_get_parameter(PDF *p, const char *key, double modifier) 非推奨。 PDF_get_option( ) ・ PDF_get_string( ) を使用 し て く だ さ い。 C++ Java C# double get_value(String key, double modifier) Perl PHP float get_value(string key, float modifier) C double PDF_get_value(PDF *p, const char *key, double modifier) 非推奨。 PDF_get_option( ) を使用 し て く だ さ い。 32 第 2 章 : 一般関数 2.4 PDFlib オ ブ ジ ェ ク ト を作成 ・ 削除 C PDF *PDF_new(void) 新規 PDFlib オブジ ェ ク ト を作成 し ます。 詳細 こ の関数は、PDFlib 内部のデフ ォ ル ト のエ ラ ー処理ルーチン と メ モ リ 割 り 当てルーチン を 使っ て、 新規 PDFlib オブジ ェ ク ト を作成 し ます。 戻り値 PDFlib オブジ ェ ク ト のハン ド ル。 以後の PDFlib の呼び出 し で使え ます。 こ の関数は、 メ モ リ 不足で成功 し なか っ た と き は、 NULL を返すか、 ま たは例外を発生 さ せます。 スコープ null。 こ の関数はオブ ジ ェ ク ト ス コ ープ を開始 さ せます。 照応す る PDF_delete( ) と 必ずペ アに し て呼び出す必要があ り ます。 バインディング C:実行時に PDFlib DLL を動的に ロ ー ド す る には PDF_new_dl( ) を使い ます。PDF_new_dl( ) は、すべての API 関数へのポ イ ン タ を代入 さ れた PDFlib_api 構造体へのポ イ ン タ を返 し ま す。 DLL が ロ ー ド で き ない と き や、 メ ジ ャ ーま たはマ イ ナーバージ ョ ン番号の不一致が検 出 さ れた と き は、 NULL が返 さ れます。 その他の言語バ イ ンデ ィ ン グ : こ の関数は PDF コ ン ス ト ラ ク タ 内に隠れていて得 ら れま せん。 C PDF *PDF_new2(void (*errorhandler)(PDF *p, int errortype, const char *msg), void* (*allocproc)(PDF *p, size_t size, const char *caller), void* (*reallocproc)(PDF *p, void *mem, size_t size, const char *caller), void (*freeproc)(PDF *p, void *mem), void *opaque) ク ラ イ ア ン ト か ら 与え る エ ラ ー処理ルーチ ン と メ モ リ 割 り 当てルーチ ン を使っ て、 新規 PDFlib オブジ ェ ク ト を作成 し ます。 errorhandler ユーザー定義の エ ラ ー処理関数への ポ イ ン タ 。 こ の エ ラ ー処理関数は、 PDF_TRY/PDF_CATCH セ ク シ ョ ン内では無視 さ れます。 ユーザー定義の メ モ リ 割 り 当て関数へのポ イ ン タ 。 allocproc reallocproc freeproc ユーザー定義の メ モ リ 再割 り 当て関数へのポ イ ン タ 。 ユーザー定義の メ モ リ 解放関数へのポ イ ン タ 。 opaque 何 ら かのユーザーデー タ へのポ イ ン タ 。 こ のデー タ は以後、 PDF_get_opaque( ) で取得で き ます。 戻り値 PDFlib オブジ ェ ク ト のハン ド ル。 以後の PDFlib の呼び出 し で使え ます。 こ の関数は、 メ モ リ 不足で成功 し なか っ た と き は、 C では NULL を返 し 、 C++ では例外を発生 さ せます。 詳細 こ の関数は、 ク ラ イ ア ン ト か ら 与え ら れたエ ラ ー処理ルーチン と メ モ リ 割 り 当てルーチン を使っ て、 新規 PDFlib オブジ ェ ク ト を作成 し ます。 PDF_new( ) と 異な り 、 呼び出す側か ら 独自のエ ラ ー処理や メ モ リ 割 り 当てのためのプ ロ シージ ャ を与え る こ と が可能です。 こ のエ ラ ー処理関数 と メ モ リ プ ロ シージ ャ 群は、ど ち ら か ま たは両方が NULL で も か ま い ま せん。 その場合、 PDFlib はデフ ォ ル ト のルーチン を用い ます。 メ モ リ ルーチンは、 3 個 と も 与え る か、 3 個 と も 与え ないか、 そのど ち ら かにする 必要があ り ます。 2.4 PDFlib オブ ジ ェ ク ト を作成 ・ 削除 33 スコープ null。 こ の関数はオブ ジ ェ ク ト ス コ ープ を開始 さ せます。 照応す る PDF_delete( ) と 必ずペ アに し て呼び出す必要があ り ます。 バインディング C++ : こ の関数は PDF コ ン ス ト ラ ク タ で間接的に得 ら れます。 すべての引数関数を与え る 必要は必ず し も あ り ません。 デフ ォ ル ト 値 NULL が与え ら れ る か ら です。 与え る 関数はす べて 「C」 ス タ イ ルの関数でなければな ら ず、 C++ の メ ソ ッ ド であ っ てはいけ ません。 C void PDF_delete(PDF *p) PDFlib オブジ ェ ク ト を削除 し 、 内部 リ ソ ース をすべて解放 し ます。 詳細 こ の関数は、 PDFlib オブジ ェ ク ト を削除 し 、 文書に関連する PDFlib 内部の リ ソ ース をす べて解放 し ます。 こ の関数は、 1 つの PDFlib オブジ ェ ク ト につ き 1 回 し か呼び出 し てはい け ません。 PDF_delete( ) は、 例外が発生 し た と き に も 、 ク リ ーン ア ッ プのために呼び出す 必要があ り ます。PDF_delete( ) 自体は、例外を一切発生 さ せない こ と が保証 さ れてい ます。 PDF 文書を複数生成す る と き は、 文書の終わ り ご と に PDF_delete( ) を呼び出す必要はな く 、 すべての PDF 文書が完了 し た と き だけでか ま い ません。 スコープ 任意。 こ の呼び出 し の後には、 同一の PDFlib オブジ ェ ク ト を用いての API 関数への呼び 出 し は、 こ の PDF オブジ ェ ク ト を用いては許 さ れな く な り ます。 バインディング C:PDF_new_dl( ) で実行時に PDFlib DLL を動的に ロ ー ド し ていた場合は、PDF_delete_dl( ) を使っ て PDFlib オブジ ェ ク ト を削除 し て く だ さ い。 C++ : こ の関数は PDF デス ト ラ ク タ で間接的に得 ら れます。 Java : こ の関数は ラ ッ パの コ ー ド で自動的に呼び出 さ れます。 ただ し 、 Java の フ ァ イ ナ ラ イ ザの不備を回避す る 目的で、 ク ラ イ ア ン ト の コ ー ド か ら 明示的に呼び出す こ と も で き ま す。 Objective-C : こ の関数は、PDFlib の release メ ソ ッ ド が呼び出 さ れた時に呼び出 さ れます。 Perl ・ PHP : こ の関数は、 PDFlib オブジ ェ ク ト が ス コ ープ外に出 る と 自動的に呼び出 さ れ ます。 34 第 2 章 : 一般関数 2.5 PDFlib 仮想 フ ァ イ ルシ ス テム (PVF) ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの general/starter_pvf ト ピ ッ ク にあ り ます。 C++ Java C# void create_pvf(string filename, const void *data, size_t size, string optlist) Java C# void create_pvf(String filename, byte[ ] data, String optlist) Perl PHP create_pvf(string filename, string data, string optlist) C void PDF_create_pvf(PDF *p, const char *filename, int len, const void *data, size_t size, const char *optlist) メ モ リ 内で与えたデー タ か ら 、 名前付 き の仮想の読み取 り 専用フ ァ イ ルを作成 し ます。 filename (名前文字列) 仮想フ ァ イ ルの名前。 こ れは任意の文字列で、 以後の PDFlib の 呼び出 し で仮想フ ァ イ ルを参照す る ために使え ます。 仮想フ ァ イ ルの名前は、 それがデ ィ レ ク ト リ ま たは フ ァ イ ル名の区切 り キ ャ ラ ク タ と し て ス ラ ッ シ ュ 「/」 キ ャ ラ ク タ のみを 用いてい る と き は、 SearchPath 機構に従い ます。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位)。 len=0 にする と null 終 了文字列を与え る 必要があ り ます。 data 仮想フ ァ イ ルに入れたいデー タ への参照。 C ・ C++ では こ れは メ モ リ 位置へのポ イ ン タ です。 Java では こ れはバ イ ト 配列です。 Perl ・ Python ・ PHP では こ れは文字列です。 COM では こ れはバ リ ア ン ト です。 REALbasic/Xojo では こ れは メ モ リ ブ ロ ッ ク です。 size (C ・ C++ のみ) デー タ の入っ た メ モ リ 領域の長 さ をバ イ ト 単位で表 し た も の。 optlist 表 2.7 に従っ たオプシ ョ ン リ ス ト 。 次のオプシ ョ ンが使え ます。 copy 詳細 仮想フ ァ イ ル名は、 入力フ ァ イ ルを使 う あ ら ゆ る API 関数に与え る こ と がで き ます。 生成 さ れ る PDF 出力を内容 と す る PVF フ ァ イ ルを作成する には、 PDF_begin_document( ) の createpvf オプシ ョ ン を用い ます。 こ う し た関数のなかには、 デー タ が不要にな る ま で仮 想フ ァ イ ルを ロ ッ ク で き る も の も あ り ます。 仮想フ ァ イ ルは、 PDF_delete_pvf( ) で明示的 に、 ま たは PDF_delete( ) で自動的に削除 さ れ る ま で メ モ リ 内に保持 さ れます。 PDFlib オブジ ェ ク ト はそれぞれ、 PVF フ ァ イ ルのセ ッ ト を独立 し て保持 し ます。 仮想 フ ァ イ ルは、 複数の PDFlib オブジ ェ ク ト 間で共有す る こ と はで き ませんが、 それを使っ て同 じ PDFlib オブジ ェ ク ト か ら 複数の文書を作成する こ と はで き ます。 別々の PDFlib オ ブジ ェ ク ト を用いて動作 し てい る 複数の ス レ ッ ド は、PVF の使用を同期 さ せ る 必要はあ り ません。 filename と い う 仮想フ ァ イ ルがすでにあ る と き は、 例外が発生 し ます。 こ の関数 は、 通常のデ ィ ス ク フ ァ イ ルですでに filename が使われていないか と い う 検証は行い ま せん。 copy オプシ ョ ン を与えていない と き は、 ペアにな る PDF_delete_pvf( ) を呼び出 し て成 功す る ま では、 与え たデー タ を呼び出 し 側で変更 し た り 解放 (削除) し てはいけ ません。 こ の規則に従わない と おそ ら く ク ラ ッ シ ュ が発生 し ます。 スコープ 任意 2.5 PDFlib 仮想フ ァ イルシ ス テム (PVF) 35 表 2.7 PDF_create_pvf( ) のオプ シ ョ ン オプ シ ョ ン 説明 copy (論理値) PDFlib が、 与えたデー タ の内部的な コ ピーを ただ ちに作成 し ます。 こ の場合、 呼び出 し 側は与えたデー タ を こ の呼び出 し のす ぐ後に捨て て も かまいません。 この copy オプ シ ョ ンは、 COM ・ .NET ・ Java バイ ンデ ィ ングでは自動的に true に設定 さ れます (その他のバイ ンデ ィ ングで はデ フ ォ ル ト : false)。 それ以外の言語バイ ンデ ィ ン グでは、 copy オプ シ ョ ン を与えなければ デー タ は コ ピー さ れません。 C++ Java C# int delete_pvf(String filename) Perl PHP int delete_pvf(string filename) C int PDF_delete_pvf(PDF *p, const char *filename, int len) 名前付 き の仮想フ ァ イ ルを削除 し て、 そのデー タ 構造を解放 し ます。 filename (名前文字列。グ ロ ーバル filenamehandling オプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) PDF_create_pvf( ) に与え て あ る の と 同 じ 仮想フ ァ イ ル名。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位)。 len=0 にす る と null 終 了文字列を与え る 必要があ り ます。 戻り値 その仮想フ ァ イ ルがあ る が ロ ッ ク さ れてい る と き は -1 (PHP では 0)、 それ以外な ら 1。 詳細 フ ァ イ ルが ロ ッ ク さ れていなければ、 PDFlib は filename に関連づいたデー タ 構造を ただ ちに削除 し ます。 filename と い う 有効な仮想フ ァ イ ルがない と き は、 こ の関数は警告 も 出 さ ず何 も し ません。 こ の関数を呼び出 し て成功 し た後は、 filename は使い ま わす こ と も で き ます。 仮想フ ァ イ ルは、 PDF_delete( ) ですべて自動的に削除 さ れます。 細かい意味は、 ペアにな る PDF_create_pvf( ) を呼び出 し た時に copy オプシ ョ ン を与え ておいたかに よ っ て異な り ます。 copy オプシ ョ ン を与え ておいた な ら 、 フ ァ イ ルのため の管理デー タ 構造 も フ ァ イ ル内容本体 (デー タ ) も 両方解放 さ れますが、 そ う でないな ら 内容は ク ラ イ ア ン ト が解放す る と い う 前提なので解放 さ れません。 スコープ 任意 C++ Java C# double info_pvf(String filename, String keyword) Perl PHP float info_pvf(string filename, string keyword) C double PDF_info_pvf(PDF *p, const char *filename, int len, const char *keyword) 仮想フ ァ イ ルか PDFlib 仮想フ ァ イ ルシ ス テ ム (PVF) の特性を ク エ リ し ます。 filename (名前文字列) 仮想フ ァ イ ルの名前。 こ の フ ァ イ ル名は、 keyword=filecount の 場合には空でか ま い ません。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位で)。 len=0 の場合には、 ヌ ル終端文字列を与え る 必要があ り ます。 keyword 詳細 表 2.7 に従っ た キー ワー ド 。 こ の関数は、 仮想フ ァ イ ルか PDFlib 仮想フ ァ イ ルシ ス テ ム (PVF) の さ ま ざ ま な特性を返 し ます。 特性は keyword で指定 さ れます。 スコープ 任意 36 第 2 章 : 一般関数 表 2.8 PDF_info_pvf( ) のキーワー ド キーワー ド 説明 filecount カ レ ン ト PDFlib オブ ジ ェ ク ト のために維持 さ れている PDFlib 仮想フ ァ イルシ ス テム内の フ ァ イル の総数。 filename 引数は無視 さ れます。 exists そのフ ァ イルが PDFlib 仮想フ ァ イルシ ス テム内に存在 し ている (かつ削除 さ れていない) 場合に は 1、 そ う で ないな ら 0 size (存在する仮想フ ァ イルに対 し てのみ) 指定 さ れた仮想フ ァ イルのサイ ズをバイ ト 単位で。 iscopy (存在する仮想フ ァ イルに対 し てのみ) 指定 さ れた仮想フ ァ イルが作成 さ れた際に copy オプ シ ョ ンが与え られたな ら 1、 そ う でないな ら 0 lockcount (存在する仮想フ ァ イルに対 し てのみ) 指定 さ れた仮想フ ァ イルに対 し て PDFlib 関数群によ っ て内 部的にかけ られた ロ ッ クの数。 フ ァ イルは、 こ のロ ッ ク カ ウ ン ト が 0 の と き にのみ削除で き ます。 2.5 PDFlib 仮想フ ァ イルシ ス テム (PVF) 37 2.6 PDF オ ブ ジ ェ ク ト 作成 API (POCA) オ ブ ジ ェ ク ト 種別 と 凍結オ ブ ジ ェ ク ト PDF オブジ ェ ク ト 作成 API (PDF object creation API = POCA) は、 PDF オブジ ェ ク ト を作成す る ための低 レ ベル イ ン タ フ ェ ー ス です。 POCA は以下のオブジ ェ ク ト 種別に対応 し てい ます : > 単純オブジ ェ ク ト 種別 : 論理値 ・ 整数 ・ 名前 ・ float ・ 文字列。 > コ ン テナオブジ ェ ク ト 種別 : 配列 ・ 辞書 ・ ス ト リ ーム。 > PDFlib ブ ロ ッ ク 独自の種別 : パーセ ン ト 値 ・ 色。 生成 さ れ る PDF オブジ ェ ク ト は以下の よ う に使用で き ます : > PDF_begin/end_dpart( )のdpmオプシ ョ ン を用いて、PDF/VTのための文書部分 メ タ デー タ を作成す る ために。 > PDF_begin/end_page_ext( )のblocksオプシ ョ ン を用いて、PPSで使用する ためのPDFlibブ ロ ッ ク を作成す る ために。 > PDF_create_action( ) の richmediaargs オプシ ョ ン を用いて、リ ッ チ メ デ ィ ア注釈に関連付 け ら れた ActionScript ま たは JavaScript のための引数群を指定す る ために。 PDF コ ン テナオブジ ェ ク ト を、 上に挙げたオプシ ョ ンのいずれかに与え る と 、 その コ ン テ ナオブジ ェ ク ト 自体 と 、その コ ン テナか ら 直接ま たは間接に参照 さ れてい る すべてのオブ ジ ェ ク ト が、 すなわち、 その コ ン テナに よ っ て作成 さ れたオブジ ェ ク ト ツ リ ー全体が凍結 さ れます。 凍結 さ れたオブジ ェ ク ト は、 上記のオプシ ョ ン で再び使 う こ と はで き ますが、 PDF_poca_insert( ) ま たは PDF_poca_remove( ) を用いて変更す る こ と はで き な く な り ます。 C++ Java C# int poca_new(String optlist) Perl PHP int poca_new(string optlist) C int PDF_poca_new(PDF *p, const char *optlist) 種別が辞書か配列か ス ト リ ームの新規 PDF コ ン テナオブジ ェ ク ト を作成 し 、 オブジ ェ ク ト 群を挿入 し ます。 optlist コ ン テナを作成 し て中身を入れ る ためのオプシ ョ ン リ ス ト 。 > 表 2.9 に従っ た、 コ ン テナを作成す る ためのオプシ ョ ン : containertype ・ usage > 表 2.11 に従っ た、 コ ン テナ内にオブジ ェ ク ト 群を挿入する ためのオプシ ョ ン : direct ・ hypertextencoding ・ index ・ key ・ type ・ value ・ values 戻り値 POCA コ ン テナハン ド ル。 こ れは、 PDF_poca_delete( ) を用いて削除 さ れ る ま で使用で き ます。 詳細 こ の関数は、 指定 さ れた コ ン テナ種別の、 空の PDF コ ン テナオブジ ェ ク ト を作成 し ます。 こ の コ ン テナは、同一呼び出 し 内でただちに中身を入れ る こ と も で き ます し 、後か ら PDF_ poca_insert( ) への呼び出 し で中身を入れ る こ と も で き ます。 PDF/VT 種別が辞書で usage=dpm のオブジ ェ ク ト に対す る POCA コ ン テナハン ド ルは、PDF_begin/ end_dpart( ) の dpm オプシ ョ ン を用いて文書部分 メ タ デー タ (DPM) と し て与え る こ と が で き ます。 スコープ 任意 38 第 2 章 : 一般関数 表 2.9 PDF_poca_new( ) のオプ シ ョ ン オプ シ ョ ン 説明 containertype (キーワー ド 。 必須) コ ン テナの種別 : dict か array か stream。 指定 さ れていない配列ス ロ ッ ト と 、 新規オブ ジ ェ ク ト を挿入する こ と な く 除去 さ れている配列ス ロ ッ ト は、 PDF 出力内でキー ワー ド null を含みます。 注 : containertype=stream は未実装です。 usage (キーワー ド 。 必須) その新規 コ ン テナが使用 さ れる コ ン テキス ト 。 こ のオプ シ ョ ンは、 その コ ン テナが意図する用途に適合 し ているかを確認するい く つかのチ ェ ッ ク を有効に し ます。 blocks (containertype=dict の場合のみ意味を持ち ます。 製品でのみ) そのブ ロ ッ ク辞書 (PDF_begin/end_page_ext( ) の blocks オプ シ ョ ンに与え ら れる コ ン テナ) は、 1 個ない し 複数の PDFlib ブ ロ ッ ク 定義を内容 と する必要があ り ます。 このオプ シ ョ ン usage=blocks は、 こ の新規辞書内に直接または間接に挿入 さ れるすべての コ ン テナオブ ジ ェ ク ト に対 し て も与え る必要があ り ます。 (containertype=dict の場合のみ意味を持ち ます) その新規辞書 と 、 その中に含まれる すべての辞書の中のすべてのキーは、 ASCII キ ャ ラ ク タ で構成 さ れ、 XML NMTOKEN の 規則に準拠する必要があ り ます。 こ れによ り 、 その辞書が PDF/VT のための文書部分 メ タ デー タ (DPM) 辞書 と し て使用で き る こ と が保証 さ れます。 こ のオプ シ ョ ン usage=dpm、 こ の新規辞書内に直接または間接に挿入 さ れるすべての コ ン テナオブ ジ ェ ク ト に対 し て も 与え る必要があ り ます。 richmediaargs (containertype=array の場合のみ意味を持ち ます) その配列は、 種別が文字列か整数 か float か論理値のオブ ジ ェ ク ト を内容 と する こ と がで き ます。 ただ し 、 PDF か ら Flash へ引数群を渡すには以下を推奨 し ます : ActionScript 関数引数のための引数の種別が文 字列か数値か整数であ る場合には、 POCA では type=string を使用 (すなわち数値を文 字列内に ラ ッ プする必要があ る)。 引数が論理値 と し て宣言 さ れている場合には、 POCA では type=boolean を使用 (すなわち論理値を文字列 と し て ラ ッ プ し ない)。 POCA 種別の整数 と float は、 Acrobat がそれら を ActionScript へ正 し く 受け渡 さ ないの で、 使用するべき ではあ り ません。 dpm C++ Java C# void poca_delete(int container, String optlist) Perl PHP poca_delete(int container, string optlist) C void PDF_poca_delete(PDF *p, int container, const char *optlist) PDF コ ン テナオブジ ェ ク ト を削除 し ます。 container PDF_poca_new( ) を用いて取得 さ れた有効な PDF コ ン テナハン ド ル。 optlist 表 2.10 に従っ たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ン を使え ます : recursive 詳細 その コ ン テナは削除 さ れ、 も う 使え な く な り ます。 その コ ン テナが他の辞書ま たは配列か ら 参照 さ れてい る 場合には、 その削除 さ れ る コ ン テナへのすべての辞書参照は除去 さ れ、 その削除 さ れ る コ ン テナへのすべての配列参照は null オブジ ェ ク ト へ置 き 換え ら れます。 POCA コ ン テナオブジ ェ ク ト は、 PDF_end_document( ) で自動的に削除 さ れません。 スコープ 任意。 照応す る PDF_poca_new( ) への呼び出 し と 必ずペアにす る 必要があ り ます。 表 2.10 PDF_poca_delete( ) のオプ シ ョ ン オプ シ ョ ン 説明 recursive (論理値) true の場合、 その コ ン テナオブ ジ ェ ク ト 自体 と 、 それから参照 さ れているすべてのオブ ジ ェ ク ト が再帰的に削除 さ れます。 こ れは、 も はや必要で ないオブ ジ ェ ク ト ツ リ ー全体を削除す る ためのシ ョ ー ト カ ッ ト と し て有用で し ょ う 。 デ フ ォ ル ト : false 2.6 PDF オブ ジ ェ ク ト 作成 API (POCA) 39 C++ Java C# void poca_insert(int container, String optlist) Perl PHP poca_insert(int container, string optlist) C void PDF_poca_insert(PDF *p, int container, const char *optlist) PDF コ ン テナオブジ ェ ク ト 内に単純ま たは コ ン テナオブジ ェ ク ト を挿入 し ます。 container PDF_poca_new( ) を用いて取得 さ れた有効な POCA コ ン テナハン ド ル。凍結 さ れた コ ン テナ (38 ページ 「オブジ ェ ク ト 種別 と 凍結オブジ ェ ク ト 」 参照) は、 も う 変更 で き ませんので、 許容 さ れません。 optlist 表 2.11 に従っ たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ン を使え ます : direct ・ hypertextencoding ・ index ・ key ・ type ・ value ・ values 詳細 こ の関数は、 コ ン テナ内にオブジ ェ ク ト を挿入 し ます。 コ ン テナ内にオブジ ェ ク ト が挿入 さ れ る 順序は重要ではあ り ません。 挿入 さ れた コ ン テナには、 挿入後に中身を入れ る こ と も で き ます。 挿入 さ れ る コ ン テナが、 挿入の時点で完成 し てい る 必要はあ り ません。 コ ン テナ内へオブジ ェ ク ト を挿入す る 際には、 オブジ ェ ク ト グ ラ フ内に直接オブジ ェ ク ト のループを作成 し てはいけ ません。 た と えば、 直接挿入 さ れ る 辞書は、 その コ ン テナ への直接参照を含んでいてはいけ ません。 循環参照を作成す る ためには、 direct=false を 用いて間接オブジ ェ ク ト を作成 し ます。 こ の間接オブジ ェ ク ト は、 任意の他のオブジ ェ ク ト を参照す る こ と がで き ます。 スコープ any 表 2.11 PDF_poca_new( ) ・ PDF_poca_insert( ) ・ PDF_poca_remove( ) のオプ シ ョ ン オプ シ ョ ン 説明 direct 1 (論理値。 type=array ・ dict の場合のみ。 それ以外の種別では無視 さ れます) true の場合、 その オブ ジ ェ ク ト はその コ ン テナ内に直接挿入 さ れます。 false の場合、 間接 PDF オブ ジ ェ ク ト が作 成 さ れ、 その間接 PDF オブ ジ ェ ク ト への参照がその コ ン テナ内に挿入 さ れます。 間接オブ ジ ェ ク ト は、 1 個のオブ ジ ェ ク ト が複数回使用 さ れる場合に、 生成 さ れる PDF 内の容量を節約する ため に有用です。 デ フ ォ ル ト : true hypertextencoding (キーワー ド ) key ・ value ・ values オプ シ ョ ンのためのエ ン コ ーデ ィ ン グ を指定 し ます。 空文字列 は unicode と 等価です。 デ フ ォル ト : グ ローバル hypertextencoding オプ シ ョ ンの値 index (整数。 type=array の コ ン テナの場合のみ。 PDF_poca_remove( ) の場合は必須) 配列内で値 (群) が挿入または削除 さ れる場所の、 ゼロベースの番号。 値 -1 を用いる と 、 そのエ レ メ ン ト を新規末 尾ア イ テム と し て挿入する こ と がで き ます。 配列は、 指定 さ れた番号でエ レ メ ン ト を含める ため に必要に応 じ て拡大 さ れます。 その配列が指定 さ れた番号にすでに値を持 っ ている と きは、 それ は新 し い値で置き換え られます。 PDF_poca_new( ) ・ PDF_poca_insert( ) に対するデ フ ォ ル ト : -1 key (ハイパーテキス ト 文字列。 type=dict ・ stream のコ ン テナの場合のみ。 type=dict の場合は必須) 辞書 コ ン テナ、 ま たはス ト リ ーム コ ン テナに関連付け られた辞書の中の、 値を挿入 し たいキー。 こ のキーは、 先頭の 「/」 ス ラ ッ シ ュ キ ャ ラ ク タ を含んではいけません。 このキーは、 その辞書の usage オプ シ ョ ン で指定 さ れた条件に準拠する必要があ り ます。 その辞書がすでに同 じ キーのエ ン ト リ を持っ ている場合には、 それは新 し い値へ置き換え られます。 type=stream の場合には、 こ のキーは Length ・ Filter 以外であ る必要があ り ます。 40 第 2 章 : 一般関数 表 2.11 PDF_poca_new( ) ・ PDF_poca_insert( ) ・ PDF_poca_remove( ) のオプ シ ョ ン オプ シ ョ ン 説明 type1 (キーワー ド 。 key オプ シ ョ ン を用いないス ト リ ーム コ ン テナの場合を除き必須) 挿入 さ れる オブ ジ ェ ク ト の種別 : array ・ boolean ・ dict ・ integer ・ name ・ float ・ stream ・ string ・ percentage ・ color その コ ン テナが usage=dpm を用いて作成 さ れている場合には、 以下の種別は許容 さ れません : name (かわ り に type=string を用います) ・ stream 以下の種別は、 その コ ン テナが usage=blocks を用いて作成 さ れている場合にのみ許容 さ れます : color ・ percentage value1 (type オプ シ ョ ン に従っ たデー タ 型。 オプ シ ョ ン value か values のいずれか一つのみを必ず与え る必要があ り ます) コ ン テナ種別 と type オプ シ ョ ンに従っ た、 挿入 さ れる オブ ジ ェ ク ト の値 : 配列 ・ 辞書 コ ン テナの場合 : type=boolean な らば、こ の値はオプ シ ョ ン種別 string を持つ必要があ り 、かつ文字列 true か false のいずれか一つを内容 と する必要があ り ます。 type=string か name な らば、こ の値はオプ シ ョ ン種別 Hypertext string を持つ必要があ り 、かつそ の タ ーゲ ッ ト を直接内容 と する必要があ り ます。 type=name の場合の値は、 UTF-8 表現で 127 バイ ト を上限 と し 、 かつ 「/」 ス ラ ッ シ ュ キ ャ ラ ク タ を先頭に付けてはいけません。 type=integer な らば、 こ の値はオプ シ ョ ン種別 integer を持つ必要があ り 、 かつその タ ーゲ ッ ト を 直接内容 と する必要があ り ます。 type=float な ら ば、 こ の値はオプ シ ョ ン種別 float か integer を持つ必要があ り 、 かつその タ ー ゲ ッ ト を直接内容 と する必要があ り ます。 type=array か dict か stream な らば、 こ の値はオプ シ ョ ン種別 POCA コ ン テナハン ド ル (すなわち PDF_poca_new( ) を用いて作成 さ れた) を持つ必要があ り 、 かつ挿入 さ れる コ ン テナ を指定する必 要があ り ます。 挿入 さ れる オブ ジ ェ ク ト は、 こ のコ ン テナ と 同 じ usage オプ シ ョ ン を用いて作成 さ れている必要があ り ます。 type=percentage な らば、 こ の値はオプ シ ョ ン種別 number を持つ必要があ り ます。 これはパーセ ン ト 値 と し て解釈 さ れ、 パーセ ン ト 記号を含む必要があ り ます (例 : 50%)。 こ れはブ ロ ッ ク デー タ 種別パーセ ン ト 値 と し て書き込まれます。 type=color な ら ば、 こ の値はオプ シ ョ ン種別 color を持つ必要があ り ます (表 1.2 (15 ページ) 参 照)。 こ れはブ ロ ッ ク デー タ 種別色 と し て書き込まれます。 以下の色空間キーワー ド は許容 さ れま せん : iccbased ・ iccbasedgray ・ iccbasedrgb ・ iccbasedcmyk ・ pattern こ のオプ シ ョ ン を用いて任意の文字列を渡すためには、 10 ページ 「オプ シ ョ ン リ ス ト 内の括弧で 囲ま ない文字列」 に記述 し たオプ シ ョ ン リ ス ト 文法が有用で し ょ う 。 values1 (type オプ シ ョ ン に従っ た、 1 個ない し 複数の値の リ ス ト 。 type=array を用いた コ ン テナに対 し て のみ。 オプ シ ョ ン value か values のいずれか一つのみを必ず与え る必要があ り ます) 配列内の、 index オプ シ ョ ン で指定 さ れた位置に挿入 さ れる、 同 じ 種別の 1 個ない し 複数の値。 個別の種別に 対する条件についてオプ シ ョ ン value を参照 し て く だ さ い。 こ の指定 さ れた リ ス ト が要素 1 個だ けを内容 と する場合には、 その効果は value オプ シ ョ ン と 同 じ です。 こ の リ ス ト が複数の要素を 内容 と する場合には、 こ の リ ス ト 内のすべての値がその配列内へ順番に挿入 さ れ、 既存の要素群 を オーバ ラ イ ド する可能性も あ り ます。 こ の配列は、 こ の指定 さ れた リ ス ト 内のすべての要素群 を含むよ う に、 必要に応 じ て拡大 し ます。 1. PDF_poca_new( ) ・ PDF_poca_insert( ) の場合のみ 2.6 PDF オブ ジ ェ ク ト 作成 API (POCA) 41 C++ Java C# void poca_remove(int container, String optlist)) Perl PHP poca_remove(int container, string optlist) C void PDF_poca_remove(PDF *p, int container, const char *optlist) PDF コ ン テナオブジ ェ ク ト か ら 、 単純ま たは コ ン テナオブジ ェ ク ト を除去 し ます。 container PDF_poca_new( ) を用いて取得 さ れた有効な POCA 辞書ま たは配列ハン ド ル。 凍結 さ れた コ ン テナ (38 ページ 「オブジ ェ ク ト 種別 と 凍結オブジ ェ ク ト 」 参照) は、 も う 変更で き ませんので、 許容 さ れません。 optlist 表 2.11 内の PDF_poca_insert( ) の以下のオプシ ョ ン を使え ます : hypertextencoding ・ index ・ key 詳細 こ の関数は、 種別配列か辞書の コ ン テナか ら オブジ ェ ク ト を除去 し ます。 こ の指定 さ れた オブジ ェ ク ト がその コ ン テナ内に存在 し ない と き は何 も 起 こ り ません。 スコープ 任意 42 第 2 章 : 一般関数 3 文書 ・ ページ関数 3.1 文書関数 C++ Java C# int begin_document(String filename, String optlist) Perl PHP int begin_document(string filename, string optlist) C int PDF_begin_document(PDF *p, const char *filename, int len, const char *optlist) C++ void begin_document_callback(size_t (*writeproc) (PDF *p, void *data, size_t size), string optlist) C void PDF_begin_document_callback(PDF *p, size_t (*writeproc) (PDF *p, void *data, size_t size), const char *optlist) 新規 PDF フ ァ イ ルを さ ま ざ ま なオプシ ョ ンに従っ て作成 し ます。 filename (名前文字列。グ ロ ーバル filenamehandling オプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) 生成 し たい PDF 出力フ ァ イ ルの絶対名ま たは相対名。 filename が空な ら ば、 PDF 文書はフ ァ イ ル上でな く メ モ リ 内に生成 さ れ、 その生成 PDF デー タ を ク ラ イ ア ン ト へ取 り 出すには PDF_get_buffer( ) 関数を使 う 必要があ り ます。 Windows では、 UNC パ ス や、 割 り 当て ら れたネ ッ ト ワー ク ド ラ イ ブを使っ て も か ま い ません。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位)。 len=0 にする と null 終 了文字列を与え る 必要があ り ます。 writeproc (C ・ C++ のみ) 生成 さ れた PDF デー タ (の一部分ずつ) を受け渡すために PDFlib に よ っ て呼び出 さ れ る C コ ールバ ッ ク 関数。 optlist 文書オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : hypertextencoding (表 2.3 参照) > 表 3.1 に従っ た文書オプシ ョ ン群。こ れ ら のオプシ ョ ンの う ちのい く つかは、PDF_end_ document( ) で も 指定で き ます。 その場合にはそれ ら は、 PDF_begin_document( ) で指定 し た同等のオプシ ョ ン よ り も 優先 さ れます : associatedfiles・attachments・autoxmp・destination・groups・labels・linearize・metadata・ moddate ・ objectstreams ・ openmode ・ optimize ・ pagelayout ・ portfolio ・ search ・ uri ・ viewerpreferences > 表 3.2 に従っ た、 PDF 互換性 と 規格のためのオプシ ョ ン群 : compatibility ・ limitcheck ・ nodenamelist ・ pdfa ・ pdfua ・ pdfvt ・ pdfx ・ recordlevel ・ usestransparency > 表 3.3 に従っ た、 タ グ付 き PDF のためのオプシ ョ ン群 : checktags ・ lang ・ rolemap ・ structuretype ・ tag ・ tagged > 表 3.4 に従っ たセキ ュ リ テ ィ オプシ ョ ン群 : attachmentpassword ・ masterpassword ・ permissions ・ userpassword > 表 3.5 に従っ た出力処理オプシ ョ ン群 : createoutput ・ createpvf ・ filemode ・ flush ・ inmemory ・ recordsize ・ removefragments ・ tempdirname ・ tempfilenames 3.1 文書関数 43 戻り値 エ ラ ーな ら -1 (PHP では 0)、 そ う でなければ 1。 filename が空の と き は、 こ の関数は必 ず成功 し 、 決 し てエ ラ ー値を返 し ません。 詳細 こ の関数は、 与え ら れた filename を使っ て新規 PDF フ ァ イ ルを作成 し ます。 PDFlib は、 その与え ら れた名前の フ ァ イ ルを開 こ う と 試み、 そ し てその PDF 文書が完了 し た と き に はフ ァ イ ルを閉 じ ます。 PDF_begin_document_callback( ) は、 新規 PDF 文書を開 き ますが、 デ ィ ス ク フ ァ イ ルに は書き 込むのではな く 、 ユーザーか ら 与え ら れた コ ールバ ッ ク 関数を呼び出 し て PDF 出 力デー タ を受け渡 し ます。 writeproc で与え る コ ールバ ッ ク 関数は、 書かれたバ イ ト 数を 返す必要があ り ます。 も し その戻 り 値が、 PDFlib が与え る 引数 size と 一致 し ない と 、 例外 が発生 し ます。 writeproc の呼び出 さ れ る 頻度は flush オプシ ョ ンで設定で き ます。 スコープ オ ブ ジ ェ ク ト 。 こ の関数は、 フ ァ イ ル を う ま く 開け た と き は文書 ス コ ープ を開始 さ せ ま す。 照応す る PDF_end_document( ) と 必ずペアに し て呼び出す必要があ り ます。 PDF/VT 以下のオプシ ョ ンは許容 さ れません : groups。 バインディング ASP : こ の関数に渡すフルパス名を作 る には MapPath 機能を使 う 必要があ り ます。 C ・ C++ ・ Java ・ JScript : バ ッ ク ス ラ ッ シ ュ のパ ス区切 り を適切にエ ス ケープす る よ う 気を つけて く だ さ い。 た と えば、 ネ ッ ト ワ ー ク ド ラ イ ブ上の フ ァ イ ルは次の よ う に表 し ます。 \\\\malik\\rp\\foo.pdf。 PDF_begin_document_callback( ) は C ・ C++ でのみ利用可能です。 C++ Java C# void end_document(String optlist) Perl PHP end_document(string optlist) C void PDF_end_document(PDF *p, const char *optlist) 生成 さ れた PDF フ ァ イ ルを閉 じ て、 さ ま ざ ま なオプシ ョ ン を適用 し ます。 optlist 文書処理オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照) > 表 3.1 に従っ た文書オプシ ョ ン群。 PDF_end_document( ) で指定す る オプシ ョ ンは、 PDF_begin_document( ) で指定 し た同等のオプシ ョ ン よ り も 優先 さ れます。 以下のオ プシ ョ ンが使え ます : action ・ associatedfiles ・ attachments ・ autoxmp ・ destination ・ destname ・ labels ・ metadata ・ moddate ・ openmode ・ pagelayout ・ portfolio ・ search ・ uri ・ viewerpreferences 詳細 44 こ の関数は、 生成 さ れた PDF 文書を完了 し 、 文書に関連する リ ソ ース をすべて解放 し 、 そ の PDF 文書が PDF_begin_document( ) で開かれていた と き には出力フ ァ イ ルを閉 じ ます。 こ の関数は、 PDF 文書を開いた と き の手段が何であ ろ う と 、 ク ラ イ ア ン ト がすべてのペー ジ を生成 し おわっ た時点で呼び出す必要があ り ます。 文書を メ モ リ 内に生成 し た と き は (フ ァ イ ル上でな く )、 その文書のバ ッ フ ァ は こ の関 数を呼び出 し た後 も 保持 さ れ (PDF_get_buffer( ) で取 り 出せ る よ う に)、 次に PDF_begin_ document( ) を呼び出 し た と き か、 ま たは PDFlib オブジ ェ ク ト が ス コ ープ外に出た と き に 解放 さ れます。 第 3 章 : 文書 ・ ページ関数 スコープ 文書。 こ の関数は文書ス コ ープ を終了 さ せます。 照応す る PDF_begin_document( ) 関数か PDF_begin_document_callback( ) 関数のいずれか と 必ずペアに し て呼び出す必要があ り ま す。 表 3.1 PDF_begin_document( ) ・ PDF_end_document( ) の文書オプ シ ョ ン オプ シ ョ ン 説明 action1 (ア ク シ ョ ン リ ス ト 。 PDF/A では不可) 以下の 1 個ない し 複数のイ ベン ト に対する文書ア ク シ ョ ン の リ ス ト (デ フ ォル ト : 空 リ ス ト ) : open 文書が開かれた時に実行 さ せたいア ク シ ョ ン。 Acrobat 内の実行順序の関係上、 文書レ ベルの JavaScript は open ア ク シ ョ ン と し て使え ません。 didprint/didsave/willclose/willprint/willsave 文書の印刷後 / 文書の保存後 / 文書を閉 じ る前 / 文書の印刷前 / 文書の保存前に実行 さ せたい JavaScript ア ク シ ョ ン。 associatedfiles1 (アセ ッ ト ハン ド ルの リ ス ト 。 PDF 2.0 ・ PDF/A-3 でのみ可) PDF/A-3 に従っ た連携 フ ァ イル群の ためのア セ ッ ト ハン ド ル群。 こ の フ ァ イル群は、 PDF_load_asset( ) と type=attachment を用いて読 み込まれている必要があ り ます。 attachments (オプ シ ョ ン リ ス ト の リ ス ト ま たはアセ ッ ト ハン ド ルの リ ス ト 。 PDF/X-1a/3 ・ PDF/A-1 では不可。 PDF/A-2 : PDF/A-1 ・ PDF/A-2 文書のみ添付可。 PDF/A-3 : 許容 さ れませんので、 かわ り に associatedfiles を使用 し て く だ さ い) PDF_load_asset( ) と type=attachment で読み込まれている文 書レ ベル フ ァ イル添付を指定 し ます。 PDF_begin_document( ) と PDF_end_document( ) の両方で フ ァ イル添付を与え るのは OK です。 ただ し 、 アセ ッ ト ハン ド ルは PDF_end_document( ) でのみ与え る こ と がで き ます。 使え るサブオブオプ シ ョ ン群 : 表 13.6 参照 autoxmp (論理値。 PDF/X-3/4/5 ・ PDF/A では true を強制 さ れます) true にする と 、 PDFlib は文書情報 フ ィ ール ド から XMP 文書 メ タ デー タ を作成 し ます (281 ページ 「14.2 XMP メ タ デー タ 」 参照)。 デ フ ォ ル ト : false destination (オプ シ ョ ン リ ス ト 。 文書を開 く ア ク シ ョ ン を指定 し ている と きは無視 さ れます) 文書を開 く ア ク シ ョ ン を表 12.10 に従っ て指定 し たオプ シ ョ ン リ ス ト 。 destname1 (ハイパーテキス ト 文字列。 destination オプ シ ョ ン を指定 し ている と きは無視 さ れます) 文書を 開 く ア ク シ ョ ン と し て使わせたい、 PDF_add_nameddest( ) で定義 し てある移動先の名前。 groups2 (文字列の リ ス ト 。 PDF/VT モー ド の場合、 ま たは文書部分 ヒ エ ラ ルキーが作成 さ れている場合に は不可) 文書で使いたいページグループの名前 と 順序を定義 し ます。 ページグループは複数の ページ を ま と めます (ページ ラ ベルをつける と き な どに有用です)。 文書で定義 し たページグルー プの 1 つにページ を割 り 当てて、 そのグループの中で指 し 示す こ と がで き ます。 文書でページグ ループ を定義 し た と きは、 すべてのページ をページグループに割 り 当て る必要があ り ます。 labels (オプ シ ョ ン リ ス ト の リ ス ト ) シ ンボ リ ッ ク なページ名を表 3.6 に従 っ て指定 し た 1 個ない し 複数 のオプ シ ョ ン リ ス ト を内容 と し て持つ リ ス ト 。 こ のページ名は Acrobat のス テー タ スバーにページ ラ ベル と し て表示 さ れます (ページ番号のかわ り に)。 style ・ prefix ・ start 値の組み合わせが文 書内で一意であ る必要があ り ます。 デ フ ォ ル ト : ページ ラ ベルな し linearize (論理値。 PDF_begin_document( ) のみ。 objectstreams=none を強制 し ます) true にする と 出力文書 は線形化 さ れます。 z/OS では、 こ のオプ シ ョ ンはイ ン コ ア生成 (すなわち filename を空に) と は併用で き ません。 デ フ ォル ト : false metadata (オプ シ ョ ン リ ス ト 。 PDF 1.4) 文書の XMP メ タ デー タ を与え ます (281 ページ 「14.2 XMP メ タ デー タ 」 参照)。 XMP プ ロパテ ィ はそれぞれ、 PDF_set_info( ) で与え られた文書情報フ ィ ール ド に よ っ てオーバラ イ ド さ れる こ と があ り ます。 PDF/A モー ド では、 与え る XMP メ タ デー タ が準拠す るべき要請が追加 さ れます (PDFlib チ ュ ー ト リ アル参照)。 moddate (論理値) true にする と 、 い く つかのプ リ フ ラ イ ト ツールに準拠する ために ModDate (更新日時) 文書情報キーが作成 さ れます。 デ フ ォル ト : false 3.1 文書関数 45 表 3.1 PDF_begin_document( ) ・ PDF_end_document( ) の文書オプ シ ョ ン オプ シ ョ ン 説明 objectstreams2 (キーワー ド の リ ス ト 。 PDF 1.5。 optimize または linearize が true の と きは none が強制 さ れま す) 出力フ ァ イルサイ ズを劇的に縮小する、 圧縮 さ れたオブ ジ ェ ク ト ス ト リ ーム群を生成 し ます (デ フ ォル ト : {other nodocinfo}) : bookmarks し お り オブ ジ ェ ク ト 群を圧縮 し ます。 docinfo 文書情報 フ ィ ール ド 群を圧縮 し ます。 dpartarrays 文書部分 ヒ エ ラ ルキーに関連する辞書群を圧縮 し ます。 dpartdicts 文書部分 ヒ エ ラ ルキーに関連する配列群を圧縮 し ます。 fields フ ォ ーム フ ィ ール ド 群を圧縮 し ます。 names 名前付き参照先を持つオブ ジ ェ ク ト 群を圧縮 し ます。 none 圧縮 さ れたオブ ジ ェ ク ト ス ト リ ームを一切生成 し ません ( こ のオプ シ ョ ンの後で明示的 に有効に さ れた カ テ ゴ リ 群を除いて)。 other こ のキーワー ド の後で明示的に無効に さ れなか っ たすべてのカ テ ゴ リ 、 およびその他の 自身のキーワー ド を持たないオブ ジ ェ ク ト 種別群。 pages ページ ツ リ ーを構成する オブ ジ ェ ク ト 群を圧縮 し ます。 poca POCA イ ン タ フ ェ ースで作成 さ れたすべての単純オブ ジ ェ ク ト を圧縮 し ます。 tags マー ク さ れた内容 タ グ群を圧縮 し ます。 xref 圧縮 さ れた xref ス ト リ ームを生成 し ます。 このカ テ ゴ リ は、 他のカ テ ゴ リ を 1 つで も 有効にする と 自動的に有効にな り ます。 none ・ other 以外のすべてのキーワー ド は、 頭に no をつけて (例 : nodocinfo) そのカ テ ゴ リ の圧 縮を無効にする こ と がで き ます。 こ のよ う な否定キーワー ド を 1 つで も与え る と 、 キーワー ド other は リ ス ト の先頭に付加 さ れます。 openmode 2 optimize pagelayout 46 (キーワー ド ) 文書を開いた時の表示方式を設定 し ます。 デ フ ォ ル ト : 文書に し お り があ る な ら bookmarks、 なければ none。 none パネルを追加表示せずに開き ます。 bookmarks し お り パネルを表示 し て開き ます。 thumbnails ページパネルを表示 し て開き ます。 fullscreen 全画面表示で開き ます (ブ ラ ウザでは効果な し )。 layers (PDF 1.5) レ イ ヤーパネルを表示 し て開き ます。 attachments (PDF 1.6) フ ァ イル添付パネルを表示 し て開き ます。 (論理値。 objectstreams=none を強制 し ます) true にする と 、 出力文書が生成 さ れた後、 別途の パスで最適化 さ れます。 最適化は、 冗長な重複オブ ジ ェ ク ト を除いて フ ァ イルサイ ズを小 さ く し ます。 通常、 ク ラ イ ア ン ト コ ー ド に非効率があ る場合 (同一画像や同一 ICC プ ロ フ ァ イルを、 ハ ン ド ルの再利用をせずに、 何度も 読込んだ場合な ど) を除き、 最適化は目立っ た効果を も た ら し ません。 z/OS では、 こ のオプ シ ョ ンはイ ン コ ア生成 (すなわち filename を空に) と は併用で き ません。 デ フ ォ ル ト : false (キーワー ド ) 文書を開いた時に使わせたいページ レ イ アウ ト (デ フ ォ ル ト : default) : default Acrobat ビ ュ ーアのデ フ ォ ル ト 設定。 singlepage 1 ページずつ表示。 onecolumn ページ を縦一列に並べて表示。 twocolumnleft ページ を見開き で、 奇数ページ を左に表示。 twocolumnright ページ を見開き で、 奇数ページ を右に表示。 twopageleft (PDF 1.5) 2 ページずつ、 奇数番号ページ を左に表示。 twopageright (PDF 1.5) 2 ページずつ、 奇数番号 ページ を右に表示。 第 3 章 : 文書 ・ ページ関数 表 3.1 PDF_begin_document( ) ・ PDF_end_document( ) の文書オプ シ ョ ン オプ シ ョ ン 説明 portfolio1 (オプ シ ョ ン リ ス ト 。 PDF 1.7) 表 12.13 に従 っ た、 PDF ポー ト フ ォ リ オ を生成する ためのサブオプ シ ョ ン群 search (オプ シ ョ ン リ ス ト 。 ISO 32000-1 では不可) 文書を開 く 時に検索イ ンデ ッ ク ス を読み込むよ う Acrobat に命令 し ます。 使え るサブオプ シ ョ ン : filename (ハイパーテキス ト 文字列。 必須) 検索イ ンデ ッ ク スの入っ た フ ァ イルの名前。 indextype (名前文字列) イ ンデ ッ ク スの種類。 Acrobat に対 し ては PDX と する必要があ り ます。 デ フ ォ ル ト : PDX uri (文字列) 文書にベース URL を設定 し ます。 これは、 他の文書への相対 Web リ ン ク を持っ た文書 を他の所へ移す と き に便利です。 ベース URL を 「元の」 場所に設定 し ておけば、 相対 リ ン クは確 実に有効であ り つづけます。 デ フ ォ ル ト : ベース URI な し viewerpreferences (オプ シ ョ ン リ ス ト ) さ ま ざ ま な表示設定を表 3.7 に従 っ て指定 し たオプ シ ョ ン リ ス ト 。 デ フ ォ ル ト :空 1. PDF_end_document( ) でのみ可 2. PDF_begin_document( ) ・ PDF_begin_document_callback( ) でのみ可 表 3.2 PDF_begin_document( ) の PDF 互換性 ・ 規格のためのオプ シ ョ ン オプ シ ョ ン 説明 compatibility (キーワー ド 。 pdfa か pdfua か pdfvt か pdfx オプ シ ョ ンが none 以外の値で用い ら れている と きは 無視 さ れます) 文書の PDF バージ ョ ン を、 以下に挙げるキーワー ド のいずれかに設定 し ます。 こ のオプ シ ョ ンは、 どの PDF 生成機能が利用可能か と 、 どの PDF 文書を PDFlib+PDI で取 り 込めるか に影響を与え ます (デ フ ォル ト : 1.7) : limitcheck 1.4 PDF 1.4。 Acrobat 5 以上が必要です。 1.5 PDF 1.5。 Acrobat 6 以上が必要です。 1.6 PDF 1.6。 Acrobat 7 以上が必要です。 1.7 PDF 1.7。 ISO 32000-1 で定義 さ れてお り 、 Acrobat 8 以上が必要です。 1.7ext3 PDF 1.7 拡張レ ベル 3。 Acrobat 9 以上が必要です。 1.7ext8 PDF 1.7 拡張レ ベル 8。 Acrobat X 以上が必要です。 2.0 PDF 2.0。 ISO 32000-2 で定義 さ れています。 true の場合、 PDF/A-1/2/3 ・ PDF/X-4/5 モー ド において間接 PDF オブ ジ ェ ク ト の数の制限 (8,388,607) が強制 さ れます。 デ フ ォ ル ト : true nodenamelist (名前文字列のリスト。pdfvt=PDF/VT-1 と pdfvt=PDF/VT-2 では必須)文書部分ヒエラルキーのす べてのレベル群に対する名前群。すべての名前は、ASCII キャラクタ群で構成されている必要があ り、かつ XML NMTOKEN の規則群に準拠している必要があります。最初の文字列が、その文書部 分ヒエラルキー内のレベルに対する名前を指定します。 3.1 文書関数 47 表 3.2 PDF_begin_document( ) の PDF 互換性 ・ 規格のためのオプ シ ョ ン オプ シ ョ ン 説明 pdfa (キーワー ド ) PDF/A 準拠レ ベルを、 以下のいずれか一つに設定 し ます (デ フ ォル ト : none) : PDF/A-1a:2005・PDF/A-1b:2005 (compatibility=1.4 を暗黙に前提 し ます) PDF/A-2a・PDF/A-2b・PDF/A-2u (compatibility=1.7 を暗黙に前提 し ます) PDF/A-3a・PDF/A-3b・PDF/A-3u (compatibility=1.7 を暗黙に前提 し ます) none PDF/A1-a:2005 ・ PDF/A-2a ・ PDF/A-3a は tagged=true. を暗黙に前提 し ます。 PDF/A は、 以下の他の 規格に同時に準拠する こ と も で き ます : pdfx=PDF/X-1a:2003・PDF/X-3:2003・PDF/X-4 pdfvt=PDF/VT-1 pdfua=PDF/UA-1 PDF 規格に対 し て複数のオプ シ ョ ンが指定 さ れた場合には、 最 も低い互換性値が用い ら れます。 pdfua (キーワー ド ) PDF/UA 準拠レ ベルを、 以下のいずれか一つに設定 し ます (デ フ ォ ル ト : none) : PDF/UA-1 compatibility=1.7 と tagged=true を暗黙に前提 し ます。 none pdfvt PDF/UA 出力な し (Keyword) Set the PDF/VT conformance level to one of the following (default: none): (キーワー ド ) PDF/VT 準拠レ ベルを、 以下のいずれか一つに設定 し ます (デ フ ォル ト : none) : PDF/VT-1 pdfx=PDF/X-4 を暗黙に前提 し ます。 pdfx オプ シ ョ ンに対する こ れ以外の値はエ ラ ーで す。 PDF/VT-2 pdfx オプ シ ョ ンは、 PDF/X-4p ・ PDF/X-5g ・ PDF/X-5pg のいずれか一つを指定する必要が あ り ます。 pdfx オプ シ ョ ンに対する これ以外の値はエ ラ ーです。 none pdfx PDF/VT 出力な し (キーワー ド ) PDF/X 準拠レ ベルを、 以下のいずれか一つに設定 し ます (デ フ ォル ト : none) : PDF/X-1a:2003 PDF/X-3:2003 PDF/X-4 ・ PDF/X-4p1 PDF/X-5g ・ PDF/X-5pg1 none recordlevel (compatibility=1.4 (compatibility=1.4 (compatibility=1.6 (compatibility=1.6 を暗黙に前提 し ます) を暗黙に前提 し ます) を暗黙に前提 し ます) を暗黙に前提 し ます) (非負整数。 文書部分 ヒ エ ラルキーが作成 さ れている場合にのみ意味を持ち ます) 受領者レ コ ー ド 群に照応する、 文書部分 ヒ エ ラルキーのゼロベースのレ ベル。 uses(論理値。 PDF/VT でのみ可) false の場合、 生成 さ れる文書の中のページはいずれも透過オブ transparency ジ ェ ク ト を一切含みません。 PDFlib は、 こ の表明が違反 さ れた場合には例外を発生 さ せます。 こ のオプ シ ョ ン を false に設定する こ と は、 透過を持たない文書に対 し てのみ許容 さ れ、 また、 す べての XObject が無条件に カ プ セル化 と 標識 さ れますので、 PDF/VT のためのカ プ セル化 XObject の生成を容易に し ます。 デ フ ォル ト : true 1. PDFlib チ ュ ー ト リ アルに、 参照 さ れた ICC プ ロ フ ァ イルでの Acrobat の諸問題に関する重要な注記があ り ます。 48 第 3 章 : 文書 ・ ページ関数 表 3.3 PDF_begin_document( ) の タ グ付き PDF のためのオプ シ ョ ン オプ シ ョ ン 説明 checktags (キーワー ド 。 PDF/UA-1 モー ド では strict と する必要があ り ます) PDF_begin_item( ) ま たは さ ま ざ ま な関数の tag オプ シ ョ ン を用いて作成 さ れる エ レ メ ン ト 群に対 し て構造エ レ メ ン ト ネス ト 化 規則群 (PDFlib チ ュ ー ト リ アル参照) がチ ェ ッ ク さ れるかど う かを指定 し ます。 こ のオプ シ ョ ン は移植支援のためだけに提供 さ れています。 こ れは、 取 り 込まれるページ群の中の タ グ群には影 響を与え ません (PDF_open_pdi_document( ) のオプ シ ョ ン checktags を参照)。 使え るキーワー ド (デ フ ォル ト : strict) : lang none タ グネス ト 化規則群は強制 さ れません。 こ の設定は、 無効な構造 ヒ エ ラ ルキーを生み出 すおそれがあ り ますので、 推奨 さ れません。 relaxed strict と 同様ですが、 ただ し い く つかの規則が強制 さ れません (PDFlib チ ュ ー ト リ アル 参照)。 strict タ グがネス ト 化規則群に違反 し ている と き には、 例外が発生 し ます。 (文字列。 tagged=true に し ている と きは推奨) 文書の主要言語を、 2 字の ISO 639 言語 コ ー ド で設 定 し ます (例 : DE ・ EN ・ FR ・ JA)。 その後に、 ハイ フ ン と 2 字の ISO 3166 国 コ ー ド をつける こ と も 可能です (例 : EN-US ・ EN-GB ・ ES-MX)。 大文字 ・ 小文字は区別 さ れません。 こ の言語指定は、 構造ツ リ ーのあ ら ゆる レ ベルで個々の構造ア イ テムについてオーバラ イ ド で き ますが、 は じ めに文書の全体について設定 し てお く べき です。 PDF/UA-1 : 自然言語を、 こ のオプ シ ョ ン を用いて、 あ るいは個々の構造エ レ メ ン ト の lang サブ オプ シ ョ ン を用いて指定する必要があ り ます。 rolemap (文字列 リ ス ト の リ ス ト 。 各文字列 リ ス ト の 1 番目の要素は名前文字列、 2 番目の要素は文字列。 タ グ付き PDF でのみ可。 カ ス タ ムエ レ メ ン ト 種別が用い られている場合には必須) カ ス タ ムエ レ メ ン ト 種別から 標準エ レ メ ン ト 種別へのマ ッ ピ ング。 各サブ リ ス ト は、 標準またはカ ス タ ムのエ レ メ ン ト 種別の名前 と 、 この 1 番目の種別を マ ッ プ さ せたい標準エ レ メ ン ト 種別の名前を内容 と し て持ち ます。 イ ン ラ イ ン ・ 擬似エ レ メ ン ト 種別は、 サブ リ ス ト 内の 2 番目の項目 と し て許容 さ れません。 既存のエ レ メ ン ト 種別に対 し て別の意味付け を割 り 当て る ために、 標準エ レ メ ン ト 種 別を別の標準エ レ メ ン ト 種別へマ ッ プする こ と も で き ます。 間接マ ッ ピ ン グ、 すなわち、 カ ス タ ム種別を別のカ ス タ ム種別へマ ッ プ し 、 それを標準種別へマ ッ プする こ と は許容 さ れます。 等価なエ レ メ ン ト のペアは警告な し で無視 さ れます。 タ グ付き PDF における カ ス タ ムエ レ メ ン ト 種別の使用については 282 ページ 「14.3 タ グ付き PDF」 を参照 し て く だ さ い。 カ ス タ ムエ レ メ ン ト 種別名は、 予約接頭辞 PLib で始ま っ てはいけません。 PDF/UA-1 では、 標準エ レ メ ン ト 種別を再マ ッ プする こ と は許容 さ れません。 structuretype (キーワー ド 。 PDF/UA-1 でのみ可) 文書構造の種別。 使え るキーワー ド (デ フ ォ ル ト : weak) : strong 文書は強 く 構造化 さ れています。 すなわち、 その構造ツ リ ーはその文書の論理的構成を 反映 し ています。 見出 し に対する唯一許容 さ れる構造種別は H であ り 、 H1 ・ H2 な どは 許容 さ れません。 構造ツ リ ー内の各 ノ ー ド は、 高々 1 個の H タ グ と 、 1 個ない し 複数の 段落 タ グ P を内容 と し ます。 weak 文書は弱 く 構造化 さ れています。すなわち、その構造ツ リ ーは 2 ~ 3 レ ベルであ り 、すべ ての見出 し ・ 段落な どが直接子 と な っ ています。 論理構造は見出 し タ グ H1 ・ H2 な ど で 表現 さ れる こ と がで き、 H は許容 さ れません。 見出 し は子孫を持つ こ と がで き ません。 tag (オプ シ ョ ン リ ス ト ) 表 14.4 に従 っ た タ グ付けオプ シ ョ ン群。 指定 さ れあ る構造エ レ メ ン ト は、 文 書構造ルー ト を構成 し 、 PDF_end_document( ) で自動的に閉 じ られます。 tagname サブオプ シ ョ ン では、 グループ化エ レ メ ン ト 群のみが許容 さ れます。 tagged (論理値) true にする と タ グ付き PDF 出力が生成 さ れます。 タ グ付き PDF モー ド では、 ク ラ イ ア ン ト は適切な構造情報を与え る必要があ り ます (282 ページ 「14.3 タ グ付き PDF」 参照)。 PDF/A1a:2005 か PDF/A-2a か PDF/A-3a か PDF/UA-1 モー ド が有効な と きは、 このオプ シ ョ ンは自動的に true に設定 さ れます。 デ フ ォ ル ト : false 3.1 文書関数 49 表 3.4 PDF_begin_document( ) のセキ ュ リ テ ィ オプ シ ョ ン。 PDF/A ・ PDF/X では不可 オプ シ ョ ン 説明 attachmentpassword1 ( 文字列2。 PDF 1.6。 userpassword か masterpassword が設定 さ れている場合には無視 さ れます。 linearize ・ optimize オプ シ ョ ン と 組み合わせる こ と はで き ません。 PDF/A ・ PDF/X では不可) フ ァ イル添付が、 こ の与えた文字列をパスワー ド と し て暗号化 さ れます。 文書の残 り の部分は暗 号化 さ れません。 EBCDIC プ ラ ッ ト フ ォ ームでは、 こ のパスワー ド は ebcdic エ ン コ ーデ ィ ングか EBCDIC-UTF-8 と 見な さ れます。 masterpassword1 (文字列。 permissions が指定 さ れている場合には必須。 PDF/A ・ PDF/X では不可) 文書に対する マ ス タ ーパスワー ド 。 これが空の場合には、 マス タ ーパスワー ド は適用 さ れません。 EBCDIC プ ラ ッ ト フ ォ ームでは、 このパスワー ド は ebcdic エ ン コ ーデ ィ ン グか EBCDIC-UTF-8 と 見な さ れま す。 デ フ ォル ト : 空 permissions (キーワー ド の リ ス ト 。 PDF/A ・ PDF/X では不可) 出力文書に対する利用権限の リ ス ト 。 以下の キーワー ド を任意の数入れ られます (デ フ ォル ト : 空)。 noprint Acrobat で フ ァ イルを印刷で き ないよ う に し ます。 nohiresprint Acrobat で高解像度印刷がで き ないよ う に し ます。 noprint を設定 し ていない と きは、 「画像 と し て印刷」 機能でページ を低解像度で レ ン ダ リ ン グ し た もの し か印刷で き な く な り ます。 nomodify Acrobat でページの編集 ・ 切 り 抜き と フ ォ ーム フ ィ ール ド の追加 ・ 変更を で き ないよ う に し ます。 noassemble (nomodify を暗黙に前提) Acrobat でページの追加 ・ 削除 ・ 回転 と し お り ・ サムネール の作成がで き ないよ う に し ます。 noannots Acrobat で し お り ・ フ ォ ーム フ ィ ール ド の追加 ・ 変更を で き ないよ う に し ます。 noforms (nomodify ・ noannots を暗黙に前提) Acrobat で フ ォ ーム フ ィ ール ド への記入を で き な いよ う に し ます。 nocopy Acrobat で テキス ト ・ グ ラ フ ィ ッ ク のコ ピー ・ 抽出を で き ないよ う に し ます。 ア ク セ シ ビ リ テ ィ イ ン タ フ ェ ースは noaccessible で制御 し ます。 noaccessible (PDF 2.0 では非推奨。 PDF/UA-1 では不可) Acrobat でア ク セシ ビ リ テ ィ (読み上げ機 能な ど) でのテキス ト やグ ラ フ ィ ッ クの抽出がで き ないよ う に し ます。 plainmetadata (PDF 1.5) 暗号化 し た文書で も、 XMP 文書 メ タ デー タ を暗号化 し ないま まに し ます。 userpassword1 (文字列。 PDF/A ・ PDF/X では不可) 文書のユーザーパスワー ド 。 空にする と ユーザーパスワー ド は適用 さ れません。 EBCDIC プ ラ ッ ト フ ォ ームでは、 こ のパスワー ド は ebcdic エ ン コ ーデ ィ ング か EBCDIC-UTF-8 と 見な さ れます。 デ フ ォル ト : 空 1. こ のオ プ シ ョ ン を用いて任意の文字列を渡すためには、 10 ページ 「オ プ シ ョ ン リ ス ト 内の括弧で囲ま ない文字列」 に記述 し たオ プ シ ョ ン リ ス ト 文法が有用で し ょ う 。 2. Winansi エ ン コ ーデ ィ ン グ外のキ ャ ラ ク タ は、 compatibility=1.7ext3 以上に対するパスワー ド でのみ許容 さ れます。 表 3.5 PDF_begin_document( ) の出力処理オプ シ ョ ン オプ シ ョ ン 説明 createoutput (論理値) false の場合、 filename 引数は無視 さ れ、 出力フ ァ イルまたは メ モ リ 領域は作成 さ れま せん。 こ のオプ シ ョ ンは、 compress=0 と linearize=false と optimize=false を暗黙に前提 し ま す。 デ フ ォル ト : true 50 第 3 章 : 文書 ・ ページ関数 表 3.5 PDF_begin_document( ) の出力処理オプ シ ョ ン オプ シ ョ ン 説明 createpvf (論理値) true にする と 、 PDF フ ァ イルを フ ァ イル上で な く メ モ リ 内に生成 し ます。 与え る フ ァ イ ル名は、 PDF_end_document( ) の呼び出 し に よ っ て生成 さ れる仮想フ ァ イルの名前です。 こ の場合、 PDF 出力デー タ を取 り 出すために PDF_get_buffer( ) を呼び出す こ と はで き ません。 かわ り に、 生成 さ れた PVF フ ァ イルの名前を、 他の PDFlib 関数に与え る こ と がで き ます。 こ れは、 PDF ポー ト フ ォ リ オに含める文書を生成する と き に有用で し ょ う 。 デ フ ォ ル ト : false filemode (文字列。 z/OS ・ USS のみ) 文書 フ ァ イル と 任意の一時フ ァ イル (例 : linearize オプ シ ョ ンに よ る) のフ ァ イルモー ド を設定するパラ メ ー タ 文字列。 与えた文字列は、 デ フ ォル ト のフ ァ イル モー ド 「wb,」 に追加 さ れます。 recordsize オプ シ ョ ンは、 こ のオプ シ ョ ン で指定するパラ メ ー タ 群 と 整合 さ せる必要があ り ます。 デ フ ォ ル ト : 空、 ま たは非ブ ロ ッ ク出力の場合 ( こ れがデ フ ォ ル ト です。 オプ シ ョ ン recordsize を参照) は recfm=v。 文字列の例 : recfm=fb,lrecl=80,space=(cyl,(1,5) デー タ セ ッ ト の属性群がすでに割 り 当て られている場合にはそれに従 う : recfm=* flush (キーワー ド 。 PDF_begin_document_callback( ) のみ) 放出の方式を設定 し ます (デ フ ォ ル ト : page) : none 文書が終わる時に 1 回だけ 放出 page 各ページが終わる ご と に 放出 content あ ら ゆる フ ォ ン ト ・ 画像 ・ フ ァ イル添付 ・ ページが終わる ご と に 放出 heavy 内部の 64 KB の文書バ ッ フ ァ がい っ ぱいにな る たびに 放出 inmemory (論理値。 PDF_begin_document_callback( ) では不可) true にする と 、 linearize か optimize オプ シ ョ ン も true に し た と きは、 PDFlib は線形化のための一時フ ァ イルを一切作成せず、 フ ァ イルを メ モ リ 内で処理 し ます。 これはシ ス テムに よ っ ては (特に z/OS)、 驚異的な速度向上につなが り ますが、 文書のサイ ズの 2 倍の メ モ リ が必要にな り ます。 false にする と 、 線形化 ・ 最適化のため に一時フ ァ イルが作成 さ れます。 デ フ ォ ル ト : false recordsize (整数。 z/OS ・ USS のみ) 出力フ ァ イル、 および linearize ・ optimize オプ シ ョ ン で作成が必要 と な る可能性のあ るすべての一時フ ァ イルのレ コ ー ド サイ ズ。 デ フ ォ ル ト : 0 (非ブ ロ ッ ク出力) removefragments true の場合、例外の後に存在する部分的な PDF 出力文書が PDF_delete( ) で除去 さ れます。このよ う な PDF 断片は文書 と し ては決 し て使え ません。 こ のオプ シ ョ ンは、 メ モ リ 内 PDF 生成のために空 フ ァ イル名が指定 さ れている場合には効果を持ち ません。 デ フ ォル ト : false tempdirname (文字列。 PDF_begin_document_callback( ) では不可) linearize ・ optimize オプ シ ョ ン で必要な一時 フ ァ イルを作成 し たいデ ィ レ ク ト リ の名前。 こ のオプ シ ョ ンが見つから ない と きは、 PDFlib はカ レ ン ト デ ィ レ ク ト リ に一時フ ァ イルを生成 し ます。 tempfilenames オプ シ ョ ン を与えている と きは こ のオプ シ ョ ンは無視 さ れます。 デ フ ォ ル ト : 存在 し ない tempfilenames (文字列 2 個の リ ス ト 。 z/OS ・ USS でのみ可) linearize ・ optimize オプ シ ョ ン で必要な一時 フ ァ イル 2 個のフル フ ァ イル名。 空にする と 、 PDFlib は一意な一時 フ ァ イル名を生成 し ます。 PDF_ end_document( ) の後に こ の一時 フ ァ イルを削除するのはユーザー側の役割です。 このオプ シ ョ ン を与え る と きは、 引数 filename は空に し てはいけません。 デ フ ォ ル ト : 存在 し ない 3.1 文書関数 51 表 3.6 PDF_begin/end_document( ) の labels オプ シ ョ ン と PDF_begin/end_page_ext( ) の label オプ シ ョ ンのサブオプ ション オプ シ ョ ン 説明 group (文字列。 PDF_begin_document( ) のみ。 文書がページグループ を使っ ている と きは必須、 そ う でな い と きは禁止) 指定するグループの全ページに ラ ベルが適用 さ れます。 後続するグループについ て も、 新たな ラ ベルを適用する ま では こ のラ ベルが全ページに適用 さ れつづけます。 グループ名 は、 PDF_begin_document( ) の groups オプ シ ョ ン で定義 し てあ る必要があ り ます。 hypertextencoding (キーワー ド ) prefix オプ シ ョ ンのエ ン コ ーデ ィ ング を指定 し ます。 空文字列にする と unicode を 意味 し ます。 デ フ ォ ル ト : グローバル hypertextencoding オプ シ ョ ンの値。 pagenumber (整数。 PDF_end_document( ) のみ。 文書がページグループ を使っ ていない と きは必須、 そ う で ない と きは禁止) 指定するページに ラ ベルが適用 さ れます。 後続するページについて も、 新たな ラ ベ ルを適用する ま では こ のラ ベルが適用 さ れつづけます。 prefix (ハイパーテキス ト 文字列) 範囲内のすべてのラ ベルにつけたい ラ ベル接頭辞。 デ フ ォル ト : な し start (整数≧ 1) 範囲内の最初のラ ベルに与えたい数値。 範囲内の後続するページに も、 こ の値に続け て番号が振ら れてい き ます。 デ フ ォ ル ト : 1 style (キーワー ド ) 使いたい番号ス タ イル。 デ フ ォ ル ト : none。 none ページ番号な し 。 すなわち ラ ベルの中身は接頭辞だけにな り ます。 D 10 進ア ラ ビ ア数字 (1, 2, 3, ...) R 大文字ローマ数字 (I, II, III, ...) r 小文字ローマ数字 (i, ii, iii, ...) A 大文字アルフ ァ ベ ッ ト (A, B, C, ..., AA, BB, CC, ...) a 小文字アルフ ァ ベ ッ ト (a, b, c, ..., aa, bb, cc, ...) 表 3.7 PDF_begin_document( ) ・ PDF_end_document( ) の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 centerwindow (論理値) true の場合、 文書のウ ィ ン ド ウ を画面の中央に置き ます。 デ フ ォ ル ト : false direction (キーワー ド ) 文書の閲覧方向。 見開き表示でのス ク ロール順序に対 し て効力を持ち ます (デ フ ォ ル ト : l2r)。 l2r 左から右へ r2l 右から左へ (縦書き な ど) displaydoctitle (論理値。 PDF/UA-1 モー ド では true のみ可) Acrobat の タ イ ト ルバーに Title 文書情報フ ィ ール ド を表示 (true)、 あ るいはフ ァ イル名を表示 (false) し ます。 デ フ ォ ル ト : PDF/UA-1 では true、 それ以外では false duplex (キーワー ド 。 PDF 1.7) 印刷ダ イ ア ロ グの用紙の扱いのオプ シ ョ ン (デ フ ォル ト : none)。 DuplexFlipShortEdge 両面印刷 し て短辺を綴 じ る。 DuplexFlipLongEdge 両面印刷 し て長辺を綴 じ る。 none 用紙の扱い を設定 し ない。 Simplex 片面印刷。 fitwindow (論理値) 文書のウ ィ ン ド ウ を先頭ページの大き さ に合わせるかど う かを指定 し ます。 デ フ ォル ト : false hidemenubar1 (論理値) Acrobat の メ ニ ュ ーバーを隠すかど う かを指定 し ます。 デ フ ォ ル ト : false 52 第 3 章 : 文書 ・ ページ関数 表 3.7 PDF_begin_document( ) ・ PDF_end_document( ) の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン hidetoolbar 説明 1 (論理値) Acrobat のツールバーを隠すかど う かを指定 し ます。 デ フ ォル ト : false hidewindow- (論理値) Acrobat のウ ィ ン ド ウ コ ン ト ロールを隠すかど う かを指定 し ます。 デ フ ォル ト : false ui1 nonfullscreenpagemode (キーワー ド 。 openmode オプ シ ョ ン を fullscreen に設定 し ている と きのみ意味を持ち ます) 全画 面表示か ら抜けた時の文書の表示方式を指定 し ます (デ フ ォ ル ト : none) : bookmarks ページ と し お り パネルを表示 thumbnails ページ と ページパネルを表示 layers ページ と レ イ ヤーパネルを表示 none ページだけを表示 numcopies (整数で範囲 1 ~ 5、 PDF 1.7) 印刷ダ イ ア ログの部数。 デ フ ォ ル ト : ビ ュ ーア依存 picktraybypdfsize (論理値。 PDF 1.7。 Mac OS では効果な し ) 印刷ダ イ ア ロ グで PDF のページサイ ズに合わせて給紙 ト レ イ を選択するかど う かを指定 し ます。 デ フ ォ ル ト : ビ ュ ーア依存 printscaling (キーワー ド 。 PDF 1.6) 文書で印刷ダ イ ア ログ を出 し た と き に選択 さ せてお き たい、 ページの拡縮 の選択肢。 使え るキーワー ド (デ フ ォル ト : appdefault) : none ページの拡縮な し 。 ページの内容を正確な大き さ で印刷 さ せたい と き に有用です。 appdefault Acrobat で指定 さ れている カ レ ン ト の印刷の拡縮を使用 し ます。 printpagerange (整数ペアの リ ス ト 。 PDF 1.7) 印刷ダ イ ア ログのページ番号。 各ペアは、 印刷 し たいページ範囲の 開始ページ と 終了ページの番号を表 し ます (先頭ページが 1)。 デ フ ォル ト : ビ ュ ーア依存 printarea printclip viewarea viewclip (キーワー ド 。 PDF/X では media ・ bleed のみ可) 文書を画面表示 ・ 印刷する時に表示 ・ 断ち切 り し たいページ領域を表すページ境界枠の種類。 Acrobat はこ の設定を無視 し ますが、 他のア プ リ ケーシ ョ ン では有用か も し れません。 使え るキーワー ド (デ フ ォル ト : crop) : art ArtBox を使用 bleed BleedBox を使用 crop CropBox を使用 media MediaBox を使用 trim TrimBox を使用 1. Acrobat X 以上では、 hidemenubar ・ hidetoolbar ・ hidewindowui の組み合わせ (すなわち、 すべてのユーザー イ ン タ フ ェ ー ス を隠す) には対応 し ていません。 この 3 個の要素すべて を hidden に設定 し て も 、 メ ニ ュ ーバーは表示 さ れます。 3.1 文書関数 53 3.2 PDF 文書を メ モ リ か ら 取得 空でない filename 引数が PDF_begin_document( ) に与え ら れてい る と き 、PDFlib は名前付 き デ ィ ス ク フ ァ イ ルに PDF 文書を書 き 込みます。 あ る いは、 filename 引数が空であれば、 PDF 文書は メ モ リ 内に生成 さ れます。 こ の場合、 PDF 文書デー タ は メ モ リ か ら PDF_get_ buffer( ) で取得す る 必要があ り ます。 こ れは と り わけ、 PDF を Web サーバか ら 頒布す る と き に有用です。 C++ const char *get_buffer(long *size) Java byte[] get_buffer( ) Perl PHP string get_buffer( ) C const char * PDF_get_buffer(PDF *p, long *size) PDF 出力バ ッ フ ァ の内容を得ます。 size (C ・ C++ 言語バ イ ンデ ィ ン グのみ) 返 さ れたデー タ の長 さ をバ イ ト 単位で表 し た も のを格納 さ せたい メ モ リ 位置への C ス タ イ ルのポ イ ン タ 。 戻り値 ク ラ イ ア ン ト 側で消費す る ためのバ イ ナ リ PDF デー タ で満た さ れたバ ッ フ ァ 。 こ の関数 は、 バ イ ナ リ デー タ のための言語独自のデー タ 型を返 し ます。 返 さ れたバ ッ フ ァ は、 ク ラ イ ア ン ト で他の何 ら かの PDFlib 関数を呼び出す前に使 う 必要があ り ます。 詳細 生成 さ れた PDF デー タ の入っ たバ ッ フ ァ 全体ない し 一部分を取 り 出 し ます。 こ の関数が ページ記述の合間に呼び出 さ れた と き は、 それま でに生成 さ れた PDF デー タ を返 し ます。 PDF を メ モ リ 内に生成 し てい る 場合は、 こ の関数は PDF_end_document( ) の後には少な く と も 呼び出す必要があ り 、 その と き に PDF 文書の残 り を返 し ます。 も っ と 前に呼び出 し て文書デー タ を 部分的に取 り 出 し て も よ い で し ょ う 。 こ の関数 を 1 回だ け PDF_end_ document( ) の後に呼び出す場合は、 返 さ れ る バ ッ フ ァ にはその PDF 文書が ま る ご と ま と めて入っ てい る こ と が保証 さ れます。 PDF 出力にはバ イ ナ リ キ ャ ラ ク タ が含まれてい ますので、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア 側では、 null 値を含む印刷不可能キ ャ ラ ク タ を受け入れ る 態勢が必要です。 スコープ オブ ジ ェ ク ト ・ 文書 (言い換えれば、 PDF_end_page_ext( ) か ら PDF_begin_page_ext( ) ま での間か、 ま たは PDF_end_document( ) か ら PDF_delete( ) ま での間)。 こ の関数は、 PDF_ begin_document( ) に空の filename を与えてい る と き だけ使え ます。 PDF_begin_document( ) で linearize オプシ ョ ン を true に設定 し てい る と き は、ス コ ープ は object に限 ら れますので、 すなわち こ の関数は PDF_end_document( ) の後で し か呼び出 せません。 バインディング C ・ C++ : size 引数は C ・ C++ ク ラ イ ア ン ト でだけ使え ます。 COM : 多 く の COM ク ラ イ ア ン ト は、 バ ッ フ ァ 内容を保持す る ためにバ リ ア ン ト 型を 使用 し ます。 COM での JavaScript は、 返 さ れ る バ リ ア ン ト 配列の長 さ を取得す る こ と を 許容 し ません ( し か し こ れは他の言語 と COM では動作 し ます)。 それ以外のバ イ ンデ ィ ン グ : 適切な長 さ のオブジ ェ ク ト が返 さ れ ますので、 size 引数 は与え てはいけ ません。 54 第 3 章 : 文書 ・ ページ関数 3.3 ページ関数 C++ Java C# void begin_page_ext(double width, double height, String optlist) Perl PHP begin_page_ext(float width, float height, string optlist) C void PDF_begin_page_ext(PDF *p, double width, double height, const char *optlist) 文書に新規ページ を追加 し て、 さ ま ざ ま なオプシ ョ ン を指定 し ます。 width・height 引数 width と height は、 新規ページの寸法を ポ イ ン ト 単位 (userunit オ プシ ョ ン を指定 し て あ る と き はユーザー単位) で指定 し ます。 こ れ ら は同名のオプシ ョ ン でオーバ ラ イ ド で き ます (その場合、 引数にはダ ミ ーの値 0 を使えば よ いで し ょ う )。 広 く 利用 さ れ る ページ判型の一覧を表 3.8 に示 し ます。 詳 し く は表 3.9 も 参照 し て く だ さ い (width ・ height オプシ ョ ン)。 表 3.8 代表的な ISO 標準ページサイ ズの寸法をポ イ ン ト 単位で表 し た もの1 判型 幅 高さ 判型 幅 高さ 判型 幅 高さ a0 2380 3368 a4 595 842 letter 612 792 a1 1684 2380 a5 421 595 legal 612 1008 a2 1190 1684 a6 297 421 ledger 1224 792 a3 842 1190 b5 501 709 11x17 792 1224 1. ISO B5 は JIS B5 と 異な る こ と に留意 し て く だ さ い。 ISO ・ 日本 ・ 米国の標準形式に関する詳 し い情報は次の URL を参照 し て く だ さ い。 www.cl.cam.ac.uk/~mgk25/iso-paper.html optlist 表 3.9 に従っ たページオプシ ョ ン群を持っ たオプシ ョ ン リ ス ト 。 こ れ ら のオプ シ ョ ンは、 PDF_end_page_ext( ) で指定す る 同等のオプシ ョ ン よ り も 優先順位が低いです : action ・ artbox ・ associatedfiles ・ bleedbox ・ blocks ・ cropbox ・ defaultcmyk ・ defaultgray ・ defaultrgb ・ duration ・ group ・ height ・ label ・ mediabox ・ metadata ・ pagenumber ・ rotate ・ separationinfo ・ taborder ・ topdown ・ transition ・ transparencygroup ・ trimbox ・ userunit ・ viewports ・ width 詳細 こ の関数は、 すべてのテ キ ス ト ・ グ ラ フ ィ ッ ク ・ 色ス テー タ スパ ラ メ ー タ を そのデフ ォ ル ト 値に リ セ ッ ト し 、 topdown オプシ ョ ンに従っ て座標系を確立 し ます。 スコープ 文書。 こ の関数はページ ス コ ープ を開始 さ せます。 照応す る PDF_end_page_ext( ) と 必ず ペアに し て呼び出す必要があ り ます。 C++ Java C# void end_page_ext(String optlist) Perl PHP end_page_ext(string optlist) C void PDF_end_page_ext(PDF *p, const char *optlist) ページ を終了 さ せて、 さ ま ざ ま なオプシ ョ ン を適用 し ます。 optlist 表 3.9 に従っ たオプシ ョ ン リ ス ト 。 PDF_end_page_ext( ) で指定す る オプシ ョ ン は、 PDF_begin_page_ext( ) で指定 し た同等のオプシ ョ ン よ り も 優先 さ れます。 以下のオ プシ ョ ンが使え ます : 3.3 ページ関数 55 associatedfiles ・ action ・ artbox ・ bleedbox ・ cropbox ・ defaultcmyk ・ defaultgray ・ defaultrgb ・ duration ・ group ・ height ・ label ・ mediabox ・ metadata ・ rotate ・ taborder ・ transition ・ transparencygroup ・ trimbox ・ userunit ・ viewports ・ width スコープ ページ。 こ の関数はページ ス コ ープを終了 さ せます。 照応する PDF_begin_page_ext( ) と 必ずペアに し て呼び出す必要があ り ます。 タ グ付き PDF モー ド では、 すべての イ ン ラ イ ン ・ 擬似ア イ テ ムは、 こ の関数を呼び出す前に閉 じ る 必要があ り ます。 表 3.9 PDF_begin_page_ext( ) ・ PDF_end_page_ext( ) のオプ シ ョ ン オプ シ ョ ン 説明 action (ア ク シ ョ ン リ ス ト 。 PDF/A では不可) 以下の 1 個ない し 複数のイ ベン ト に対するページ ア ク シ ョ ンの リ ス ト (デ フ ォ ル ト : 空 リ ス ト ) : open ページ を開 く 時に実行 さ せたいア ク シ ョ ン。 close ページ を閉 じ る時に実行 さ せたいア ク シ ョ ン。 associatedfiles (アセ ッ ト ハン ド ルの リ ス ト 。 PDF 2.0 ・ PDF/A-3 でのみ可) PDF/A-3 に従っ た連携フ ァ イル群の ア セ ッ ト ハン ド ル群。 この フ ァ イル群は、 PDF_load_asset( ) と type=attachment を用いて読み込ま れている必要があ り ます。 artbox bleedbox cropbox (長方形) カ レ ン ト ページのページ枠のパラ メ ー タ を変更 し ます。 座標はデ フ ォル ト 座標系で指定 し ます。 デ フ ォ ル ト : 枠項目な し blocks (POCA コ ン テナハン ド ル。 PDF_begin_page_ext( ) か PDF_end_page_ext( ) に与え る こ と がで き ます が、 同一ページ上で両方の関数に与え る こ と はで き ません。 PPS でのみ利用可能) PDF_poca_ new( ) で作成 さ れた、 PDFlib Personalization Server (PPS) のための PDFlib ブ ロ ッ ク定義群を内容 と する辞書 コ ン テナに対するハン ド ル。 こ の指定 さ れた ブ ロ ッ ク群がページに添付 さ れます。 こ の辞書は、 オプ シ ョ ン usage=blocks を用いて作成 さ れている必要があ り ます。 デ フ ォ ル ト : ブ ロ ッ クなし defaultgray1 (ICC ハン ド ルかキーワー ド ) 与え る ICC プ ロ フ ァ イルハン ド ルに従 っ て、 ページにデ フ ォ ル ト の defaultrgb1 グ レー ・ RGB ・ CMYK 色空間を設定 し ます。 defaultcmyk1 オプ シ ョ ン defaultrgb ではキーワー ド srgb も使え ます。 こ の指定 さ れた色空間が、 ページ上の デバイ ス依存グ レーか RGB か CMYK カ ラ ーを マ ッ プする ために使用 さ れます (そのページ上のテ ン プ レー ト 群の中のカ ラ ーに対 し ては使用 さ れません)。 duration (float) openmode=fullscreen に し ている と き (表 3.1 参照)、 カ レ ン ト ページにページ表示時間を 秒単位で設定 し ます。 デ フ ォ ル ト : 1 group1 (文字列。 文書がページグループ を使 っ ている と きは必須、 そ う で ない と きは不可。 PDF/VT モー ド の場合、 または文書部分 ヒ エ ラ ルキーが作成 さ れている場合には不可) ページ を属 さ せたい ページグループの名前。 こ の名前を使 う と 、 複数のページ を 1 つのページグループにま と めて、 ページ を PDF_resume_page( ) で指定で き る よ う にな り ます。 こ のグループ名は、 PDF_begin_ document( ) で groups オプ シ ョ ン を使っ て定義 し てあ る必要があ り ます。 height (float または キーワー ド 。 topdown オプ シ ョ ンが true な ら禁止) 新規ページの寸法をポ イ ン ト 単 位 (userunit オプ シ ョ ン を指定 し てあ る と きはユーザー単位) で指定 し ます。 横置きのページ を 作るには、 width > height と するか、 または rotate オプ シ ョ ン を使います。 PDFlib は width と height を使っ てページの MediaBox を作 り ますが、 MediaBox は明示的に mediabox オプ シ ョ ン を 使っ て設定する こ と も で き ます。 width ・ height オプ シ ョ ンは、 同名の引数を オーバ ラ イ ド し ま す。 以下のシ ンボ リ ッ ク な ISO ページサイ ズ名の後に .width か .height を付けてキーワー ド と し て使 う こ と も で き ます (例 : a4.width ・ a4.height)。 a0 ・ a1 ・ a2 ・ a3 ・ a4 ・ a5 ・ a6 ・ b5 ・ letter ・ legal ・ ledger ・ 11x17 56 第 3 章 : 文書 ・ ページ関数 表 3.9 PDF_begin_page_ext( ) ・ PDF_end_page_ext( ) のオプ シ ョ ン オプ シ ョ ン 説明 label (オプ シ ョ ン リ ス ト ) シ ンボ リ ッ ク なページ名を表 3.6 に従っ て指定 し たオプ シ ョ ン リ ス ト 。 こ の ページ名は、 Acrobat のス テー タ スバーにページ ラ ベル と し て (ページ番号のかわ り に) 表示 さ れ ます。 指定する付番方式はカ レ ン ト ページに使われるほか、 後続するページについて も 、 ま た変 更する ま では こ の方式が使われつづけます。 style ・ prefix ・ start 値の組み合わせが文書内で一 意であ る必要があ り ます。 mediabox (長方形。 topdown オプ シ ョ ンが true な ら禁止) カ レ ン ト ページの MediaBox を変更 し ます。 座標 はデ フ ォ ル ト 座標系で指定 し ます。 デ フ ォ ル ト では、 MediaBox は引数 width ・ height を使っ て作 成 さ れます。 こ の mediabox オプ シ ョ ンは、 width ・ height オプ シ ョ ンおよび引数を オーバラ イ ド し ます。 metadata pagenumber (オプ シ ョ ン リ ス ト ) そのページに対する メ タ デー タ (281 ページ 「14.2 XMP メ タ デー タ 」 参照) 1 (整数。 PDF/VT モー ド の場合、 または文書部分 ヒ エ ラ ルキーが作成 さ れている場合には不可) こ のオプ シ ョ ン で値 n を指定 し た と する と 、 ページは、 group オプ シ ョ ン で指定 し ているページグ ループ (文書がページグループ を使っ ていないな ら文書) の既存の n 番目のページの前に挿入 さ れます。 こ のオプ シ ョ ン を指定 し ない と 、 ページはグループの末尾に挿入 さ れます。 rotate (整数) ページの回転値。 こ の回転は、 ページ表示に対 し て効力を持ち ますが、 座標系は変更 し ま せん。 と り う る値は 0 ・ 90 ・ 180 ・ 270。 デ フ ォ ル ト : 0 separationinfo1 (オプ シ ョ ン リ ス ト ) カ レ ン ト ページに対する色分版の詳細を入れたオプ シ ョ ン リ ス ト 。 こ れは Acrobat では無視 さ れますが、 サー ド パーテ ィ ソ フ ト ウ ェ ア では、 分版ページ を分版前工程におい て見分けて正 し く プ レ ビ ュ ーするのに役立つか も し れません。 pages (整数。 各色版ページ セ ッ ト の先頭ページには必須、 同 じ セ ッ ト 内のそれ以降のページ では不可) 多色ページ一枚の色デー タ を成す各色版ページ群のセ ッ ト 1 つに属するペー ジの数。 セ ッ ト のページはすべて フ ァ イル内で連続 さ せてお く 必要があ り ます。 spotname (文字列。 spotcolor を与えていないな ら必須) カ レ ン ト ページのためのイ ンキの名前。 spotcolor (スポ ッ ト カ ラ ーハン ド ル) カ レ ン ト ページのためのイ ンキを記述 し た カ ラ ーハン ド ル。 taborder (キーワー ド 。 PDF 1.5。 PDF/UA-1 では structure のみ可) ページ上の フ ォ ーム フ ィ ール ド と 注釈 に タ ブ順序を指定するキーワー ド (デ フ ォ ル ト : PDF 1.5 以上に対する タ グ付き PDF モー ド では structure、 それ以外では none)。 column topdown1 段組みご と に上から下へ。 段組みの順序は、 PDF_begin/end_document( ) で viewerpreferences オプ シ ョ ンの direction サブオプ シ ョ ン で指定 し た通 り にな り ま す。 none タ ブ順序を指定 し ません。 structure フ ォ ーム フ ィ ール ド と 注釈が、 構造ツ リ ー内での出現順に選ばれてい き ます。 row 上の行か ら下の行へ。 行内での方向は、 PDF_begin/end_document( ) で viewerpreferences オプ シ ョ ンの direction サブオプ シ ョ ン で指定 し た通 り にな り ま す。 (論理値) true にする と 、 ページが始ま る時の座標系は、 ページの左上隅が原点で、 y 座標が下向 き に増加 し ます。 そ う で なければデ フ ォ ル ト 座標系が使われます。 デ フ ォ ル ト : false 3.3 ページ関数 57 表 3.9 PDF_begin_page_ext( ) ・ PDF_end_page_ext( ) のオプ シ ョ ン オプ シ ョ ン 説明 transition (キーワー ド ) openmode=fullscreen に し ている と き (表 3.1 参照)、 カ レ ン ト ページにページ効果 を設定 し て特殊な表示遷移を さ せます。 こ れは、 PDF を Acrobat で全画面表示 し て プ レゼン テー シ ョ ン を行 う 時に有用で し ょ う 。 デ フ ォ ル ト : replace split 画面上に線が 2 本走っ てページが見え て く る blinds 画面上に線が多数走 っ てページが見え て く る box 長方形か ら ページが見え て く る wipe 画面上に線が 1 本走っ てページが見え て く る dissolve 元ページが溶けてページが見え て く る glitter 溶け効果が画面の一辺から 他辺へ動いてい く replace 単純に元ページから 新ページに切 り 替わる fly (PDF 1.5) 元ページの中へ新ページが飛んで く る push (PDF 1.5) 元ページ を新ページが画面外へ押 し 出 し てい く cover (PDF 1.5) 元ページの上に新ページがすべ り 込んで く る uncover (PDF 1.5) 元ページが画面外へすべ り 出て新ページが見えて く る fade (PDF 1.5) 元ページから新ページが透けて く る transparency (オプ シ ョ ン リ ス ト ま たはキーワー ド 。 PDF/A-1 ・ PDF/X-1/3 では不可。 PDF/A-2/3 ・ PDF/X-4/5 group には制約が適用 さ れます) そのページに対する透過グループ を作成 し ます。 以下のキーワー ド を 使え ます (デ フ ォル ト : auto) : auto 透過オブ ジ ェ ク ト が、 そのページ自体に、 または取 り 込まれた PDF ページかグ ラ フ ィ ッ ク かテ ン プ レー ト に存在 し ている と き には、 transparencygroup オプ シ ョ ンが、 然るべき色空間を用いて自動的に作成 さ れます。 そ う でないな ら透過グループは全 く 作 成 さ れません。 none (出力イ ン テ ン ト を持たない PDF/A-2/3 に対 し ては、 透過がそのページ上で用い ら れて いる な ら ば不可) そのページに対 し て透過グループ を一切作成 し ません。 以下のサブオプ シ ョ ン を用いて明示的に透過グループ を作成する こ と も で き ます : colorspace (キーワー ド または ICC プ ロ フ ァ イルハン ド ル。出力イ ン テ ン ト を持たない PDF/A-2/3 に 対 し ては、 透過がそのページ上で用い ら れている な ら ば必須) 透過グループに対する ブ レ ンデ ィ ング色空間 (デ フ ォ ル ト : none) : DeviceCMYK PDF/A-2/3 ・ PDF/X-4/5 : CMYK 出力イ ン テ ン ト を用いるか、 defaultcmyk オプ シ ョ ンが与え られている場合のみ可。 DeviceGray PDF/A-2/3 ・ PDF/X-4/5 : グ レーか CMYK 出力イ ン テ ン ト を用いるか、 defaultgray オプ シ ョ ンが与え ら れている場合のみ可。 DeviceRGB PDF/A-2/3 ・ PDF/X-4/5 : RGB 出力イ ン テ ン ト を用いるか、 defaultrgb オプ シ ョ ンが与え ら れている場合のみ可。 none (出力イ ン テ ン ト を持たない PDF/A-2/3 に対 し ては、 透過がそのページ上で 用い られている な らば不可) 透過グループに対 し て色空間が出力 さ れませ ん。 srgb sRGB 色空間を選択する ためのキーワー ド isolated (論理値) 透過グループが分離 さ れているかを指定 し ます。 デ フ ォ ル ト : false knockout (論理値) 透過グループが抜き グループかど う かを指定 し ます。 デ フ ォ ル ト : false trimbox 58 (長方形) カ レ ン ト ページの TrimBox を指定 し ます。 座標はデ フ ォル ト 座標系で指定 し ます。 デ フ ォル ト : TrimBox 項目な し 第 3 章 : 文書 ・ ページ関数 表 3.9 PDF_begin_page_ext( ) ・ PDF_end_page_ext( ) のオプ シ ョ ン オプ シ ョ ン 説明 userunit (float またはキーワー ド 。 PDF 1.6) ユーザー単位の大き さ をポ イ ン ト 単位で表 し た、 範囲 1 ~ 75 000 の数。 またはキーワー ド mm ・ cm ・ m のいずれかを指定する と 、 その単位に拡大 さ れます。 ユーザー単位は、 実際のページ内容を変え ません。 それは Acrobat に対する ヒ ン ト で し かな く 、 ページ を印刷 し た り 、 計測ツールを使っ た り する と き に利用 さ れる だけです。 デ フ ォル ト : 1 (す なわち 1 単位は 1 ポ イ ン ト ) viewports (オプ シ ョ ン リ ス ト の リ ス ト 。 PDF 1.7ext3) ページ上の 1 個ない し 複数の地理参照付き領域 (ビ ュ ーポー ト ) を指定 し ます。 詳 し く は 262 ページ 「12.7 地理空間機能」 を参照。 ビ ュ ーポー ト は、 ページ上の複数の領域 (複数の地図な ど) ご と に、 異な る地理空間参照 (georeference オプ シ ョ ン で指定 さ れる) を用いる こ と を可能に し ます。 ビ ュ ーポー ト リ ス ト 内の オプ シ ョ ン リ ス ト 群の順序は、 重な り 合 う ビ ュ ーポー ト 群に対応 し ます。 すなわち、 あ る点を含 む最後のビ ュ ーポー ト が、 その点に対 し て用い られます。 width (float または キーワー ド 。 topdown オプ シ ョ ンが true な ら 禁止) height オプ シ ョ ン を参照 し て く だ さ い。 1. PDF_begin_page_ext( ) でのみ可 C++ Java C# void suspend_page(String optlist) Perl PHP suspend_page(string optlist) C void PDF_suspend_page(PDF *p, const char *optlist) カ レ ン ト ページ を一時停止 し て、 後で再開で き る よ う に し ます。 optlist 詳細 将来使用す る ためのオプシ ョ ン リ ス ト 。 カ レ ン ト ページのグ ラ フ ィ ッ ク ・ 色 ・ テ キ ス ト ・ レ イ ヤース テー ト が ま る ご と 、 内部的に 保存 さ れます。 こ のページは、 後で PDF_resume_page( ) で再開 し て ま た内容を追加す る こ と がで き ます。 一時停止 し たページは、 再開 し なければ閉 じ る こ と がで き ません。 スコープ ページ。 こ の関数は文書ス コ ープ を開始 さ せます。 照応す る PDF_resume_page( ) と 必ずペ アに し て呼び出す必要があ り ます。 タ グ付 き PDF モー ド では、 すべての イ ン ラ イ ン ・ 擬 似ア イ テ ム を、 こ の関数を呼び出す前に閉 じ る 必要があ り ます。 C++ Java C# void resume_page(String optlist) Perl PHP resume_page(string optlist) C void PDF_resume_page(PDF *p, const char *optlist) ページ を再開 し て、 ま たそれに内容を追加で き る よ う に し ます。 optlist 表 3.10 に従っ たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ンが使え ます : group ・ pagenumber 詳細 ページは、 PDF_suspend_page( ) で一時停止 し て あ る 必要があ り ます。 こ れが再び開かれ て、 ま た内容を追加で き る よ う にな り ます。 一時停止 し たページはすべて、 た と え も う 内 容を追加 し ていな く て も 、 再開 し なければ閉 じ る こ と がで き ません。 タ グ付 き PDF モー ド では、 ページ を再開 し て も 、 構造ア イ テ ムは再開 さ れない こ と に 留意す る 必要があ り ます。 そ う ではな く 、 PDF_resume_page( ) が呼び出 さ れた時点でア ク テ ィ ブな ア イ テ ムは、 それ以後のページ コ ン テ ン ツ に対す る カ レ ン ト ア イ テ ム にな り ま す。以後に生成 さ れ る コ ン テ ン ツに対す る 親 と し てページ上の特定の構造エ レ メ ン ト を再 3.3 ページ関数 59 開 さ せ る には、 PDF_activate_item( ) を使用す る こ と を推奨 し ます。 スコープ 文書。 こ の関数はページ ス コ ープを開始 さ せます。 照応する PDF_suspend_page( ) と 必ず ペアに し て呼び出す必要があ り ます。 表 3.10 PDF_resume_page( ) のオプ シ ョ ン オプ シ ョ ン 説明 group (文字列。 文書がページグループ を使 っ ている と きは必須、 そ う で ない と きは禁止) 再開 さ れる ページのページグループの名前。 こ のグループ名は、 PDF_begin_document( ) で groups オプ シ ョ ン を使っ て定義 し てあ る必要があ り ます。 pagenumber (整数) こ のオプ シ ョ ン を与え る と 、 group オプ シ ョ ン で選んでいるページグループ (文書がペー ジグループ を使っ ていないな ら文書) の、 指定 し た番号のページが再開 さ れます。 こ のオプ シ ョ ン を与え ない と 、 グループの最終ページが再開 さ れます。 60 第 3 章 : 文書 ・ ページ関数 3.4 レ イ ヤー ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの graphics/starter_layer ト ピ ッ ク にあ り ます。 C++ Java C# int define_layer(String name, String optlist) Perl PHP int define_layer(string name, string optlist) C int PDF_define_layer(PDF *p, const char *name, int len, const char *optlist) 新規レ イ ヤー定義を作成 し ます (要 PDF 1.5)。 name (ハ イ パーテ キ ス ト 文字列) レ イ ヤーの名前。 len (C 言語バ イ ンデ ィ ン グのみ) name の長 さ (バ イ ト 単位)。 len=0 にする と null 終了 文字列を与え る 必要があ り ます。 optlist レ イ ヤー設定群を持っ たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : hypertextencoding ・ hypertextformat (表 2.3 参照) > 表 3.11 に従っ た レ イ ヤー制御オプシ ョ ン群 : creatorinfo ・ defaultstate ・ initialexportstate ・ initialprintstate ・ initialviewstate ・ intent ・ language ・ onpanel ・ pageelement ・ printsubtype ・ removeunused ・ zoom 戻り値 レ イ ヤーハン ド ル。 PDF_begin_layer( ) ・ PDF_set_layer_dependency( ) への呼び出 し で、 カ レ ン ト の文書ス コ ープ を終え る ま で使え ます。 詳細 レ イ ヤーを定義 し たに も かかわ ら ず、 文書で使っ ていない と き は、 PDFlib は警告を発 し ま す。 複数のページで使 う レ イ ヤーであ っ て も 、 その定義は 1 回だけ行 う べき です (た と え ば最初のページ を作成す る 前に)。 PDF_define_layer( ) を複数のページで繰 り 返 し 呼び出す と 、 レ イ ヤーの定義は蓄積 さ れて し ま い (た と え名前が同 じ で も ) 、 それは通常望む と こ ろではないで し ょ う 。 PDF/A PDF/A-1 : こ の関数を呼び出 し てはいけ ません。 PDF/A-2/3 : い く つかのオプシ ョ ンは制約 さ れます。 PDF/X PDF/X-1/2/3 : こ の関数を呼び出 し てはいけ ません。 PDF/X-4/5: い く つかのオプシ ョ ンは制約 さ れます。 PDF/UA い く つかのオプシ ョ ンは制約 さ れます。 スコープ オブ ジ ェ ク ト 以外任意 表 3.11 PDF_define_layer( ) のオプ シ ョ ン オプ シ ョ ン 説明 creatorinfo (オプ シ ョ ン リ ス ト 。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) 内容 と 作成ア プ リ ケーシ ョ ン を記述 し たオプ シ ョ ン リ ス ト 。 こ のオプ シ ョ ン を使 う と きは、 以下の両方の項目が必須です : creator (ハイパーテキス ト 文字列) レ イ ヤーを作成 し たア プ リ ケーシ ョ ンの名前 subtype (文字列) 内容の種類。 推奨値は Artwork ・ Technical。 defaultstate (論理値) レ イヤーをデ フ ォル ト で表示するかど う かを指定 し ます。 デ フ ォル ト : true initialexportstate (論理値。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) レ イ ヤーの推奨書き出 し ス テー タ ス を 指定 し ます。 true にする と 、 Acrobat は、 以前の PDF バージ ョ ンや他の文書形式へ変換 ・ 書き出 し を行 う 際、 こ のレ イ ヤーを含めます。 デ フ ォ ル ト : true 3.4 レ イ ヤー 61 表 3.11 PDF_define_layer( ) のオプ シ ョ ン オプ シ ョ ン 説明 initialprintstate (論理値。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) レ イ ヤーの推奨印刷ス テー タ ス。 true にする と 、 Acrobat は、 文書を印刷する際、 このレ イ ヤーを含めます。 デ フ ォル ト : true initialviewstate (論理値。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) レ イ ヤーの推奨表示ス テー タ ス。 true にする と 、 Acrobat は、 文書を開いた際、 こ のレ イ ヤーを表示 し ます。 デ フ ォル ト : true intent (キーワー ド ) グ ラ フ ィ ッ クの想定用途。 View または Design。 デ フ ォ ル ト : View language (オプ シ ョ ン リ ス ト 。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) レ イ ヤーの言語を指定 し ま す: lang (文字列。 必須) 言語を、 場合に よ っ てはロ ケール と あわせて、 表 3.1 の lang オプ シ ョ ンについて説明 し た形式で指定 し ます preferred (論理値) true にする と 、 レ イ ヤーは、 レ イ ヤー と シ ス テムの言語が部分的に一致する だけで も 使われます。 デ フ ォ ル ト : false onpanel (論理値。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) false にする と 、 レ イ ヤーは Acrobat の レ イ ヤーパネルに表示 さ れず、 し たがっ てユーザーが操作で き な く な り ます。 デ フ ォ ル ト : true pageelement (キーワー ド 。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) レ イ ヤーがページネーシ ョ ンのた めのページ装飾を含んでいる こ と を示 し ます。 HF (ヘ ッ ダ / フ ッ タ ) ・ FG (前面の画像ま たはグ ラ フ ィ ッ ク) ・ BG (背景の画像またはグ ラ フ ィ ッ ク) ・ L (ロ ゴ) のいずれか 1 つ。 printsubtype (オプ シ ョ ン リ ス ト 。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) レ イ ヤーが印刷を想定 し て いるかど う かを指定 し ます : subtype (キーワー ド ) レ イ ヤーの内容の種類を表す、 Trapping ・ PrintersMarks ・ Watermark の いずれか 1 つ。 printstate (論理値) true にする と 、 Acrobat は印刷の際に このレ イ ヤーの内容を可視化 し ます。 removeunused (論理値) true にする と 、 レ イ ヤーがページ上で使われていない と きは、 こ のレ イ ヤーはそのペー ジのレ イ ヤー一覧には表示 さ れな く な り ます。 レ イ ヤーがページ上で使われている と 見な さ れる のは、 そのレ イ ヤーがそのページ上で少な く と も 1 回、 PDF_begin_layer( ) に与え られている と き で す。 デ フ ォル ト : レ イ ヤーが、 listmode=visiblepages を用いて非デ フ ォ ル ト バ リ ア ン ト に含め ら れていないかぎ り 、 false。 zoom (float かパーセ ン ト 値の リ ス ト 。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可) 表示倍率に よ る レ イ ヤーの表示切 り 替え を指定する、 1 個か 2 個の値 (1.0 は表示倍率 100 パーセ ン ト を意味 し ま す)。 値 1 個を与え る と 、 レ イ ヤーの表示 さ れる最大の表示倍率 と し て使われます。 値 2 個を与え る と 、 最小 と 最大の表示倍率を指定 し ます。 キーワー ド maxzoom を使 う と 、 可能な限 り 最大の表 示倍率を指定する こ と がで き ます。 C++ Java C# void set_layer_dependency(String type, String optlist) Perl PHP set_layer_dependency(string type, string optlist) C void PDF_set_layer_dependency(PDF *p, const char *type, const char *optlist) レ イ ヤー間の階層 ・ グループ ・ ロ ッ ク 条件を定義 し ます (要 PDF 1.5)。 type 表 3.12 に従っ た、 依存ま たは関係の種別。 表 3.12 レ イヤーの依存 と 関係の種別 種別 説明。 こ の種別に関連する オプ シ ョ ン GroupAllOn depend オプ シ ョ ン で指定する レ イ ヤーは、 group オプ シ ョ ン で指定する レ イ ヤーがすべて表示 さ れている と き に表示 さ れます。 こ の種別に関連する オプ シ ョ ン : depend ・ group 62 第 3 章 : 文書 ・ ページ関数 表 3.12 レ イ ヤーの依存 と 関係の種別 種別 説明。 こ の種別に関連する オプ シ ョ ン GroupAnyOn depend オプ シ ョ ン で指定する レ イ ヤーは、 group オプ シ ョ ン で指定する レ イ ヤーのいずれかが表 示 さ れている と き に表示 さ れます。 こ の種別に関連するオプ シ ョ ン : depend ・ group GroupAllOff depend オプ シ ョ ン で指定する レ イ ヤーは、 group オプ シ ョ ン で指定する レ イ ヤーがすべて隠 さ れ ている と き に表示 さ れます。 こ の種別に関連するオプ シ ョ ン : depend ・ group GroupAnyOff depend オプ シ ョ ン で指定する レ イ ヤーは、 group オプ シ ョ ン で指定する レ イ ヤーのいずれかが隠 さ れている と き に表示 さ れます。 こ の種別に関連する オプ シ ョ ン : depend ・ group Lock (PDF 1.6) group オプ シ ョ ン で指定する レ イ ヤーはロ ッ ク さ れます。 すなわち、 レ イ ヤーのス テー タ ス を Acrobat で対話的に変更で き ません。 こ の種別に関連する オプ シ ョ ン : group Parent parent オプ シ ョ ン で指定する レ イ ヤー と 、 children オプ シ ョ ン で指定する レ イ ヤー群 と の間に、 階層関係を指定 し ます。 親を不可視に設定する と その子群も 自動的に不可視に設定 さ れます。 1 つ のレ イ ヤーを、 複数のレ イ ヤーに属 さ せる こ と はで き ません。 こ の種別に関連するオプ シ ョ ン : children ・ parent Radiobtn group オプ シ ョ ン で指定する レ イ ヤーど う し の間に、 ラ ジオボ タ ン関係を指定 し ます。 すなわち、 そのグループのレ イ ヤーは、 同時に 1 つ し か表示 さ れな く な り ます。 こ れは と り わけ、 複数の言 語レ イ ヤーで有用です。 この種別に関連する オプ シ ョ ン : group Title parent オプ シ ョ ン で指定する レ イ ヤーは、 直接制御するページ内容を一切持たず、 children オプ シ ョ ン で指定する レ イ ヤー群に対する階層区切 り と し ての役目を持ち ます。 こ の種別に関連する オプ シ ョ ン : children ・ parent Variant (非サポー ト ) 文書バ リ ア ン ト 、 すなわち 1 個ない し 複数のレ イ ヤーの組み合わせを指定 し ます。 こ の後に PDF_set_layer_dependency( ) を呼び出せば、 こ の設定に対する依存規則を指定する ために variantname オプ シ ョ ン を も う 一度与え る こ と がで き ます。 こ の種別に関連するオプ シ ョ ン : basestate ・ defaultvariant ・ includelayers ・ invisiblelayers ・ visiblelayers optlist レ イ ヤー依存群のためのオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : hypertextencoding (表 2.3 参照) > 表 3.13 に従っ た レ イ ヤー依存オプシ ョ ン群 : children ・ depend ・ group ・ parent > 表 3.14 に従っ た レ イ ヤーバ リ ア ン ト のための非サポー ト のオプシ ョ ン群 : basestate ・ createorderlist ・ defaultvariant ・ includelayers ・ invisiblelayers ・ listmode ・ variantname ・ visiblelayers 詳細 レ イ ヤー関係は、Acrobat の レ イ ヤーペーン内での レ イ ヤー名の表示を指定す る と と も に、 ユーザーが対話的に レ イ ヤーの表示・非表示を切 り 替えた時の 1 個ない し 複数の レ イ ヤー の表示 ・ 非表示を も 指定 し ます。 影響 を 受け る すべて の レ イ ヤーが同一のバ リ ア ン ト の一部で あ る わ け では な い レ イ ヤーバ リ ア ン ト が存在す る 場合において依存を指定す る には、デフ ォ ル ト バ リ ア ン ト を設 定す る 前にその依存を設定す る 必要があ り ます。 PDF/A PDF/A-1 : こ の関数を呼び出 し てはいけ ません。 PDF/A-2/3 : い く つかのオプシ ョ ンは制約 さ れます。 PDF/X PDF/X-1/2/3 : こ の関数を呼び出 し てはいけ ません。 PDF/X-4/5 : い く つかのオプシ ョ ンは制約 さ れます。 レ イ ヤーバ リ ア ン ト は原規格 PDF/X-4:2008 では必須で し たが、 PDFlib が対応 し てい る 継承規格 PDF/X-4:2010 では直接レ イ ヤー制御 (バ リ ア ン ト な し の) が許容 さ れてい ま 3.4 レ イ ヤー 63 す。 レ イ ヤーバ リ ア ン ト の使用は、 Acrobat X 以上はバ リ ア ン ト に対応 し てい ませんので、 推奨 さ れません。 PDF/UA い く つかのオプシ ョ ンは制約 さ れます。 スコープ オブ ジ ェ ク ト 以外任意。 レ イ ヤー関係は、 すべての レ イ ヤーが定義 さ れた後に指定す る 必 要があ り ます。 表 3.13 PDF_set_layer_dependency( ) のオプ シ ョ ン オプ シ ョ ン 説明 children (レ イ ヤーハン ド ルの リ ス ト 。 type=Parent ・ Title のみ) 与え ている親レ イ ヤーの子に し たい レ イ ヤー群を指定する 1 個ない し 複数のレ イ ヤーハン ド ル。 depend (レ イ ヤーハン ド ル。 type=GroupAllOn ・ GroupAnyOn ・ GroupAllOff ・ GroupAnyOff のみ) group オ プ シ ョ ン で指定 し ている レ イ ヤー群に制御 さ せたいレ イヤー。 group (レ イ ヤーハン ド ルの リ ス ト 。 type=GroupAllOn ・ GroupAnyOn ・ GroupAllOff ・ GroupAnyOff ・ Lock ・ Radiobtn のみ) グループ を構成 さ せたい 1 個ない し 複数のレ イヤーハン ド ル。 type=Lock に し て いる と きは、 グループのレ イ ヤーはすべて ロ ッ ク さ れます。 parent (レ イ ヤーハン ド ル。 type=Parent ・ Title のみ) children オプ シ ョ ン で指定 し ている レ イ ヤー群 の親に し たい レ イ ヤー。 表 3.14 PDF_set_layer_dependency( ) の非サポー ト のオプ シ ョ ン オプ シ ョ ン 説明 basestate (キーワー ド 。 type=Variant のみ。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では不可。 非サポー ト ) visiblelayers ・ invisiblelayers オプ シ ョ ン で明示的に設定 さ れていないすべてのレ イヤーの表 示 ・ 非表示を指定 し ます。 使え るキーワー ド (デ フ ォ ル ト : on) : on 選択 さ れたバ リ ア ン ト に対 し てすべてのレ イ ヤーが表示 さ れます。 off 選択 さ れたバ リ ア ン ト に対 し てすべてのレ イ ヤーが非表示にな り ます。 unchanged 選択 さ れたバ リ ア ン ト に対 し てすべてのレ イ ヤーのス テー タ スが変更 さ れず保持 さ れま す。 createorderlist (論理値。 type=Variant かつ defaultvariant=true の場合のみ。 非サポー ト ) true の場合、 Acrobat はすべてのレ イ ヤーの名前を表示 し ます。 値 true には以下の効果があ り ます (デ フ ォ ル ト : true) : > Acrobat 9 は、 レ イ ヤーバ リ ア ン ト 群 (存在すれば) を レ イ ヤー名群の中ではな く 「レイヤー」 パネル内に表示 し 、 また、 createorderlist=true によ る文書では PDF/X-4 検証エ ラ ーを出 し ま す。 なぜな ら こ れは PDF/X-4:2008 では許 さ れていないか ら です。 > Acrobat X 以上は、 レ イ ヤー名群を レ イ ヤーバ リ ア ン ト 群の中ではな く 「レイヤー」パネル内に 表示 し 、 ま た、 createorderlist=true に よ る文書の検証を成功 さ せます。 なぜな ら こ れは PDF/ X-4:2010 では許 さ れているから です。 defaultvariant (論理値。 type=Variant のみ。 非サポー ト ) true にする と 、 指定 さ れたバ リ ア ン ト はデ フ ォ ル ト バ リ ア ン ト にな り ます。 すなわち、 文書が開かれた時に表示 さ れます。 ち ょ う と 1 個のバ リ ア ン ト をデ フ ォル ト バ リ ア ン ト に指定する必要があ り ます。 デ フ ォル ト : false includelayers (レ イ ヤーハン ド ルの リ ス ト 。 type=Variant のみ。 非サポー ト ) バ リ ア ン ト に属する レ イ ヤー群を 指定 し ます。 デ フ ォ ル ト : 文書ないでそれま でに定義 さ れたすべてのレ イ ヤー 64 第 3 章 : 文書 ・ ページ関数 表 3.14 PDF_set_layer_dependency( ) の非サポー ト のオプ シ ョ ン オプ シ ョ ン 説明 invisiblelayers (レ イ ヤーハン ド ルの リ ス ト 。 type=Variant のみ。 非サポー ト ) 選択 さ れたバ リ ア ン ト に対 し て初 期状態で非表示にな る レ イ ヤー群の リ ス ト を指定 し ます。 1 つのレ イ ヤーをバ リ ア ン ト の visiblelayers リ ス ト と invisiblelayers リ ス ト に同時に リ ス ト し てはいけません。 defaultvariant=true の と き、 このオプ シ ョ ンは PDF_define_layer( ) の defaultstate オプ シ ョ ン を オーバラ イ ド し ます。 デ フ ォ ル ト (basestate オプ シ ョ ン に依存) : basestate=off な ら ば includelayers リ ス ト 内のすべてのレ イ ヤー、 basestate=on な らば空 リ ス ト listmode (キーワー ド 。 type=Variant のみ。 非サポー ト ) どのレ イ ヤー名群が Acrobat のレ イ ヤーペーンに 表示 さ れるかを指定 し ます。 使え るキーワー ド (デ フ ォ ル ト : visiblepages) : allpages すべてのページのすべてのレ イ ヤーの名前が表示 さ れます。 visiblepages その時表示 さ れているページのすべてのレ イ ヤーの名前が表示 さ れます。 こ れは、 その バ リ ア ン ト に属するすべてのレ イ ヤーに対 し て removeunused=true を暗黙に前提 し ま す。 Acrobat では これは、 defaultvariant=true の と き にのみ効果を持ち ます。 variantname (ハイパーテキス ト 文字列。 type=Variant では必須。 非サポー ト ) 選択 さ れたバ リ ア ン ト の名前。 type=Variant の と きは、 各バ リ ア ン ト の名前を 1 回だけ指定する必要があ り ます。 type が Variant 以外の場合のデ フ ォル ト : デ フ ォル ト のバ リ ア ン ト visiblelayers (レ イ ヤーハン ド ルの リ ス ト 。 type=Variant のみ。 非サポー ト ) 選択 さ れたバ リ ア ン ト で初期状態 で表示 さ れる レ イヤー群の リ ス ト を指定 し ます。 1 つのレ イ ヤーをバ リ ア ン ト の visiblelayers リ ス ト と invisiblelayers リ ス ト に同時に リ ス ト し てはいけません。 defaultvariant=true の と き、 こ のオプ シ ョ ンは PDF_define_layer( ) の defaultstate オプ シ ョ ン を オーバラ イ ド し ます。 デ フ ォル ト (basestate オプ シ ョ ンに依存) : basestate=on な らば includelayers リ ス ト 内のすべてのレ イ ヤー、 basestate=off な ら ば空 リ ス ト 。 C++ Java C# void begin_layer(int layer) Perl PHP begin_layer(int layer) C void PDF_begin_layer(PDF *p, int layer) ページ上の以後の出力に対 し て、 レ イ ヤーを開始 し ます (要 PDF 1.5)。 layer 詳細 レ イ ヤーのハン ド ル。 PDF_define_layer( ) で取得 し てお く 必要があ り ます。 こ の呼び出 し の後、次に PDF_begin_layer( ) か PDF_end_layer( ) を呼び出すま でにページ上 に配置す る 内容はすべて、 指定す る レ イ ヤーの一部分にな り ます。 内容が表示 さ れ る か ど う かは、 レ イ ヤーの設定に依存 し ます。 こ の関数は、 指定 さ れた レ イ ヤーを活性化 し 、 その時点で活性な レ イ ヤーが も し あれ ばそれを不活性化 し ます。 注釈 ・ 画像 ・ グ ラ フ ィ ッ ク ・ テ ン プ レー ト ・ フ ォ ーム フ ィ ール ド の レ イ ヤーは、 それ ぞれの関数で layer オプシ ョ ン を使っ て制御す る こ と がで き ます。 スコープ ページ 3.4 レ イ ヤー 65 C++ Java C# void end_layer( ) Perl PHP end_layer( ) C void PDF_end_layer(PDF *p) すべての活性な レ イ ヤーを不活性化 し ます (要 PDF 1.5)。 詳細 こ の呼び出 し の後、 ページ上に配置す る 内容は、 ど の レ イ ヤーに も 属 し ません。 レ イ ヤー はすべて、 ページの終わ り には閉 じ る 必要があ り ます。 レ イ ヤー A か ら レ イ ヤー B へ切 り 換え る には、 PDF_begin_layer( ) を 1 回呼び出せば充 分です。 明示的に PDF_end_layer( ) を呼び出 し て レ イ ヤー A を閉 じ る 必要はあ り ません。 PDF_end_layer( ) が必要なのは、 無条件内容 (つねに表示 さ れ る ) を作成す る と き と 、 ペー ジの終わ り に全レ イ ヤーを閉 じ る と き だけです。 スコープ ページ 66 第 3 章 : 文書 ・ ページ関数 4 フ ォ ン ト ・ テキス ト 関数 4.1 フ ォ ン ト 処理 C++ Java C# int load_font(String fontname, String encoding, String optlist) Perl PHP int load_font(string fontname, string encoding, string optlist) C int PDF_load_font(PDF *p, const char *fontname, int len, const char *encoding, const char *optlist) フ ォ ン ト を検索 し て、 以後の利用に備え ます。 fontname (名前文字列) フ ォ ン ト の名前。 こ れはあ る いは、 こ の引数を オーバ ラ イ ド す る fontname オプシ ョ ンで与え る こ と も で き ます。 詳 し く は表 4.2 の fontname オプシ ョ ン を参照。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ をバ イ ト 単位で指定 し ます。 len=0 に す る と null 終了文字列を与え る 必要があ り ます。 encoding エ ン コ ーデ ィ ン グ の名前。 こ れは あ る い は、 こ の引数 を オーバ ラ イ ド す る encoding オプシ ョ ンで与え る こ と も で き ます。 詳 し く は表 4.2 の encoding オプシ ョ ン を 参照。エン コ ーデ ィ ン グ関連では以下の よ う な問題が よ く 起 こ り ますので留意 し て く だ さ い: > 8 ビ ッ ト エン コ ーデ ィ ン グ を与えたが、フ ォ ン ト が こ のエン コ ーデ ィ ン グに対す る グ リ フ を一切持っ ていない、 ま たはフ ォ ン ト が標準日中韓フ ォ ン ト であ る 。 > builtin エン コ ーデ ィ ン グ を与えたが、 フ ォ ン ト が内蔵エン コ ーデ ィ ン グ を一切持っ て いない。 こ れは TrueType フ ォ ン ト についてのみ起 こ り え ます。 > CMap を与え たが、 フ ォ ン ト に一致 し ない。 optlist 以下のオプシ ョ ン群に よ る オプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 4.2 に従っ た フ ォ ン ト 読み込みオプシ ョ ン群 : ascender ・ autosubsetting ・ capheight ・ descender ・ dropcorewidths ・ embedding ・ encoding ・ fallbackfonts ・ fontname ・ initialsubset ・ keepfont ・ keepnative ・ linegap ・ metadata ・ optimizeinvisible ・ preservepua ・ readfeatures ・ readkerning ・ readselectors ・ readshaping ・ readverticalmetrics ・ replacementchar ・ simplefont ・ skipembedding ・ skipposttable ・ subsetlimit ・ subsetminsize ・ subsetting ・ unicodemap ・ vertical ・ xheight 戻り値 フ ォ ン ト ハン ド ル。以後の PDF_info_font( ) と テ キ ス ト 出力関数 と 、テ キ ス ト 書式オプシ ョ ン font で使え ます。 要求 さ れた フ ォ ン ト と エン コ ーデ ィ ン グの組み合わせが、 設定の問 題 (た と えばフ ォ ン ト ・ メ ト リ ッ ク ・ エン コ ーデ ィ ン グ フ ァ イ ルが見つか ら ないか、 あ る いは組み合わせの誤 り が検知 さ れた)が原因で読み込めない と き は、エ ラ ー コ ー ド -1(PHP では 0) が返 さ れ る か例外が発生 し ます。 エ ラ ー動作は、 errorpolicy オプシ ョ ンで変え る こ と がで き ます。 関数がエ ラ ーを返 し た と き は、 その失敗の原因を PDF_get_errmsg( ) で取得す る こ と が で き ます。 そ う でない と き は、 こ の関数に よ っ て返 さ れた値を、 他の フ ォ ン ト 関連の関数 を 呼び出す時に フ ォ ン ト ハ ン ド ル と し て用い る こ と がで き ま す。 返 さ れ る ハ ン ド ルは、 フ ォ ン ト ハン ド ル と し て使え る 以外に、 ユーザーに と っ て何の意味 も 持ち ません。 4.1 フ ォ ン ト 処理 67 返 さ れた フ ォ ン ト ハン ド ルは、 その フ ォ ン ト を PDF_close_font( ) で閉 じ る ま で有効で す。 文書を PDF_end_document( ) で閉 じ る と 、 それぞれの開かれてい る フ ォ ン ト ハン ド ル は閉 じ ら れますが、 ただ し 照応す る PDF_load_font( ) への呼び出 し で keepfont オプシ ョ ン を与え ていた場合、 ま たはフ ォ ン ト をオブ ジ ェ ク ト ス コ ープで (すなわち あ ら ゆ る 文書の 外で) 読み込んでいた場合はその限 り ではあ り ません。 詳細 こ の関数はフ ォ ン ト を用意 し 、 以後使え る よ う に し ます。 繰 り 返 し 呼び出 し : こ の関数を、 同 じ フ ォ ン ト 名 ・ 同 じ エ ン コ ーデ ィ ン グ ・ 同 じ オプ シ ョ ン群で再度呼び出す と 、 最初の呼び出 し と 同 じ フ ォ ン ト ハン ド ルが返 さ れ ま す。 例 外 : 以下のオプシ ョ ンのいずれか を最初の呼び出 し で指定 し 、 その後の呼び出 し では指定 し なかっ た場合 も 、 2 度目の フ ォ ン ト ハン ド ルは最初の フ ォ ン ト ハン ド ル と 同一にな り ま す:embedding・readkerning・replacementchar・fallbackfonts・metadata。同様に、initialsubset オ プ シ ョ ン は フ ォ ン ト の 比 較 に あ た っ て は 無 視 さ れ ま す。 た と え ば、 フ ォ ン ト を initialsubset な し で読み込んだ後、 initialsubset をつけて再度読み込んだ場合、 最初の フ ォ ン ト へのハン ド ルが返 さ れ、 initialsubset は何 ら 効力を持ち ません。 最初の呼び出 し で embedding=false と し 、 2 度目の呼び出 し で embedding= true と す る と 、 フ ォ ン ト の再度読み込みの試みは失敗 し ます。 こ の状況はたいてい、 アプ リ ケーシ ョ ン内の問題を指 し 示 し ます。 暗黙的フ ォ ン ト 読み込み:明示的に PDF_load_font( ) で フ ォ ン ト を読み込むほかに、API 関数のなかには、オプシ ョ ン リ ス ト で フ ォ ン ト 名 と エン コ ーデ ィ ン グ を指定す る こ と で暗 黙 的 に フ ォ ン ト を 読 み 込 め る も の が あ り ま す (PDF_add/create_textflow( ) ・ PDF_fill_ textblock( ) 等)。その時点ま でにその フ ォ ン ト がすでに読み込まれていなければ、新規フ ォ ン ト ハン ド ルが作成 さ れます。 テ キ ス ト 出力機能のなかには、 特定のエ ン コ ーデ ィ ン グでは利用で き ない も のがあ り ます (表 4.1 参照)。 Unicode 非対応言語バ イ ンデ ィ ン グでは、 オプシ ョ ン textformat=auto は以下の よ う に 動作 し ます (なお、 ど ち ら の場合 も すべての UTF 形式が許容 さ れます) : > ワ イ ド キ ャ ラ ク タ エ ン コ ーデ ィ ン グ群 : 読み込ま れ る フ ォ ン ト のテ キ ス ト はテ キ ス ト 形式 utf16 と 見な さ れます (encoding=glyphid ではサ ロ ゲー ト は解釈 さ れません)。 > バ イ ト ・ マルチバ イ ト エ ン コ ーデ ィ ン グ群 : 読み込ま れ る フ ォ ン ト のテ キ ス ト はテ キ ス ト 形式 bytes と 見な さ れます。 PDF/A すべての フ ォ ン ト を埋め込む必要があ り ます。 PDF/UA すべての フ ォ ン ト を埋め込む必要があ り ます。 PDF/X すべての フ ォ ン ト を埋め込む必要があ り ます。 表 4.1 各種エ ン コ ーデ ィ ングでの PDFlib 諸機能の利用可能性 機能 unicode ・ Unicode CMap 8 ビッ ト エン コー デ ィ ング レ ガシ CMap ・ cp936 等 glyphid テキス ト フ ロー 可 可 可1 可 グ リ フ置き換え 可2 可 可1 ― 予備フ ォ ン ト 可2 可 可1 ― シ ェ ーピ ング 可2 ― 可1 可 OpenType レ イ アウ ト 機能 可 ― 可1 可 68 第 4 章 : フ ォ ン ト ・ テキス ト 関数 1. こ の機能は、 日中韓 フ ォ ン ト に対 し ては、 keepnative=true では利用で き ません。 2. こ の機能は、 Unicode CMap または keepnative=true に よ る標準日中韓 フ ォ ン ト に対 し ては利用で き ません。 スコープ 任意 表 4.2 PDF_load_font( ) と 暗黙的フ ォ ン ト 読み込みのフ ォ ン ト 読み込みオプ シ ョ ン オプ シ ョ ン 説明 ascender (-2048 から 2048 ま での整数) ア セ ン ダ。 同名の タ イ ポグ ラ フ ィ 特性が強制的に指定値にな り ま す。 これは、 フ ォ ン ト 内に値が見つかっ た と きはオーバラ イ ド さ れますが、 フ ォ ン ト にそのよ う な情報が入っ ていない と き に特に有用です (Type 3 フ ォ ン ト 等)。 デ フ ォル ト : あ る な ら フ ォ ン ト 内の値、 ないな ら推算値 (PDF_info_font( ) で取得で き ます) autocidfont (論理値) 非推奨、 かつ フ ォ ン ト エ ン ジ ンの内部変更のため機能 し な く な り ま し た。 autosubsetting (論理値) フ ォ ン ト をサブ セ ッ ト 化するかど う かを、 subsetlimit ・ subsetminsize オプ シ ョ ン と 、 グ リ フの実際の使われ方に従 っ て動的に決定 し ます。 subsetting オプ シ ョ ン を与えている と きは こ のオプ シ ョ ンは無視 さ れます。 デ フ ォ ル ト : true capheight (-2048 から 2048 ま での整数) キ ャ ッ プハイ ト 。 上記 ascender 参照。 descender (-2048 から 2048 ま での整数) デ ィ セ ン ダ。 上記 ascender 参照。 dropcorewidths (論理値。 非サポー ト 。 PDF/A ・ PDF/UA ・ PDF/X モー ド では false を強制 さ れます) 埋め込んで いない コ ア フ ォ ン ト の幅を、 生成する PDF に埋め込みません。 出力 フ ァ イルサイ ズが少 し 小 さ く な り ますが、 キ ャ ラ ク タ に よ っ ては不正確な テキス ト 印字が生成 さ れるおそれがあ り ます。 こ の オプ シ ョ ンはデ フ ォル ト 値のま まに し てお く こ と を強 く 推奨 し ます。 デ フ ォ ル ト : false embedding (論理値。 PDF/A ・ PDF/UA ・ PDF/X では true にする必要があ り ます。 つねに埋め込まれる SING フ ォ ン ト ・ Type 3 フ ォ ン ト では無視 さ れます) フ ォ ン ト を埋め込むかど う かを制御 し ます。 フ ォ ン ト を埋め込むためには、 そのフ ォ ン ト のアウ ト ラ イ ン フ ァ イルが得られる必要があ り 、 さ ら に その メ ト リ ッ ク 情報も 必要で (TrueType ・ OpenType フ ォ ン ト を除き)、 それ らが得 られれば、 実 際のフ ォ ン ト アウ ト ラ イ ン定義が PDF 出力内へ書き込まれます。 フ ォ ン ト が埋め込まれない と き は、 その フ ォ ン ト の一般的情報だけが PDF 出力へ書き込まれます。 デ フ ォル ト : 通常は false ですが、 CID フ ォ ン ト への変換を引き起 こ すエ ン コ ーデ ィ ング を持つ TrueType ・ OpenType フ ォ ン ト の関与する特定の状況においては true。PDFlib はそのよ う な フ ォ ン ト を自動的に埋め込みますが、 embedding を false に設定する と 、 フ ォ ン ト を埋め込ませない こ と がで き ます。 こ の場合は、 PDF 文書を表示 ・ 印刷する シ ス テムに、 そのフ ォ ン ト がイ ン ス ト ール さ れている必要があ り ます。 オプ シ ョ ン embedding=false は、 それ以前に同 じ フ ォ ン ト をすでに embedding=true で読み込んい る と きは無視 さ れます。 不可視テキス ト でのフ ォ ン ト に対する埋め込み動作は、 embedding=true の場合であ っ て も、 optimizeinvisible オプ シ ョ ン で変更する こ と が可能です。 フ ォ ン ト 埋め込みを、 skipembedding オプ シ ョ ン を用いて制御する こ と も で き ます。 4.1 フ ォ ン ト 処理 69 表 4.2 PDF_load_font( ) と 暗黙的フ ォ ン ト 読み込みのフ ォ ン ト 読み込みオプ シ ョ ン オプ シ ョ ン 説明 encoding (文字列。 暗黙的 フ ォ ン ト 読み込みの場合、 テキス ト 書式オプ シ ョ ン font が指定 さ れていない と き には必須) こ のフ ォ ン ト に対 し て、 入 っ て く る テキス ト が解釈 さ れる エ ン コ ーデ ィ ング : ワ イ ド キ ャ ラ ク タ エ ン コ ーデ ィ ング : > unicode または Unicode CMap の名前 > CID 指定の Identity-H か Identity-V > glyphid : フ ォ ン ト 内のすべてのグ リ フ を、 そのフ ォ ン ト 独自の ID で指定で き ます バイ ト ・ マルチバイ ト エ ン コ ーデ ィ ング : > 定義済み 8 ビ ッ ト エ ン コ ーデ ィ ング winansi ・ macroman ・ macroman_apple ・ ebcdic ・ ebcdic_37 ・ pdfdoc ・ iso8859-X ・ cpXXXX の う ちの 1 つ、 および非 Unicode (レ ガシ) CMap > (Unicode 対応言語バイ ンデ ィ ングでは不可) 日中韓 コ ー ド ページの cp932 ・ cp936 ・ cp949 ・ cp950 のいずれか > 自動的に選択 さ れる エ ン コ ーデ ィ ングの host か auto、 またはユーザー定義エ ン コ ーデ ィ ングか、 オペレーテ ィ ングシ ス テムに知ら れている エ ン コ ーデ ィ ングの名前 > フ ォ ン ト の内部エ ン コ ーデ ィ ング を選択する ための builtin (主に記号フ ォ ン ト で使用) PDF_load_font( ) : こ のオプ シ ョ ン を、 関数引数 と し て与え る こ と も で き ます。 PDF_fill_textblock( ) : このオプ シ ョ ンは、 text 引数のテキス ト が空で defaulttext プ ロパテ ィ が用 い られている場合 と 、 font オプ シ ョ ン を与えている場合を除き、 必須です。 fallbackfonts (表 4.3 に従っ たオプ シ ョ ン リ ス ト 群の リ ス ト ) 読み込む フ ォ ン ト に対する 1 個ない し 複数の予備 フ ォ ン ト を指定 し ます。 各予備フ ォ ン ト は、 font サブオプ シ ョ ンのフ ォ ン ト ハン ド ルによ っ て、 または暗黙的 フ ォ ン ト 読み込みのための適切なサブオプ シ ョ ンに よ っ て、 定義する必要があ り ま す。 予備フ ォ ン ト は、 フ ォ ン ト の種別 と エ ン コ ーデ ィ ングの組み合わせに よ っ ては対応 し ていま せん (表 4.1 参照)。 glyphcheck=replace かつベース フ ォ ン ト の 8 ビ ッ ト エ ン コ ーデ ィ ングに含まれないキ ャ ラ ク タ が テキス ト 内にある と き、 またはベース フ ォ ン ト がキ ャ ラ ク タ に対するグ リ フ を含んでいない と き、 またはグ リ フ 置き換えが forcechars サブオプ シ ョ ン で強制 さ れている と き、 PDFlib は、 すべての 指定 さ れた予備フ ォ ン ト の中で、 リ ス ト さ れた順番に、 このキ ャ ラ ク タ に対するグ リ フ を検索 し ます。 適合するグ リ フがいずれかの予備 フ ォ ン ト の中に見つかっ た と きは、 そのキ ャ ラ ク タ はこ のグ リ フ で印字 さ れ、 見つから なかっ た と きは、 通常のグ リ フ置き換えの し く みが適用 さ れます。 fontname (名前文字列。 PDF_fill_textblock( ) 以外の暗黙的 フ ォ ン ト 読み込みの場合、 テキス ト 書式オプ シ ョ ン font が指定 さ れていない と きは必須) フ ォ ン ト の実際の名前ま たはエ イ リ ア ス名 (大文字 ・ 小文 字は区別 さ れます)。 こ の名前を用いて フ ォ ン ト デー タ が検索 さ れます。 Windows では、 カ ン マの 後に フ ォ ン ト ス タ イル名を フ ォ ン ト 名に付加する こ と がで き ます (詳 し く は PDFlib チ ュ ー ト リ ア ル参照)。 fontname の先頭が 「@」 キ ャ ラ ク タ の場合、 そのフ ォ ン ト には縦書きが適用 さ れます。 PDF_load_font( ) : フ ォ ン ト 名を関数の引数 と し て与え る こ と も で き ます。 fontstyle (キーワー ド ・ 非推奨) 擬似フ ォ ン ト ス タ イルの作成を制御 し ます。 使え るキーワー ド は normal ・ bold ・ italic ・ bolditalic です。 こ のフ ォ ン ト を用いて作成 さ れるすべてのテキス ト は、 適切に fakebold および / または italicangle テキス ト 書式オプ シ ョ ン を用いて ス タ イル さ れます。 italicangle に別の値が設定 さ れていない限 り 、 -12 が用い られます。 こ のオプ シ ョ ン を コ ア フ ォ ン ト のいずれかに適用する と 、 フ ォ ン ト ス タ イルはフ ェ イ ク さ れず、 適切なボール ド ・ イ タ リ ッ ク ・ ボール ド イ タ リ ッ クの フ ォ ン ト バ リ エーシ ョ ンが選ばれます。 そ のよ う な フ ォ ン ト が得られない と きは (Times-Bold に bold を適用 し た等)、 こ のオプ シ ョ ンは無 視 さ れます。 デ フ ォ ル ト : normal 70 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.2 PDF_load_font( ) と 暗黙的フ ォ ン ト 読み込みのフ ォ ン ト 読み込みオプ シ ョ ン オプ シ ョ ン 説明 initialsubset (Unichar か Unicode 範囲の リ ス ト 、 またはキーワー ド の リ ス ト 。 embedding=true かつ subsetting=true の と きのみ意味を持ち ます) 初期フ ォ ン ト サブ セ ッ ト にグ リ フ を含めたい Unicode 値群を指定 し ます。 これを活用する と 、 同等のサブ セ ッ ト を生成 さ せる こ と に よ っ て PDF 出力フ ォ ン ト 容量を削減 さ せる こ と がで き、 複数の文書を連結する際の最適化が容易にな り ます。 Unicode 値群は、 Unichar 群か Unicode 範囲群によ っ て明示的に指定する こ と も で き ます し 、 8 ビ ッ ト エ ン コ ーデ ィ ングの名前に よ っ て暗黙的に指定する こ と も 可能です。 Unichar ・ Unicode 範囲はエ ン コ ーデ ィ ング名に優先 し ます。 使え るキーワー ド (デ フ ォ ル ト : empty) : empty 初期フ ォ ン ト サブ セ ッ ト は空にな り ます。 サブ セ ッ ト の内容は文書内のテキス ト に よ っ て決定 さ れます。 任意の 8 ビ ッ ト エ ン コ ーデ ィ ング名 そのエ ン コ ーデ ィ ング内で見つかっ たすべての Unicode 値が初期サブ セ ッ ト へ含まれま す。 追加のキ ャ ラ ク タ に対するグ リ フ も、 文書内のテキス ト に よ っ て、 ま たは features ・ shaping テキス ト オプ シ ョ ンに よ っ て必要 と なれば、 自動的にサブ セ ッ ト へ 追加 さ れます。 keepfont (論理値。 Type 3 フ ォ ン ト では不可) false にする と 、 フ ォ ン ト は PDF_end_document( ) で自動的に 削除 さ れます。 true にする と 、 フ ォ ン ト は後続する文書群で も、 PDF_close_font( ) を呼び出すま で 使 う こ と がで き ます。 デ フ ォ ル ト : PDF_load_font( ) がオブジェクトス コ ープ内で呼び出 さ れたな ら true、 そ う で ないな ら false keepnative (論理値。 非 Unicode CMap に よ る日中韓フ ォ ン ト でのみ意味を持ち、 それ以外の フ ォ ン ト または カ ス タ ム CMap では無視 さ れます。 embedding=true に し ている と きは false を強制 さ れます) false にする と 、 こ のフ ォ ン ト のテキス ト は、 PDF 出力作成時に CID 値へ変換 さ れます (glyphid 指定 と Identity-H エ ン コ ーデ ィ ング を使 っ て)。 API 関数に与え る テキス ト は、 選んだ CMap (Shift-JIS 等) に依然一致 し ていなければな り ません。 し か し そのフ ォ ン ト は、 テキス ト フ ロー と 、 あ ら ゆる単純テキス ト 出力関数に使 う こ と がで き ます (ですが フ ォ ーム フ ィ ール ド には使え ません)。 Unicode CMap によ る フ ォ ン ト は、 グ リ フ の置き換え と 予備フ ォ ン ト が利用で き ない点以 外は、 encoding=unicode と 同様に動作 し ます。 true にする と 、 この フ ォ ン ト のテキス ト は、 選んだ CMap に従 っ てそのネ イ テ ィ ブ な形式のま ま PDF 出力へ書き込まれます。 そのフ ォ ン ト は、 フ ォ ーム フ ィ ール ド と 、 あ ら ゆる単純テキス ト 出 力関数に使 う こ と がで き ますが、 テキス ト フ ローには使え ません。 デ フ ォ ル ト : TrueType フ ォ ン ト または embedding=true の場合は false、 それ以外の場合は true。 linegap (-2048 から 2048 ま での整数) 行間。 上記 ascender 参照。 metadata (オプ シ ョ ン リ ス ト ) フ ォ ン ト のための メ タ デー タ を与え ます (281 ページ 「14.2 XMP メ タ デー タ 」 参照) monospace (1 から 2048 ま での整数。 PDF/A ・ PDF/UA では不可。 非推奨) フ ォ ン ト 内のすべてのグ リ フ を強 制的に指定幅 ( フ ォ ン ト 座標系で表 し た もの。 1000 単位が文字サイ ズに等 し い) に し ます。 Type 3 フ ォ ン ト の場合は、 0 でないグ リ フ幅がすべて変更 さ れます。 こ のオプ シ ョ ンは、 標準日中韓 フ ォ ン ト に対 し てのみ使用するべき であ り 、 ま た、 コ ア フ ォ ン ト では使え ません。 フ ォ ン ト を埋 め込む と 、 このオプ シ ョ ンは無視 さ れます。 デ フ ォル ト : 値な し ( フ ォ ン ト 内の メ ト リ ッ クが使 われます) optimizeinvisible (論理値。 PDF/X-1/2/3 では不可) true にする と 、 不可視テキス ト (すなわち textrendering=3) に対 し てのみ用い られている フ ォ ン ト は、 embedding=true であ っ て も 埋め込まれません。 こ れは、 OCR 出力を不可視テキス ト と し て持つ PDF/A 出力へのフ ォ ン ト 埋め込みを抑制する ために有用で し ょ う 。 フ ォ ン ト が埋め込まれな く て も、 フ ォ ン ト フ ァ イルは通常どお り 設定する必要があ り ま す。 なぜな ら PDFlib が埋め込み省略を決定するのは文書の最後にな っ てか ら だか ら です。 デ フ ォ ル ト : false 4.1 フ ォ ン ト 処理 71 表 4.2 PDF_load_font( ) と 暗黙的フ ォ ン ト 読み込みのフ ォ ン ト 読み込みオプ シ ョ ン オプ シ ョ ン 説明 preservepua (論理値) true の場合、 フ ォ ン ト 内で私用領域 (PUA) 内の Unicode 値へマ ッ プ さ れているキ ャ ラ ク タ は、 PDF 出力内でその PUA 値を保ち ます。 こ れは、 その PUA キ ャ ラ ク タ 群が日本語の外字 / EUDC キ ャ ラ ク タ のよ う に ロー カルに定義 さ れた意味付けを伴っ ている場合に有用で し ょ う 。 false の場合、 PUA キ ャ ラ ク タ は、 PDF 出力内の ToUnicode CMap 内で U+FFFD (Unicode 置換キ ャ ラ ク タ ) へマ ッ プ さ れます。 デ フ ォ ル ト : false readfeatures (論理値。 TrueType ・ OpenType フ ォ ン ト に対 し て、 かつ encoding=unicode ・ glyphid ・ Unicode CMap のいずれかの と きのみ意味を持ち ます) TrueType または OpenType フ ォ ン ト の機能テーブル を フ ォ ン ト か ら読み込むかど う かを指定 し ます。 OpenType 機能のテキス ト への実際の適用は features オプ シ ョ ンによ っ て制御 さ れます (表 5.4 参照)。 OpenType 機能が必要でない と きは、 こ のオプ シ ョ ン を false に設定する と 、 フ ォ ン ト の読み込みが速 く な る可能性があ り ます。 デ フ ォル ト : true readkerning (論理値) カ ーニ ング値を フ ォ ン ト か ら読み込むかど う かを制御 し ます。 カ ーニ ング値のテキス ト への実際の適用はテキス ト オプ シ ョ ン kerning に よ っ て制御 さ れます (表 4.7 参照)。 カ ーニ ン グ が必要で ない と きは、 このオプ シ ョ ン を false に設定する と 、 フ ォ ン ト の読み込みが速 く な る可 能性があ り ます。 デ フ ォル ト : 横書きの場合には true、 縦書きの場合には false readselectors (論理値。 TrueType ・ OpenType フ ォ ン ト に対 し てのみ意味を持ち ます) true の場合、 異体字セ レ ク タ が フ ォ ン ト 内にあれば読み込まれます。 こ れは、 Unicode テキス ト 内の表意文字異体字シーケ ン ス (IVS) を自動的に置き換え る ために必要です。 readshaping (論理値。 TrueType ・ OpenType フ ォ ン ト に対 し て、 かつ unicode ・ glyphid エ ン コ ーデ ィ ングに対 し てのみ意味を持ち ます) TrueType または OpenType フ ォ ン ト の、 複雑用字系のシ ェ ーピ ングに 必要なシ ェ ーピ ングテーブルを読み込むかど う かを指定 し ます。 テキス ト の実際のシ ェ ーピ ング は shaping オプ シ ョ ンによ っ て制御 さ れます (表 5.4 参照)。 シ ェ ーピ ングが必要でない と きは、 readfeatures を false に設定する と 、 メ モ リ を節約する こ と がで き ます。 デ フ ォ ル ト : true readvertical metrics (論理値) true の場合、 かつオプ シ ョ ン vertical も true の場合には、 TrueType ま たは OpenType フ ォ ン ト の縦書き メ ト リ ッ ク を (存在すれば) 使用 し て テキス ト 出力を整形 し ます。 デ フ ォ ル ト : false replacementchar (Unichar かキーワー ド 。 glyphcheck=replace の場合にのみ意味を持ち ます。 非 Unicode CMap また は glyphid エ ン コ ーデ ィ ングで読み込む フ ォ ン ト では無視 さ れます) 選択 し ている フ ォ ン ト で利 用で き ない、 かつ予備フ ォ ン ト または タ イ ポグ ラ フ ィ 的に類似のキ ャ ラ ク タ で置き換えで き ない グ リ フ を、 指定 し た Unicode 値で置き換え ます。 そのフ ォ ン ト が、 指定 さ れた Unicode キ ャ ラ ク タ に対するグ リ フ を含んでいない場合には、 auto の動作が適用 さ れます。 U+0000 を使 う と フ ォ ン ト の 「グ リ フ な し 」 記号を指定で き ますが、 encoding=builtin で読み込んだ記号フ ォ ン ト に対 し て は、 Unicode 値でな く バイ ト コ ー ド を与え る必要があ り ます。 Unicode キ ャ ラ ク タ のかわ り に以下のキーワー ド を用いる こ と も で き ます (デ フ ォル ト : auto) : simplefont 72 auto 以下の一覧の中で、 そのフ ォ ン ト 内でグ リ フが得られる最初のキ ャ ラ ク タ が、 置き換え キ ャ ラ ク タ と し て使用 さ れます : U+00A0 (NO-BREAK SPACE)、 U+0020 (SPACE)、 U+0000 (グ リ フが見つから ない記 号)。 drop そのキ ャ ラ ク タ に対 し て出力が作成 さ れません。 error タ イ ポグ ラ フ ィ 的に類似にキ ャ ラ ク タ が得られない場合に例外が発生 し ます。 こ れは、 読めないテキス ト 出力を回避する ために使え ます。 (論理値。 8 ビ ッ ト エ ン コ ーデ ィ ングの TrueType フ ォ ン ト に対 し てのみ意味を持ち ます) こ のオプ シ ョ ンが true かつ embedding=false の場合、 そのフ ォ ン ト は CID フ ォ ン ト と し てではな く シ ン プ ルな フ ォ ン ト と し て出力 さ れます。 PDF ビ ュ ーアによ っ ては (特に Acrobat)。 表示する マ シ ンに そのフ ォ ン ト がイ ン ス ト ール さ れていない と き フ ォ ン ト 置き換え を成功 さ せる ために こ れが必要 です。 ただ し 、 その フ ォ ン ト はフ ォ ーム フ ィ ール ド では使用で き な く な る こ と があ り ます。 デ フ ォル ト : false 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.2 PDF_load_font( ) と 暗黙的フ ォ ン ト 読み込みのフ ォ ン ト 読み込みオプ シ ョ ン オプ シ ョ ン 説明 skipembedding (キーワー ド の リ ス ト 。 embedding=true の場合にのみ意味を持ち ます) こ の リ ス ト 内で指定 さ れた 1 個ない し 複数の条件を そのフ ォ ン ト が満たす場合には、 フ ォ ン ト 埋め込みを警告な く 無視 し ま す。 これは、 全般 と し てはフ ォ ン ト 埋め込みを望むけれど も 、 ある特定の フ ォ ン ト 群またはエ ラ ー状況に対 し てはフ ォ ン ト が埋め込まれないほ う が望ま し い と い う 場合に有用で し ょ う 。 使え るキーワー ド : fstype フ ォ ン ト が、 TrueType か OpenType フ ォ ン ト であ り 、 かつ、 そのフ ォ ン ト の OS/2 テーブ ル内の fsType フ ラ グに従っ て埋め込みを許可 し ていない。 hostfont フ ォ ン ト がホス ト フ ォ ン ト し て読み込まれた。 フ ォ ン ト が、14 種の Latin コ ア フ ォ ン ト の集合に含まれている (全一覧については PDFlib チ ュ ー ト リ アルを参照) が、 フ ォ ン ト アウ ト ラ イ ン フ ァ イルが得られないので埋め込め ない。 metricsonly フ ォ ン ト の PFM か AFM メ ト リ ク ス フ ァ イルだけが利用可能であ り 、 そのフ ォ ン ト アウ ト ラ イ ン (PFA ・ PFB) が見つか ら ない。 standardcjk フ ォ ン ト が、 標準日中韓フ ォ ン ト の集合に含まれている (全一覧については PDFlib チ ュ ー ト リ アルを参照) が、 フ ォ ン ト アウ ト ラ イ ン フ ァ イルが得られないので埋め込め ない。 latincore デ フ ォル ト : 空 リ ス ト PDF/A ・ PDF/X ・ PDF/UA では空 リ ス ト のみ可です。 skipposttable (論理値。 非サポー ト 。 TrueType ・ OpenType フ ォ ン ト に対 し てのみ意味を持ち ます) TrueType ・ OpenType フ ォ ン ト の post テーブルを解析 し てグ リ フ名を決定するかど う かを指定 し ます。 この オプ シ ョ ン を true に設定する と フ ォ ン ト の読み込みが速 く な る可能性があ り ますが、 非標準的な 名前を持つグ リ フへのグ リ フ 名参照はそのフ ォ ン ト では働かな く な り ます ( こ れは主に記号フ ォ ン ト について起 こ り う る こ と で、 テキス ト フ ォ ン ト では通常起こ り ません)。 デ フ ォ ル ト : false subsetlimit (float またはパーセ ン ト 値。 Type 3 フ ォ ン ト では無視 さ れます) フ ォ ン ト のグ リ フの総数に対す る、 文書で使っ ているグ リ フ の比率が、 指定パーセ ン ト 値を超え る と きは、 自動 フ ォ ン ト サブ セ ッ ト 化を無効に し ます。 デ フ ォ ル ト : 100% subsetminsize (float。 Type 3 フ ォ ン ト では無視 さ れます) 元のフ ォ ン ト フ ァ イルのサイ ズが、 KB 単位の指定値 よ り 小 さ い と きは、 自動フ ォ ン ト サブ セ ッ ト 化を無効に し ます。 デ フ ォル ト : 50 subsetting (論理値) フ ォ ン ト をサブ セ ッ ト 化するかど う かを制御 し ます。 Type 3 フ ォ ン ト をサブ セ ッ ト 化す るには、 フ ォ ン ト 定義を 2 回に分けて行 う 必要があ り (PDFlib チ ュ ー ト リ アル参照)、 PDF_load_ font( ) への 1 回目の呼び出 し で subsetting オプ シ ョ ン を与え る必要があ り ます。 デ フ ォ ル ト : サブ セ ッ ト 化は、 subsetlimit/subsetminsize 設定に基づいて自動的に有効に さ れます。 unicodemap (論理値。 PDF/A-1a/2a/2u/3a/3u ・ PDF/UA-1 では false に設定 し てはいけません) ToUnicode CMap の生成を制御 し ます。 こ のオプ シ ョ ンは タ グ付き PDF モー ド では無視 さ れます。 デ フ ォ ル ト : true vertical (論理値。 TrueType ・ OpenType フ ォ ン ト のみ。 定義済み CMap を指定 し ている と きは無視 さ れま す。 フ ォ ン ト 名が @ で始ま る と きは true を強制 さ れます) true な ら 、 縦書き用に フ ォ ン ト を用 意 し ます。 xheight (-2048 から 2048 ま での整数) x ハイ ト 。 上記 ascender 参照。 4.1 フ ォ ン ト 処理 73 表 4.3 PDF_load_font( ) の fallbackfonts オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 フォン ト読 み込みオプ シ ョ ン群 フ ォ ン ト を暗黙的に (すなわち font オプ シ ョ ン でな く fontname ・ encoding オプ シ ョ ン で) 指定 し た と きは、 表 4.2 に従 っ た fallbackfonts 以外のすべての フ ォ ン ト 読み込みオプ シ ョ ン をサブオ プ シ ョ ン と し て与え る こ と がで き ます。 非 Unicode CMap で読み込んだ フ ォ ン ト は、 予備フ ォ ン ト と し て用いる こ と はで き ません。 font (フ ォ ン ト ハン ド ル) PDF_load_font( ) を fallbackfonts オプ シ ョ ン な し で呼び出 し て返 さ れた フ ォ ン ト ハン ド ル。 このオプ シ ョ ン を与え る と 、 すべての フ ォ ン ト 読み込みオプ シ ョ ンが無視 さ れま す (fontname ・ encoding も)。 フ ォ ン ト は、 embedding=false かつ keepnative=true に よ る標準日 中韓フ ォ ン ト であ っ てはいけません。 fontsize (float またはパーセ ン ト 値) 予備 フ ォ ン ト の文字サイ ズを、 ユーザー座標で、 またはカ レ ン ト 文字 サイ ズに対するパーセ ン ト 値 と し て表 し た もの。 このオプ シ ョ ン を利用する と 、 予備 フ ォ ン ト の デザイ ン さ れた文字サイ ズがベース フ ォ ン ト と 合わない と き に、 予備フ ォ ン ト の文字サイ ズを調 節する こ と がで き ます。 デ フ ォル ト : 100% forcechars (Unichar か Unicode 範囲の リ ス ト 、 またはキーワー ド 1 個) つねに予備フ ォ ン ト 内のグ リ フ で印字 さ せたい (glyphcheck 設定によ ら ず) キ ャ ラ ク タ 群を指定 し ます。 予備フ ォ ン ト は、 指定 し た キ ャ ラ ク タ に対する グ リ フ を含んでいるか (個々のキ ャ ラ ク タ を指定 し た場合)、 あ るいは少な く と も指定 し た Unicode 範囲の最初 と 最後のキ ャ ラ ク タ に対する グ リ フ を含んでいる必要があ り ま す。 ベース フ ォ ン ト に対 し て 8 ビ ッ ト エ ン コ ーデ ィ ング を指定 し ている場合で も 、 このオプ シ ョ ンには Unicode 値を指定する こ と が可能です。 以下のキーワー ド のいずれか一つを与え る こ と も で き ます : textrise gaiji 予備フ ォ ン ト は SING フ ォ ン ト を参照する必要があ り 、 そ し て こ のキーワー ド は、 SING フ ォ ン ト の メ イ ング リ フの Unicode 値へのシ ョ ー ト カ ッ ト と し て利用する こ と がで き ま す。 all キ ャ ラ ク タ がベース フ ォ ン ト 内で得られる場合であ っ て も、 予備フ ォ ン ト 内のすべての グ リ フが、 ベース フ ォ ン ト 内の照応するキ ャ ラ ク タ を置換する ために使われます。 (float またはパーセ ン ト 値) テキス ト ラ イ ズ値 (表 4.7 参照)。 パーセ ン ト 値は、 予備フ ォ ン ト に対 し て指定 し た (すなわち、 fontsize サブオプ シ ョ ンがある な ら それを適用 し た後の) 文字サイ ズ に対する比です。 こ のオプ シ ョ ン を利用する と 、 予備 フ ォ ン ト のデザイ ン さ れたテキス ト ラ イ ズ がベース フ ォ ン ト と 合わない と き に、 予備フ ォ ン ト のテキス ト の位置を調節する こ と がで き ます。 デフ ォル ト : 0 C++ Java C# void close_font(int font) Perl PHP close_font(int font) C void PDF_close_font(PDF *p, int font) 文書内で ま だ使われていない、 開かれてい る フ ォ ン ト ハン ド ルを閉 じ ます。 font 文書内で ま だ使われていない、 かつ閉 じ ら れていない、 PDF_load_font( ) に よ っ て 返 さ れた フ ォ ン ト ハン ド ル。 詳細 74 こ の関数はフ ォ ン ト ハン ド ルを閉 じ 、その フ ォ ン ト に関連づけ ら れていたすべての リ ソ ー ス を解放 し ます。 こ の呼び出 し の後に、 その フ ォ ン ト ハン ド ルを使っ てはいけ ません。 通 常、 フ ォ ン ト は文書の終わ り に自動的に閉 じ ら れます。 し か し 、 フ ォ ン ト を閉 じ る こ と は 以下の よ う な場合に有用です : > フ ォ ン ト のプ ロ パテ ィ をPDF_info_font( )で取得 し た後、その フ ォ ン ト を カ レ ン ト のPDF 文書内では使わない こ と が決定 さ れた。 > フ ォ ン ト が文書の境界を越え て保持 さ れていたが (PDF_load_font( ) の keepfont オプ シ ョ ン で)、 も う 必要ないので捨て る べ き であ る 。 第 4 章 : フ ォ ン ト ・ テキス ト 関数 フ ォ ン ト がカ レ ン ト 文書内ですでに使われてい る と き は、 閉 じ てはいけ ません。 スコープ 任意 C++ Java C# double info_font(int font, String keyword, String optlist) Perl PHP float info_font(int font, string keyword, string optlist) C double PDF_info_font(PDF *p, int font, const char *keyword, const char *optlist) 読み込んだ フ ォ ン ト に関す る 詳 し い情報を取得 し ます。 font PDF_load_font( ) に よ っ て返 さ れた フ ォ ン ト ハン ド ル、 あ る いはキー ワ ー ド に よ っ ては -1 (PHP では 0)。 keyword ほ し い情報を表 4.5 に従っ て指定 し た キーワー ド 。 使え る キーワー ド : > グ リ フ マ ッ ピ ン グのためのキー ワー ド : cid ・ code ・ glyphid ・ glyphname ・ unicode > フ ォ ン ト メ ト リ ッ ク : ascender ・ capheight ・ descender ・ italicangle ・ linegap ・ xheight > フ ォ ン ト の フ ァ イ ル ・ 名前 ・ 種別 : cidfont ・ familyname ・ fontfile ・ fontname ・ fonttype ・ metricsfile ・ outlineformat ・ singfont ・ standardfont ・ supplement > フ ォ ン ト の技術的情報 : feature ・ featurelist ・ hostfont ・ kerningpairs ・ numglyphs ・ shapingsupport ・ vertical > 表意文字異体字セ レ ク タ のためのキー ワー ド 群 : maxuvsunicode ・ minuvsunicode ・ selector ・ selectorlist > フ ォ ン ト と エン コ ーデ ィ ン グの関係 : codepage ・ codepagelist ・ encoding ・ fallbackfont ・ keepnative ・ maxcode ・ numcids ・ numusableglyphs ・ predefcmap ・ replacementchar ・ symbolfont ・ unicodefont ・ unmappedglyphs > カ レ ン ト 文書に対する フ ォ ン ト 処理の結果 : numusedglyphs ・ usedglyph ・ willembed ・ willsubset > Type 3 フ ォ ン ト と PDF/A か PDF/X のための色互換性チ ェ ッ ク : checkcolorspace optlist 選択 し た キーワ ー ド を さ ら に修飾す る オプシ ョ ン リ ス ト 。 以下のオプシ ョ ンが使 え ます : > 表 4.5 の各キー ワー ド の欄で解説す る 、 キー ワー ド 独自のオプシ ョ ン群。 > グ リ フ を指定す る ための、 表 4.4 に従っ たマ ッ ピ ン グオプシ ョ ン : cid ・ code ・ glyphid ・ glyphname ・ selector ・ unicode こ れ ら のオプシ ョ ンは、マ ッ ピ ン グオプシ ョ ン cid ・ code ・ glyphid ・ glyphname ・ unicode の ソ ース値を定義 し ます。 こ れ ら のマ ッ ピ ン グオプシ ョ ンは相互に排他的です。 code ・ glyphname・unicode オプシ ョ ンはencoding オプシ ョ ン と 組み合わせ る こ と が可能です。 表 4.4 PDF_info_font( ) でグ リ フ を指定する オプ シ ョ ン オプ シ ョ ン 説明 cid (数値) グ リ フの CID 値。 cidfont=1 の と きのみ意味を持ち ます code (範囲 0 ~ 255 の数値。 8 ビ ッ ト エ ン コ ーデ ィ ン グのフ ォ ン ト のみ) エ ン コ ーデ ィ ングス ロ ッ ト glyphid (範囲 0 ~ 65535 の数値) 内部グ リ フ ID glyphname (文字列) グ リ フの名前。 cidfont=1 の と き には意味を持ち ません selector (Unichar) 範囲 U+0xFE00 ~ U+FE0F ま たは U+E0100 ~ U+E01EF 内の異体字セ レ ク タ の Unicode 値。 selector キーワー ド に よ っ て返 さ れたすべての値を こ こ で与え る こ と がで き ます。 4.1 フ ォ ン ト 処理 75 表 4.4 PDF_info_font( ) でグ リ フ を指定する オプ シ ョ ン オプ シ ョ ン 説明 unicode (Unichar) Unicode キ ャ ラ ク タ 戻り値 keyword に よ っ て、 お よ び場合に よ っ てはオプシ ョ ンで補足 し て要求 し た、 フ ォ ン ト ま た はエン コ ーデ ィ ン グの特性の値。キー ワー ド と オプシ ョ ンの組み合わせが仕様外の と き は -1 (PHP では 0) が返 さ れます。 要求 さ れた テ キ ス ト がテ キ ス ト を生み出す場合には、 文字列番号が返 さ れ、 その照応す る 文字列を、 PDF_get_string( ) を用いて取得す る 必要が あ り ます。 詳細 こ の関数は、 以下の異な る ソ ース か ら の情報を提供 し ます : > 有効な フ ォ ン ト ハン ド ルを与え た と き は、 その フ ォ ン ト か ら 集めた情報 を返 し ま す。 例 : フ ォ ン ト の メ ト リ ッ ク ・ 名前 ・ 種別、 特定の glyphid に対す る unicode 値。 > font = -1(PHP では 0)かつ encoding オプシ ョ ン を与え た と き は、こ のエン コ ーデ ィ ン グ に関す る 情報を返 し ます。例 : エン コ ーデ ィ ン グ内の 1 つの code に対す る unicode 値。 > font = -1 (PHP では 0) かつ encoding オプシ ョ ン を与え ていない と き は、 PDFlib の内部 テーブル群か ら 集めた情報を返 し ます。 例 : 特定の glyphname に対す る unicode 値。 スコープ 任意 表 4.5 PDF_info_font( ) のキーワー ド ・ オプ シ ョ ン キーワー ド 説明 ・ オプ シ ョ ン ascender ア セ ン ダの メ ト リ ッ ク値。 使え るオプ シ ョ ン (デ フ ォ ル ト : fontsize=1000) : faked (論理値) 値を フ ォ ン ト または メ ト リ ッ ク フ ァ イルから得 られなかっ たため推算する必 要があ る と きは 1。 そ う で ない と きは 0 fontsize (文字サイ ズ) 値を指定文字サイ ズにあわせて比例計算 し ます capheight キ ャ ッ プハイ ト の メ ト リ ッ ク値。 ascender 参照。 cid 指定 し たグ リ フの CID、 あるいは得ら れなか っ た と きは -1。 使え る オプ シ ョ ン : cid ・ glyphid ・ unicode ・ selector cidfont フ ォ ン ト が CID フ ォ ン ト と し て埋め込まれる な ら 1、 そ う で ないな ら 0 code エ ン コ ーデ ィ ングス ロ ッ ト を表す範囲 0 ~ 255 の数値か、 またはそのよ う な ス ロ ッ ト が フ ォ ン ト 内ま たはエ ン コ ーデ ィ ング内 (encoding オプ シ ョ ン を与え、 かつ font=-1 (PHP では 0) の場合) に見つから なかっ た と きは -1。 使え る オプ シ ョ ンはマ ッ ピ ングオプ シ ョ ン code ・ glyphid ・ glyphname ・ unicode と 以下のオプ シ ョ ン です : encoding (文字列) 8 ビ ッ ト エ ン コ ーデ ィ ングの名前 codepage 指定 し た コ ー ド ページに フ ォ ン ト が対応 し ているかど う かを調べます。 こ の情報は、 TrueType/ OpenType フ ォ ン ト の OS/2 テーブルから 、 も し 入手可能であれば採 られます。 使え る オプ シ ョ ン: name (文字列。 必須) コ ー ド ページの名前を cpXXXX の形で。 こ こ で XXXX は、 コ ー ド ページ の 10 進数値を表 し ます (例 : cp437 ・ cp1252) 以下の戻 り 値で、 指定 さ れた コ ー ド ページに フ ォ ン ト が対応 し ているかど う かを示 し ます。 76 -1 フ ォ ン ト が TrueType ・ OpenType フ ォ ン ト でないので不明です。 0 指定 さ れた コ ー ド ページに フ ォ ン ト は対応 し ていません。 1 指定 さ れた コ ー ド ページに フ ォ ン ト は対応 し ています。 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.5 PDF_info_font( ) のキーワー ド ・ オプ シ ョ ン キーワー ド 説明 ・ オプ シ ョ ン codepagelist フ ォ ン ト が対応 し ているすべての コ ー ド ページ (cpXXXX の形で) のスペース区切 り の リ ス ト の文 字列番号、 あ るいはフ ォ ン ト が TrueType ・ OpenType フ ォ ン ト でないので コ ー ド ページ リ ス ト が不 明の と き (codepage 参照) は -1。 checkcolorspace (Type 3 フ ォ ン ト で colorized=true の場合にのみ意味を持ち ます) そのフ ォ ン ト がカ レ ン ト ペー ジ上で、 PDF/A か PDF/X の色関連の違反の リ ス ク を冒 さ ず安全に使用で き る な ら 1、 そ う でない なら 0 descender デ ィ セ ン ダの メ ト リ ッ ク値。 ascender 参照。 encoding フ ォ ン ト のエ ン コ ーデ ィ ングまたは CMap の名前の文字列番号。 使え るオプ シ ョ ン (デ フ ォ ル ト : actual) : api (論理値) true にする と 、 API で指定 さ れるの と 同 じ エ ン コ ーデ ィ ング名 actual (論理値) true にする と 、 フ ォ ン ト に対 し て使われる実際のエ ン コ ーデ ィ ング名 fallbackfont unicode オプ シ ョ ン で指定 し たキ ャ ラ ク タ を印字する ために用い られるベース フ ォ ン ト か予備フ ォ ン ト のハン ド ル。 これを利用する と 、 指定 し たキ ャ ラ ク タ に対 し て用い ら れるグ リ フ を予備フ ォ ン ト 群の連な り の中のどのフ ォ ン ト が実際に提供するかを調べる こ と がで き ます。 そのキ ャ ラ ク タ がいずれのベース フ ォ ン ト ・ 予備フ ォ ン ト で も印字で き ない と きは、 -1 が返 さ れます。 使え る オプ シ ョ ン : unicode familyname フ ォ ン ト フ ァ ミ リ の名前の文字列番号、 または得られないな ら -1 feature PDFlib が対応 し ている OpenType 機能テーブルを フ ォ ン ト が含んでいるかど う かを調べます。 使え るオプ シ ョ ン : language (キーワー ド 。 script を与え ている と きのみ) 言語の名前を指定 し ます。 デ フ ォ ル ト : _none name (キーワー ド 。 必須) OpenType 機能テーブルの 4 文字の名前を指定 し ます。 例 : liga (標準合字) ・ ital (日中韓フ ォ ン ト の斜体) ・ vert (縦書き)。 機能 kern については取 得で き ません。 script (キーワー ド ) 用字系の名前を指定 し ます。 デ フ ォル ト : _none language ・ name ・ script のいずれかに対 し て、 未知のキーワー ド が与え られた場合には、 例外が 発生 し ます。 既知のキーワー ド の一覧については PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 以 下の戻 り 値で、 指定 さ れた OpenType 機能テーブルがフ ォ ン ト 内に存在 し ていて PDFlib がそれに 対応 し ているかど う かを示 し ます : -1 フ ォ ン ト 内に機能テーブルが一切見つから ない。 0 その機能は、 そのフ ォ ン ト 内で、 指定 さ れた用字系 と 言語に対 し ては利用可能でない、 または、 PDFlib に と っ て未知である。 1 その機能は、 指定 さ れた用字系 と 言語に対 し て利用可能であ る。 featurelist フ ォ ン ト 内で得 られて PDFlib が対応 し ているすべての機能のスペース区切 り の リ ス ト の文字列番 号、 あ るいは機能テーブルが全 く 得られない と きは -1。 fontfile フ ォ ン ト のアウ ト ラ イ ン フ ァ イルのパス名の文字列番号か、 または得られない と きは -1 fontname フ ォ ン ト 名の文字列番号か、 または得ら れない と きは -1。 使え る オプ シ ョ ン (デ フ ォ ル ト : acrobat) : fontstyle acrobat (論理値) true にする と 、 Acrobat で表示 さ れるの と 同 じ フ ォ ン ト 名 api (論理値) true にする と 、 API で指定 さ れるの と 同 じ フ ォ ン ト 名 full (論理値) true にする と 、 PDF の フ ォ ン ト 記述子の /FontName 項目 fontstyle オプ シ ョ ンの値 (normal ・ bold ・ italic ・ bolditalic) の文字列番号。 4.1 フ ォ ン ト 処理 77 表 4.5 PDF_info_font( ) のキーワー ド ・ オプ シ ョ ン キーワー ド 説明 ・ オプ シ ョ ン fonttype フ ォ ン ト 種別の文字列番号、 ま たは得ら れない と きは -1。 知られている フ ォ ン ト 種別は Multiple Master ・ OpenType ・ TrueType ・ TrueType (CID) ・ Type 1 ・ Type 1 (CID) ・ Type 1 CFF ・ Type 1 CFF (CID) ・ Type 3 glyphid (8 ビ ッ ト エ ン コ ーデ ィ ン グによ る フ ォ ン ト と 、 encoding=builtin に よ る記号フ ォ ン ト と 、 encoding= unicode によ る フ ォ ン ト のみ) 以下のオプ シ ョ ン で同定 さ れる、 フ ォ ン ト 内部のグ リ フ ID (GID) を表す範囲 0 ~ 65535 の数か、 またはそのよ う なグ リ フが見つか ら なかっ た と きは -1。 使え る オプ シ ョ ンは、 マ ッ ピ ングオプ シ ョ ン群 cid ・ code ・ glyphid ・ glyphname ・ unicode ・ selector。 glyphname 指定 し たグ リ フの名前の文字列番号、 またはそのよ う なグ リ フがフ ォ ン ト 内ま たは指定 し た エ ン コ ーデ ィ ング内 (encoding オプ シ ョ ン を与えていてかつ font=-1 (PHP では 0) の場合) に見つか ら ない と きは -1。 使え る オプ シ ョ ンはマ ッ ピ ングオプ シ ョ ン code ・ glyphid ・ glyphname ・ unicode と 以下の フ ォ ン ト です : encoding (文字列) 8 ビ ッ ト エ ン コ ーデ ィ ングの名前 hostfont フ ォ ン ト がホス ト フ ォ ン ト な ら 1、 そ う でないな ら 0 italicangle フ ォ ン ト のイ タ リ ッ ク角度 (PDF の フ ォ ン ト 記述子の中の ItalicAngle) keepnative keepnative オプ シ ョ ンの出力値。 kerningpairs フ ォ ン ト 内のカ ーニ ングペアの数 linegap 行間の メ ト リ ッ ク値。 ascender 参照。 maingid メ イ ン グ リ フ のグ リ フ ID (SING テーブルの メ ンバ mainGID)。 maxcode フ ォ ン ト のエ ン コ ーデ ィ ン グの最大の コ ー ド 値。 具体的には、 シ ングルバイ ト エ ン コ ーデ ィ ング に対 し ては 0xFF、 encoding=glyphid では numglyphs-1、 それ以外の場合はエ ン コ ーデ ィ ング内の 最大の Unicode 値。 metricsfile フ ォ ン ト の メ ト リ ッ ク フ ァ イル (AFM または PFM) のパス名の文字列番号か、 ま たは得ら れない と きは -1 maxuvsunicode 有効な表意文字異体字シーケ ン ス (IVS) に含まれ う る最大 Unicode 値。 minuvsunicode 有効な表意文字異体字シーケ ン ス (IVS) に含まれ う る最小 Unicode 値。 monospace (非推奨) monospace オプ シ ョ ンの値、 またはそれが与え られていない と きは 0。 numcids フ ォ ン ト が標準 CMap を使っ ている場合は CID の数、 そ う で ないな ら -1 numglyphs フ ォ ン ト 内のグ リ フ の数 (.notdef グ リ フ を含む)。 GID は 0 か ら始ま り ますので、 GID の と り う る 最大値は numglyphs よ り 1 小 さ く な り ます。 numusableglyphs PDF_load_font( ) で与えたエ ン コ ーデ ィ ングによ っ て到達可能な フ ォ ン ト 内のグ リ フ の数 numusedglyphs その時点ま でに生成 さ れたテキス ト の中で使われているグ リ フの数。 outlineformat フ ォ ン ト 形式 : PFA ・ PFB ・ LWFN ・ TTF ・ OTF ・ TTC のいずれか一つ。 TTC ・ WOFF フ ォ ン ト の場合に は、 その基礎を なすベース フ ォ ン ト 形式に対するキーワー ド が返 さ れます。 例 : TTF。 CEF フ ォ ン ト の場合には、 返 さ れる文字列は OTF です。 predefcmap フ ォ ン ト に対する エ ン コ ーデ ィ ング と し て指定 さ れた定義済み CMap の名前の文字列番号、 ま たは 得られないな ら -1。 78 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.5 PDF_info_font( ) のキーワー ド ・ オプ シ ョ ン キーワー ド 説明 ・ オプ シ ョ ン replacement char replacementchar オプ シ ョ ン で指定 さ れたキ ャ ラ ク タ の Unicode 値。 encoding=builtin で読み込ま れた記号 フ ォ ン ト については、 Unicode 値でな く コ ー ド が返 さ れます。 selector index オプ シ ョ ン で指定 さ れた番号を持つ異体字セ レ ク タ の Unicode 値。index オプ シ ョ ンが指定 さ れていない場合、 ま たは指定 さ れたセ レ ク タ がそのフ ォ ン ト 内で得 られない場合には、 -1 が返 さ れます。 使え るオプ シ ョ ン : index (非負整数) セ レ ク タ の番号。 selectorlist そのフ ォ ン ト 内のすべての異体字セ レ ク タ の Unicode 値の空白区切 り リ ス ト を内容 と する文字列の 文字列番号。 16 進数字を h と する と 、 各値は hhhhh 形式で与え られます。 shapingsupport フ ォ ン ト がシ ェ ーピ ングに対応 し ていて、 かつ フ ォ ン ト を読み込む際に readshaping オプ シ ョ ン が与え ら れていたな ら 1、 そ う で ないな ら 0 singfont フ ォ ン ト が SING (外字) フ ォ ン ト な ら 1、 そ う で ないな ら 0 standardfont フ ォ ン ト が PDF コ ア フ ォ ン ト か標準日中韓フ ォ ン ト の と きは 1、 そ う でない と きは 0 supplement 標準日中韓 CMap によ る フ ォ ン ト の と きはキ ャ ラ ク タ 集合の補足数、 そ う でない と きは 0 symbolfont フ ォ ン ト が記号 フ ォ ン ト な ら 1、 そ う で ないな ら 0 (PDF のフ ォ ン ト 記述子の中の symbol フ ラ グ) unicode 指定 し たグ リ フ に対する Unicode UTF-32 値、 または Unicode 値がフ ォ ン ト またはエ ン コ ーデ ィ ン グ (encoding オプ シ ョ ン を与え ていてかつ font=-1 (PHP では 0) の場合) の中に見つか ら なか っ た と きは -1。 使え るオプ シ ョ ンはマ ッ ピ ングオプ シ ョ ン群 cid ・ code ・ glyphid ・ glyphname ・ unicode ・ selector と 以下のオプ シ ョ ン です : encoding (文字列) 8 ビ ッ ト エ ン コ ーデ ィ ン グの名前 unicodefont フ ォ ン ト と エ ン コ ーデ ィ ングの組み合わせがグ リ フ群に対する マ ッ ピ ング を与え る な ら 1、 そ う で ないな ら 0。 非 Unicode CMap を持つ日中韓フ ォ ン ト で keepnative=true の と きは 0 を返 し ます。 unmappedglyphs Unicode PUA 値へマ ッ プ さ れた フ ォ ン ト 内のグ リ フの数。 PUA 値がフ ォ ン ト 内にすでに存在する か、 それ と も PDFlib に よ っ て割 り 当て ら れているかに よ り ません。 usedglyph 指定 し たグ リ フ ID がテキス ト 内で使われている な ら 1、 そ う で ないな ら 0。 使え る オプ シ ョ ン : glyphid vertical フ ォ ン ト が縦書き用な ら 1、 そ う でないな ら 0 weight フ ォ ン ト の太 さ を 100 ~ 900 の範囲で表 し た もの。 400 =標準、 700 =ボール ド willembed フ ォ ン ト が埋め込まれる (embedding オプ シ ョ ンか、 または強制 フ ォ ン ト 埋め込みで) な ら 1、 そ う で ないな ら 0 willsubset フ ォ ン ト のサブ セ ッ ト が作成 さ れる (autosubsetting=true な ら、 サブ セ ッ ト 化が有効にな る ため には、 subsetlimit を超えない こ と が必要です) な ら 1、 そ う で ないな ら 0 xheight 行間の x ハイ ト 値。 ascender 参照。 4.1 フ ォ ン ト 処理 79 4.2 テ キス ト フ ィ ル タ ・ 書式オ プ シ ョ ン こ の項では、 「テキス ト 」 と い う 言葉は内容文字列を、 すなわち、 指定 さ れた書式 (フ ォ ン ト ・ 色な ど) を持つテ キ ス ト を意味 し ます。 こ れに対 し 、 名前文字列 と ハ イ パーテ キ ス ト 文字列 (フ ァ イ ル名な ど) は書式を持ち ません。 詳 し く は PDFlib チ ュ ー ト リ アルを参 照 し て く だ さ い。 テ キ ス ト オ プ シ ョ ン は、 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_ textblock( ) ・ PDF_add/create_textflow( ) で使え ます。 テ キ ス ト オプシ ョ ンは、 表セル と テ キ ス ト ブ ロ ッ ク に も 適用 さ れ ま す。 以下のテ キ ス ト オプシ ョ ン の グループが利用可能で す: > 表 4.6 に従っ たテ キ ス ト フ ィ ル タ オプシ ョ ン群。 > 表 4.7 に従っ たテ キ ス ト 書式オプシ ョ ン群。 > 表 5.4 に従っ たシ ェ ーピ ン グ ・ タ イ ポグ ラ フ ィ オプシ ョ ン群 (PDF_set_text_option( ) で は不可)。 表 4.6 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) のテキス ト フ ィ ル タ オプ シ ョ ン オプ シ ョ ン 説明 actualtext (Boolean; only for PDF_set_text_option( ), PDF_fit_textline( ), and PDF_fill_textblock( )) If true, PDFlib creates a marked content Span with suitable ActualText if the Unicode value(s) derived from the ToUnicode CMap wouldn’t be correct and no user-provided Alt or ActualText was provided. This ensures correct text extraction for glyphs which are used to represent multiple similar looking Unicode values in a font, e.g. Ohm and Omega. Default: true (論理値。 PDF_set_text_option( ) ・ PDF_fit_textline( ) ・ PDF_fill_textblock( ) に対 し てのみ有効) true な らば、 ToUnicode CMap か ら Unicode 値 (群) を導出 さ れる と 正 し く ないであ ろ う と き、 かつ、 ユーザー指定の Alt か ActualText が与え られていない と き、 PDFlib は、 然るべき ActualText を 持っ たマー ク 付き コ ン テ ン ツ Span を生成 し ます。 こ れに よ り 、 オーム と オ メ ガ等、 同一フ ォ ン ト 内で見た目が類似の複数の Unicode 値を表現する ために用い ら れているグ リ フ に対する テキス ト 抽 出が確実に正 し く 行え る よ う にな り ます。 デ フ ォ ル ト : true charref (論理値) true にする と 、 内容文字列内の数値 ・ 文字実体参照 と グ リ フ名参照の置き換えが有効に な り ます。1 デ フ ォル ト : グ ローバル charref オプ シ ョ ン escapesequence (論理値) true にする と 、 内容文字列内のエスケープ シーケ ン スの置き換えが有効にな り ます。 1 デ フ ォ ル ト : グローバル escapesequence オプ シ ョ ン glyphcheck (キーワー ド ) グ リ フ検査ポ リ シ : テキス ト 内の コ ー ド が、 選択 し た フ ォ ン ト 内のグ リ フ へマ ッ プ で き ない と き にどのよ う に動作するか (デ フ ォ ル ト : グローバル glyphcheck オプ シ ョ ン) : error none 80 グ リ フが得られない と き に例外を発生 さ せます。 具体的な エ ラ ー メ ッ セージは PDF_get_ errmsg( ) で取得で き ます。 検査な し 。 notdef グ リ フは、 PDF/A か PDF/UA-1 か PDF/X-4/5 モー ド では例外を引き 起 こ し 、 それ以外の場合には notdef グ リ フが出力内に現れる こ と がで き ます。 replace 得 られないグ リ フ を、 ベース フ ォ ン ト ・ 予備フ ォ ン ト 内の適切なグ リ フが得られる な ら ば、 それに置き換え よ う と 試みます。 合字は分解 さ れます。 適切な置き換えがで き ない と きは、 そのグ リ フ は replacementchar で 置き換え ら れます。 replace 得 られないグ リ フ を、 ベース ・ 予備フ ォ ン ト 内の タ イ ポグ ラ フ ィ 的に類似のキ ャ ラ ク タ で置き換え、 合字を分解 し よ う と 試みます。 然るべき グ リ フ が見つから なかっ た場合に は、 そのキ ャ ラ ク タ は replacementchar オプ シ ョ ン に従っ て処理 さ れます。 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.6 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) のテキス ト フ ィ ル タ オプ シ ョ ン オプ シ ョ ン 説明 normalize (キーワー ド 。 encoding=glyphid と 非 Unicode CMap では無視 さ れます) 入っ て く る テキス ト を、 Unicode 正規形の う ちの一つへ正規化 し ます (デ フ ォ ル ト : none) : none 正規化を適用 し ません。 これがデ フ ォ ル ト 動作であ り 、 選択 し た フ ォ ン ト 内のグ リ フ群 で表せる テキス ト を与え るのはク ラ イ ア ン ト 側の役割です。 nfc 正規形 C (NFC) : 正準分解の後に正準合成を行います。 NFC は、 結合シーケ ン ス を、 結 合済キ ャ ラ ク タ へ置換 し ます。 これは、 結合シーケ ン スのあ るワー ク フ ローのために有 用です。 なぜな ら、 フ ォ ン ト は通常、 結合済キ ャ ラ ク タ に対するグ リ フのみを含んでい るから です。 NFC 正規化がない場合、 PDFlib は、 結合済キ ャ ラ ク タ ではな く 、 複数キ ャ ラ ク タ のシーケ ン ス を出力 し ます。 nfkc 正規形 KC (NFKC) : 互換分解の後に正準合成を行います。 こ れは、 キ ャ ラ ク タ の意味 付けにのみ関心があ り 、 組版差異には関心のないワー ク フ ローのために有用です。 た と えば、 表示形のア ラ ビ ア文字キ ャ ラ ク タ を その原形へ変換 し た り 、 合字や分数を解決 し た り 、 縦書き形を横書き形へ置換 し た り 、 全角キ ャ ラ ク タ を通常キ ャ ラ ク タ へ置換 し た り し ます。 nfd 正規形 D (NFD) : 正準分解 nfkd 正規形 KD (NFKD) : 互換分解 NFD と NFKD は、 結合シーケ ン ス を作成する こ と があ り ますので、 これ らは PDFlib ワー ク フ ロー では有用ではな さ そ う です。 textformat (キーワー ド 。 Unicode 非互換の言語バイ ンデ ィ ングのみ) 内容文字列を解釈する ために用い ら れ る形式。 使え るキーワー ド : bytes ・ utf8 ・ ebcdicutf8 (i5/iSeries ・ zSeries のみ) ・ utf16 ・ utf16le ・ utf16be ・ auto。 デ フ ォ ル ト : グローバル textformat オプ シ ョ ン 1. こ の値は、 以後、 同 じ オ プ シ ョ ン を持 っ た PDF_set_option( ) への呼び出 し に よ っ てオーバラ イ ド さ れる可能性があ り ます。 表 4.7 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) テキス ト 書式 オプ シ ョ ン オプ シ ョ ン 説明 charspacing (float またはパーセ ン ト 値) 字間。 すなわち、 文字列内の個々のキ ャ ラ ク タ を配置 し た後のカ レ ン ト 点の変位。 float 値はユーザー座標系の単位を指定 し ます。 パーセ ン ト 値は fontsize に対する比 です。 文字ど う し の間隔を拡げるには、 横書き では正の値を、 縦書き では負の値を用います。 デ フ ォル ト : 0 dasharray (非負 float 2 個の リ ス ト かキーワー ド ) 描線 (袋文字) テキス ト と 文字飾 り に対する線 と 線間の長 さ 。 キーワー ド none を用いて実線を生成 さ せる こ と も で き ます。 デ フ ォ ル ト : none decorationabove (論理値) true にする と 、 underline ・ strikeout ・ overline オプ シ ョ ン で有効に さ れた文字飾 り はテキス ト の上に、 そ う でなければテキス ト の下に描かれます。 描画順を変え る こ と で、 飾 り 線 は見えた り 隠れた り し ます。 すなわち、 テキス ト が線にオーバプ リ ン ト するか、 あるいはその逆 かを制御する こ と が可能です。 デ フ ォル ト : false fakebold (論理値) の場合、 グ リ フ 輪郭を描線するか複数回の重ね書き に よ っ て太字テキス ト に見せかけま す。 デ フ ォル ト : false fillcolor (色) テキス ト の塗 り 色。1 単純テキス ト 出力関数群 と PDF_fit_textline( ) で inittextstate=false の場合のデ フ ォ ル ト : カ レ ン ト グ ラ フ ィ ッ ク ス テー ト の中の照応する オプ シ ョ ン。 テキス ト フ ロー と PDF_fit_textline( ) で inittextstate=true の場合のデ フ ォ ル ト : {gray 0} (PDF/ A モー ド では {lab 0 0 0}) 4.2 テキス ト フ ィ ル タ ・ 書式オプ シ ョ ン 81 表 4.7 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) テキス ト 書式 オプ シ ョ ン オプ シ ョ ン 説明 font (フ ォ ン ト ハン ド ル) 使いたい フ ォ ン ト のハン ド ル。 このオプ シ ョ ン を与え る と 、 すべてのフ ォ ン ト 読み込みオプ シ ョ ンは無視 さ れます (fontname ・ encoding も)。 こ の font オプ シ ョ ン を使 う と 、 fontname/encoding オプ シ ョ ンに よ る暗黙的な フ ォ ン ト 読み込みよ り も パフ ォ ーマ ン スが向上 し ま す。 デ フ ォ ル ト : 暗黙的に読み込まれた フ ォ ン ト が得られる な ら それ、 そ う でないな ら、 単純テキス ト 出力 と PDF_fit_textline( ) で inittextstate=false では PDF_setfont( ) を用いて選択 さ れた フ ォ ン ト 。 それ以外の場合はフ ォ ン ト は得られず、 エ ラ ーが発生 し ます。 fontsize (文字サイ ズ) 文字サイ ズを、 カ レ ン ト ユーザー座標系の単位で表 し た もの。 PDF_fit_textline( ) の 場合、 パーセ ン ト 値は、 枠の幅 (orientate=north ・ south の場合) または高 さ (orientate=east ・ west の場合) に対する比です。 PDF_set_text_option( ) と テキス ト フ ローでは、 パーセ ン ト 値は、 直前のテキス ト のサイ ズに対する比です。 デ フ ォ ル ト : PDF_setfont( ) は、 単純テキス ト 出力関数群 と 、 PDF_fit_textline( ) で inittextstate=false の場合に対するデ フ ォル ト のみを設定 し ます。 それ以外の場合は フ ォ ン ト は 得られず、 エ ラ ーが発生 し ます。 gstate (グ ラ フ ィ ッ ク ス テー タ スハン ド ル) PDF_create_gstate( ) で取得 さ れたグ ラ フ ィ ッ ク ス テー タ スの ハン ド ル。 そのグ ラ フ ィ ッ ク ス テー タ スが、 こ の関数で生成するすべてのテキス ト に対 し て効力 を持ち ます。 デ フ ォ ル ト : グ ラ フ ィ ッ ク ス テー タ スな し (すなわち、 カ レ ン ト の設定が使われま す)。 horizscaling (float またはパーセ ン ト 値。 0 以外にする必要があ り ます) テキス ト を、 与えたパーセ ン ト 値に横 へ伸縮。 テキス ト の伸縮は、 テキス ト を、 与えたパーセ ン ト 値に縮めた り 伸ば し た り し ます。 テ キス ト の伸縮はつねに横座標での値 と な り ます。 デ フ ォル ト : 100 inittextstate (論理値。 PDF_fit_textline( ) でのみ可) true の場合、 すべてのテキス ト 書式オプ シ ョ ンがデ フ ォ ル ト 値で初期化 さ れます。 false の場合、 カ レ ン ト テキス ト ス テー ト 値群が用い られます。 デ フ ォ ル ト : false italicangle (float。 縦書き では使え ません) テキス ト のイ タ リ ッ ク (斜体) 角度を度単位で (-90° と 90° の 間で) 表 し た もの。 負の値を利用すれば、 特に日中韓 フ ォ ン ト な ど、 正立 フ ォ ン ト し か得ら れな い と き に、 斜体に見せる こ と がで き ます。 デ フ ォ ル ト : 0 kerning (論理値) true にする と 、 readkerning オプ シ ョ ン を付けて開いてある フ ォ ン ト に対 し て カ ーニ ン グ を有効に し ます。 そ う でないな ら カ ーニ ング を無効に し ます。2 デ フ ォル ト : グ ローバルオプ シ ョ ン kerning leading (float またはパーセ ン ト 値) 複数行テキス ト に対する行送 り 、 すなわち、 テキス ト の隣 り 合 う 行の ベース ラ イ ンの間隔を、 ユーザー座標における絶対値か、 fontsize に対するパーセ ン ト 値 と し て 指定 し ます。 こ の行送 り を文字サイ ズに等 し く 設定する と 、 詰ま っ た行間にな り ます。 ただ し 、 隣 り 合 う 行のア セ ン ダ と デ ィ セ ン ダは、 通常は重な り 合いません (leading=0 と する と 行が重な り 合います)。 デ フ ォ ル ト : 100% PDF_add/create_textflow( ) に対する行送 り は次のよ う に決定 さ れます : 行の先頭にオプ シ ョ ン リ ス ト 群がある場合には、 行送 り は、 最後の関連するオプ シ ョ ン (font ・ fontsize ・ leading な ど) に よ っ て決定 さ れます。 同一行上に さ ら にオプ シ ョ ン リ ス ト 群があ る場合には、 行送 り に関連する オプ シ ョ ン群はいずれも、 fixedleading=false の場合にのみ考慮 さ れます。 その行にオプ シ ョ ン リ ス ト が全 く ない場合には、 直前の行送 り 値が用い ら れます。 overline 82 (論理値) true の場合、 テキス ト の上方に線が引かれます。 デ フ ォル ト : false 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.7 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) テキス ト 書式 オプ シ ョ ン オプ シ ョ ン 説明 shadow (オプ シ ョ ン リ ス ト 。 PDF_fit_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) でのみ意味 を持ち ます) テキス ト に影付き効果を作成 し ます (デ フ ォル ト : 影な し ) : disable (論理値。 PDF_add/create_textflow( ) でのみ可) true の場合、 以前に指定 さ れた影が無効 に さ れます。 デ フ ォル ト : false fillcolor (色) 影の塗 り 色。 デ フ ォ ル ト : {gray 0.8} gstate (Gstate ハン ド ル) PDF_create_gstate( ) を用いて作成 さ れた、 影に適用 さ れるグ ラ フ ィ ッ ク ス テー ト 。 デ フ ォル ト : な し offset (2 個の float かパーセ ン ト 値の リ ス ト ) テキス ト の参照点か らの影のオ フ セ ッ ト を、 ユー ザー座標で、 または文字サイ ズに対するパーセ ン ト 値 と し て表 し た も の。 デ フ ォル ト : {5% -5%} strokecolor (色。 textrendering がテキス ト を描線する よ う 設定 さ れている場合のみ効果を持ち ま す) 影の描線色。 デ フ ォ ル ト : カ レ ン ト 描線色 strokewidth (float。 パーセ ン ト 値かキーワー ド 。 textrendering がテキス ト を描線する よ う 設定 さ れ ている場合のみ効果を持ち ます) 影の中の袋文字テキス ト の線幅 (ユーザー座標で、 ま たは文字サイ ズに対するパーセ ン ト 値 と し て表 し た もの)。 キーワー ド auto か、 こ れに 等価な値 0 は、 内蔵のデ フ ォ ル ト を使用 し ます。 デ フ ォ ル ト : メ イ ン テキス ト も テキス ト を描線する よ う 設定 さ れている場合にはカ レ ン ト 描線幅、 そ う でない場合は auto textrendering (整数) 影のテキス ト 表現モー ド 。 デ フ ォ ル ト : textrendering のカ レ ン ト 値 strikeout (論理値) true の場合、 テキス ト を貫いて線が引かれます。 decorationabove も参照 し て く だ さ い。 デ フ ォル ト : false strokecolor (色。 描線 さ れた テキス ト でのみ有効。 textrendering を参照) テキス ト の描線色。 デ フ ォ ル ト : fillcolor 参照 strokewidth (float ・ パーセ ン ト 値 ・ キーワー ド のいずれか。 textrendering を テキス ト を描線する よ う 設定 し ている場合のみ有効) 袋文字テキス ト の線幅 (絶対値、 または fontsize に対する比で)。 キー ワー ド auto か、 それ と 等価な値 0 を指定する と 、 内蔵のデ フ ォル ト を用います。 デ フ ォル ト : auto tagtrailinghyphen (Unichar かキーワー ド 。 タ グ付き PDF でのみ意味を持ち ます) テキス ト (グ リ フ 置換を適用 し た 場合は、 その後の) の中の最後のキ ャ ラ ク タ が、 指定 さ れた Unicode 値に等 し い場合には、 その フ ォ ン ト によ っ て要請 さ れる場合には ActualText ソ フ ト ハイ フ ン U+00AD を持っ た Span と し て タ グ付け さ れ、 かつ autospace は付加 さ れません。 キーワー ド none と する と 、 ソ フ ト ハイ フ ンの ための タ グ付けは一切行われません。 デ フ ォル ト : U+00AD 4.2 テキス ト フ ィ ル タ ・ 書式オプ シ ョ ン 83 表 4.7 PDF_set_text_option( ) ・ PDF_fit/info_textline( ) ・ PDF_fill_textblock( ) ・ PDF_add/create_textflow( ) テキス ト 書式 オプ シ ョ ン オプ シ ョ ン 説明 textrendering (整数) テキス ト 表現モー ド 。 Type 3 フ ォ ン ト の場合は、 textrendering=3 だけが効力を持ち ます (デ フ ォル ト : 0) : 0 P 1 2 P 3 テキス ト を塗る 4 テキス ト を塗 り 、 ク リ ッ ピ ングパスに追加 テキス ト を描線 (袋文字) 5 テキス ト を描線 し 、 ク リ ッ ピ ングパスに追加 テキス ト を塗っ て描線 6 テキス ト を塗っ て描線 し 、 ク リ ッ ピ ングパスに追加 不可視テキス ト 7 テキス ト を ク リ ッ ピ ングパスに追加 textrendering=4/5/6/7 (ク リ ッ ピ ングモー ド 群) の動作 : > PDF_fit_textflow( ) ・ PDF_fit_table( ) ・ PDF_fill_textblock( ) ・ PDF_fit_textline( ) の後には、 textpath オ プ シ ョ ンが指定 さ れている場合には、 ク リ ッ ピ ング効果はあ り ません。 > ク リ ッ ピ ング領域は、 単純テキス ト 出力関数群への複数回の呼び出 し にわた っ て蓄積する こ と が で き ますが、 PDF_fit_textline( ) への複数回の呼び出 し にわた っ ては蓄積 さ れません。 > PDF_fit_textline( ) : 指定 さ れた fillcolor と strokecolor は、 関数呼び出 し の後に も 有効 と な り ま す。 textrise (float またはパーセ ン ト 値) テキス ト ラ イ ズ値。 テキス ト を配置 し たい位置 と ベース ラ イ ン と の間 隔を指定 し ます。 正の値のテキス ト ラ イ ズはテキス ト を上へ移動 さ せます。 テキス ト ラ イ ズはつ ねに縦座標での値 と な り ます。 こ れは、 上付き ・ 下付き を さ せたい と き に有用で し ょ う 。 パーセ ン ト 値は fontsize に対する比です。 デ フ ォル ト : 0 underline (論理値) true の場合、 テキス ト の下方に線が引かれます。 デ フ ォル ト : false underlineposition (float ・ パーセ ン ト 値 ・ キーワー ド のいずれか) 下線テキス ト の下線の位置を、 ベース ラ イ ンか ら の距離で (絶対値か、 ま たは文字サイ ズに対する比。 代表的な値は -10%) 指定 し ます。 キーワー ド auto を指定する と 、 フ ォ ン ト の メ ト リ ッ ク またはアウ ト ラ イ ン フ ァ イルか ら取得 さ れる フ ォ ン ト 固有の値が採用 さ れます。 デ フ ォ ル ト : auto underlinewidth (float ・ パーセ ン ト 値 ・ キーワー ド のいずれか) テキス ト の下線の線幅 (絶対値か、 ま たは文字サ イ ズに対する比)。 キーワー ド auto か値 0 を指定する と 、 フ ォ ン ト の メ ト リ ッ ク またはアウ ト ラ イ ン フ ァ イルから フ ォ ン ト 固有の値が得 られる場合はそれが採用 さ れ、 そ う でないな ら 5% と な り ます。 デ フ ォ ル ト : auto wordspacing (float またはパーセ ン ト 値) 単語間隔。 すなわち、 行内の個々の単語を配置 し た後のカ レ ン ト 点の 変位。 言い換えれば、 カ レ ン ト 点が、 各スペースキ ャ ラ ク タ (U+0020) の後で横へ移動 さ れます。 値は、 ユーザー座標系で表すか、 または文字サイ ズに対する比で指定 し ます。 デ フ ォ ル ト : 0 1. こ の値は、 以後、 単純テキス ト 出力関数群 と inittextstate=false を伴 う PDF_fit_textline( ) への呼び出 し のための PDF_ setcolor( ) に よ っ てオーバラ イ ド さ れる こ と があ り ます。 2. この値は、 以後、 同 じ オ プ シ ョ ン を伴 う PDF_set_option( ) への呼び出 し に よ っ てオーバ ラ イ ド さ れる こ と があ り ます。 C++ Java C# void set_text_option(String optlist) Perl PHP set_text_option(string optlist) C void PDF_set_text_option(PDF *p, const char *optlist) 単純テ キ ス ト 出力関数群のための 1個ない し 複数のテ キ ス ト フ ィ ル タ ま たはテ キ ス ト 書式 オプシ ョ ン を設定 し ます。 optlist 84 フ ォ ン ト ・ テ キ ス ト オプシ ョ ン群を以下の よ う に指定 し たオプシ ョ ン リ ス ト : 第 4 章 : フ ォ ン ト ・ テキス ト 関数 > 表 4.6 に従っ た テ キ ス ト フ ィ ル タ オプシ ョ ン群 : actualtext ・ charref ・ escapesequence ・ glyphcheck ・ textformat > 表 4.7 に従っ た テ キ ス ト 書式オプシ ョ ン群 : charspacing ・ dasharray ・ decorationabove ・ fakebold ・ fillcolor ・ font ・ fontsize ・ gstate ・ horizscaling・inittextstate・italicangle・kerning・leading・overline・strikeout・strokecolor・ strokewidth ・ tagtrailinghyphen ・ textrendering ・ textrise ・ underline ・ underlineposition ・ underlinewidth ・ wordspacing 詳細 テ キ ス ト オプシ ョ ン群の値群は、 すべての単純テ キ ス ト 出力関数 と 、 inittextstate=false を 伴 う PDF_fit_textline( ) に対 し て意味を持ち ます。 PDF_set_text_option( ) への呼び出 し を、 PDF_setfont( ) ・ PDF_setcolor( ) への呼び出 し と 混在 さ せ る べ き ではあ り ません。 すべてのテ キ ス ト オプシ ョ ンは、 ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ記述の開 始でそれ ら のデフ ォ ル ト 値へ リ セ ッ ト さ れ、 そ し て カ レ ン ト のページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ス コ ープが終了す る ま でそれ ら の値を保持 し ます。 ただ し 、 テ キ ス ト オプ シ ョ ン群を inittextstate オプシ ョ ン を用いて リ セ ッ ト す る こ と も で き ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 4.2 テキス ト フ ィ ル タ ・ 書式オプ シ ョ ン 85 4.3 単純テ キス ト 出力 こ の節で挙げ る 関数群は、 低レベルテ キ ス ト 出力のために使 う こ と がで き ます。 よ り 高度 なテ キ ス ト 出力のためには、 よ り 強力なテ キ ス ト 行 ・ テ キ ス ト フ ロ ー関数群を使 う こ と を 推奨 し ます (95 ページ 「5.1 テ キ ス ト 行に よ る 一行テ キ ス ト 」 ・ 102 ページ 「5.2 テ キ ス ト フ ロ ーに よ る 複数行テ キ ス ト 」 参照)。 C++ Java C# void PDF_setfont(int font, double fontsize) Perl PHP setfont(int font, float fontsize) C void PDF_setfont(PDF *p, int font, double fontsize) カ レ ン ト フ ォ ン ト を、 指定す る サ イ ズで設定 し ます。 font PDF_load_font( ) に よ っ て返 さ れた フ ォ ン ト ハン ド ル。 fontsize 文字サ イ ズ を、 カ レ ン ト ユーザー座標系の単位で測っ た も の。 文字サ イ ズは 0 に し てはいけ ません。 文字サ イ ズ を負の値にす る と 、 カ レ ン ト 変換行列について鏡映 さ れ たテ キ ス ト にな り ます。 詳細 こ の関数は、 単純テ キ ス ト 出力関数群 (PDF_show( ) ・ PDF_fit_textline( ) な ど) で用い ら れ る べ き フ ォ ン ト と 文字サ イ ズ を設定 し ます。 こ れは、 PDF_set_text_option( ) を オプシ ョ ン リ ス ト font=< フ ォ ン ト > fontsize=< 文字サ イ ズ > と と も に呼び出 し た場合 と ほぼ同等で す。 ただ し 、 PDF_set_text_option( ) と 異な り 、 こ の関数は、 leading テ キ ス ト オプシ ョ ン を fontsize に設定 し ます。 フ ォ ン ト は、 ページ ご と に、 いかな る 単純テ キ ス ト 出力関数を呼び出す よ り も 前に設 定す る 必要があ り ます。 フ ォ ン ト の設定はページ を超え て保持 さ れません。 PDF_setfont( ) よ り も PDF_set_text_option( ) を使用する こ と を推奨 し ます。PDF_setfont( ) への呼び出 し を PDF_set_text_option( ) への呼び出 し と 混在 さ せ る べ き ではあ り ません。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ C++ Java C# void set_text_pos(double x, double y) Perl PHP set_text_pos(float x, float y) C void PDF_set_text_pos(PDF *p, double x, double y) ページ上の単純テ キ ス ト 出力のための位置を設定 し ます。 x・y 新たなテ キ ス ト 位置 詳細 テ キ ス ト 位置は、 ページが始ま る ご と にデフ ォ ル ト 値 (0, 0) に設定 さ れます。 グ ラ フ ィ ッ ク のためのカ レ ン ト 点 と 、 カ レ ン ト テ キ ス ト 位置は、 別々に保持 さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 86 第 4 章 : フ ォ ン ト ・ テキス ト 関数 C++ Java C# void show(String text) Perl PHP show(string text) C void PDF_show(PDF *p, const char *text) C void PDF_show2(PDF *p, const char *text, int len) テ キ ス ト を カ レ ン ト の フ ォ ン ト と サ イ ズでカ レ ン ト テ キ ス ト 位置に印字 し ます。 text (内容文字列) 印字 し たいテ キ ス ト 。 C で PDF_show( ) を使 う と き は、 text は null 終 了 と 前提 さ れてい る ので、 null バ イ ト を含んでいてはいけ ません。 null キ ャ ラ ク タ を含む 可能性のあ る 文字列に対 し ては PDF_show2( ) を使い ます。 len (PDF_show2( ) のみ) text の長 さ (バ イ ト 単位)。 len=0 にする と null 終了文字列を与 え る 必要があ り ます。 詳細 フ ォ ン ト と 文字サ イ ズ を あ ら か じ め、 PDF_setfont( ) か PDF_set_text_option( ) で設定 し て お く 必要があ り ます。 カ レ ン ト テ キ ス ト 位置は、 印字 し た テ キ ス ト の末尾へ移動 し ます。 その最終グ リ フ の後では charspacing パ ラ メ ー タ が考慮 さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ バインディング PDF_show2( ) は C でのみ得 ら れます。 なぜな ら 他のすべてのバ イ ンデ ィ ン グでは、 任意の 文字列内容を PDF_show( ) に与え る こ と がで き る か ら です。 C++ Java C# void show_xy(String text, double x, double y) Perl PHP show_xy(string text, float x, float y) C void PDF_show_xy(PDF *p, const char *text, double x, double y) C void PDF_show_xy2(PDF *p, const char *text, int len, double x, double y) テ キ ス ト を カ レ ン ト フ ォ ン ト で、 指定 し た位置に印字 し ます。 text (内容文字列) 印字 し たいテ キ ス ト 。 C で PDF_show_xy( ) を使 う と き は、 text は null 終了 と 前提 さ れてい る ので、 null バ イ ト を含んでいてはいけ ません。 null キ ャ ラ ク タ を含 む可能性のあ る 文字列に対 し ては PDF_show_xy2( ) を使い ます。 x・y テ キ ス ト を印字 さ せたい位置をユーザー座標系で指定 し ます。 len (PDF_show_xy2( ) のみ) text の長 さ (バ イ ト 単位)。 len=0 にする と null 終了文字列 を与え る 必要があ り ます。 詳細 フ ォ ン ト と 文字サ イ ズ を あ ら か じ め、 PDF_setfont( ) か PDF_set_text_option( ) で設定 し て お く 必要があ り ます。 カ レ ン ト テ キ ス ト 位置は、 印字 し た テ キ ス ト の末尾へ移動 し ます。 その最終グ リ フ の後では charspacing パ ラ メ ー タ が考慮 さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ バインディング PDF_show_xy2( ) は C でのみ得 ら れます。 なぜな ら 他のすべてのバ イ ンデ ィ ン グでは、 任 意の文字列内容を PDF_show_xy( ) に与え る こ と がで き る か ら です。 4.3 単純テキス ト 出力 87 C++ Java C# void continue_text(String text) Perl PHP continue_text(string text) C void PDF_continue_text(PDF *p, const char *text) C void PDF_continue_text2(PDF *p, const char *text, int len) テ キ ス ト を次の行に印字 し ます。 text (内容文字列) 印字 し たいテ キ ス ト 。 こ れを空文字列にす る と 、 テ キ ス ト 位置はそ れで も 次の行へ移動 し ます。 C で PDF_continue_text( ) を使 う と き は、 text は null 終了 と 前提 さ れてい る ので、 null バ イ ト を含んでいてはいけ ません。 null バ イ ト を含む可能性の あ る 文字列に対 し ては PDF_continue_text2( ) を使い ます。 len (PDF_continue_text2( ) のみ) text の長 さ (バ イ ト 単位) 。 len=0 にす る と 、 PDF_ continue_text( ) 同様、 null 終了文字列を与え る 必要があ り ます。 詳細 テ キ ス ト の置かれ る 位置 (x ・ y 位置) と 、 行の間隔は、 leading テ キ ス ト オプシ ョ ン (PDF_ set_text_option( ) を用いて設定で き ます) と 、 も っ と も 最近の PDF_show_xy( ) か PDF_set_ text_pos( ) への呼び出 し に よ っ て決定 さ れます。 カ レ ン ト 位置は、 印字 し た テ キ ス ト の末 尾へ移動 し ます。 こ の関数を連続で呼び出す と 、 x 位置は変わ り ません。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 。 こ の関数は縦書 き では使っ てはいけ ません。 バインディング PDF_continue_text2( ) は C でのみ得 ら れます。なぜな ら 他のすべてのバ イ ンデ ィ ン グでは、 任意の文字列内容を PDF_continue_text( ) に与え る こ と がで き る か ら です。 C++ Java C# double stringwidth(String text, int font, double fontsize) Perl PHP float stringwidth(string text, int font, float fontsize) C double PDF_stringwidth(PDF *p, const char *text, int font, double fontsize) C double PDF_stringwidth2(PDF *p, const char *text, int len, int font, double fontsize) 任意の フ ォ ン ト でのテ キ ス ト の幅を返 し ます。 text (内容文字列) 幅を取得 し たいテ キ ス ト 。 C で PDF_stringwidth( ) を使 う と き は、 text は null 終了 と 前提 さ れてい る ので、 null バ イ ト を含んでいてはいけ ません。 null バ イ ト を 含む可能性のあ る 文字列に対 し ては PDF_stringwidth2( ) を使い ます。 len (PDF_stringwidth2( ) のみ) text の長 さ (バ イ ト 単位)。 len=0 にする と null 終了文字 列を与え る 必要があ り ます。 font PDF_load_font( ) に よ っ て返 さ れた フ ォ ン ト ハン ド ル。 fontsize フ ォ ン ト のサ イ ズ を、 ユーザー座標の単位で測っ た も の。 戻り値 PDF_load_font( ) で選んでい る フ ォ ン ト と 、 与えた fontsize での、 text の幅。 返 さ れ る 幅は 負の値にな る こ と も あ り ます (負の横伸縮を設定 し てい る と き 等)。縦書 き の と き は、 も っ と も 幅の広い グ リ フ の幅が返 さ れ ま す (テ キ ス ト の実際の高 さ を 知 る に は PDF_info_ textline( ) を使い ます)。 字間が指定 さ れてい る と き は、 それは最後のグ リ フ に も 適用 さ れ ます ( こ の動作は PDF_ info_textline( ) と は異な り ます)。 88 第 4 章 : フ ォ ン ト ・ テキス ト 関数 詳細 幅の計算にあ た っ ては、 次のテ キ ス ト オプシ ョ ン群 (PDF_set_text_option( ) で設定で き ま す) のカ レ ン ト 値が考慮 さ れます : horizscaling ・ kerning ・ charspacing ・ wordspacing。 スコープ オブ ジ ェ ク ト 以外任意 バインディング PDF_stringwidth2( ) は C でのみ得 ら れます。 なぜな ら 他のすべてのバ イ ンデ ィ ン グでは、 任意の文字列内容を PDF_stringwidth( ) に与え る こ と がで き る か ら です。 C++ Java C# void xshow(String text, const double *xadvancelist) C void PDF_xshow(PDF *p, const char *text, int len, const double *xadvancelist) 非推奨。 PDF_fit_textline( ) で xadvancelist オプシ ョ ン を用いて く だ さ い。 4.3 単純テキス ト 出力 89 4.4 ユーザー定義 (Type 3) フ ォ ン ト ク ッ ク ブ ッ ク 完全な コ ー ド サン プルがク ッ ク ブ ッ ク の fonts/starter_type3font ト ピ ッ ク にあ り ます。 C++ Java C# void begin_font(String fontname, double a, double b, double c, double d, double e, double f, String optlist) Perl PHP begin_font(string fontname, float a, float b, float c, float d, float e, float f, string optlist) C void PDF_begin_font(PDF *p, const char *fontname, int reserved, double a, double b, double c, double d, double e, double f, const char *optlist) Type 3 フ ォ ン ト の定義を開始 し ます。 (名前文字列) フ ォ ン ト を登録 し て、 以後の PDF_load_font( ) で使いたい名前。 fontname reserved (C 言語バ イ ンデ ィ ン グのみ) 予約済。 0 にする 必要があ り ます。 a・b・c・d・e・f (Type 3 フ ォ ン ト のサブセ ッ ト の と き の フ ォ ン ト 定義の 2 度目の呼び 出 し では無視 さ れます) フ ォ ン ト 行列の各要素。 こ の行列は、 グ リ フ が描かれ る 座標系を 定義 し ます。 6 個の値は、 PostScript と PDF と 同 じ 方式で行列を構成 し ます (各 リ フ ァ レ ン ス を参照)。 縮退変換を避け る ため、 a×d は b×c と 等 し く し てはいけ ません。 代表的 な 1000×1000 の座標系に対す る フ ォ ン ト 行列は [0.001, 0, 0, 0.001, 0, 0] です。 optlist (サブセ ッ ト フ ォ ン ト の と き の 2 度目の呼び出 し では無視 さ れます)表 4.8 に従っ たオプシ ョ ン リ ス ト 。次のオプシ ョ ンが使え ます:colorized・familyname・stretch・weight・ widthsonly 詳細 フ ォ ン ト には任意の数のグ リ フ を入れ ら れます。 フ ォ ン ト は、 カ レ ン ト の文書ス コ ープが 終わ る ま で使え ます。 スコープ オブ ジ ェ ク ト 以外任意。こ の関数は フ ォ ン ト ス コ ープ を開始 さ せます。照応する PDF_end_ font( ) と 必ずペアに し て呼び出す必要があ り ます。 サブセ ッ ト 化 さ れ る フ ォ ン ト の 2 度目 の呼び出 し については、 文書ス コ ープのみ許 さ れます。 表 4.8 PDF_begin_font( ) のオプ シ ョ ン オプ シ ョ ン 説明 colorized (論理値) true にする と 、 フ ォ ン ト はキ ャ ラ ク タ ご と にその色を明示的に指定する こ と がで き ま す。 false にする と 、 キ ャ ラ ク タ はすべて カ レ ン ト カ ラ ー (フ ォ ン ト を定義 し た時点ではな く 使 う 時点の) で描かれるので、 グ リ フ 定義に色オペ レー タ またはマ ス ク 以外の画像を入れてはいけま せん。 デ フ ォ ル ト : false familyname1 (文字列。 PDF 1.5) フ ォ ン ト フ ァ ミ リ の名前 stretch1 (キーワー ド 。 PDF 1.5) フ ォ ン ト の幅の値 : ultracondensed ・ extracondensed ・ condensed ・ semicondensed ・ normal ・ semiexpanded ・ expanded ・ extraexpanded ・ ultraexpanded。 デ フ ォ ル ト : normal weight1 (整数ま たはキーワー ド 。 PDF 1.5) フ ォ ン ト の太 さ 。 と り う る数値ま たは同等のキーワー ド : 100=thin、 200=extralight、 300=light、 400=normal、 500=medium、 600=semibold、 700=bold、 800=extrabold、 900=black。 デ フ ォル ト : normal 90 第 4 章 : フ ォ ン ト ・ テキス ト 関数 表 4.8 PDF_begin_font( ) のオプ シ ョ ン オプ シ ョ ン 説明 widthsonly (論理値) true にする と (Type 3 フ ォ ン ト のサブ セ ッ ト 化の 1 回目の呼び出 し )、 フ ォ ン ト と グ リ フ の メ ト リ ッ ク だけが定義 さ れます。 PDF_begin_glyph_ext( ) と PDF_end_glyph( ) の間では他の API 関数を一切呼び出すべき ではあ り ません。 他の関数を た と え呼び出 し て も 、 PDF 出力にはいかな る効果も 与えず、 例外 も発生 し ません。 widthsonly=false の と きは (Type 3 フ ォ ン ト のサブ セ ッ ト 化の 2 回目の呼び出 し )、 実際のグ リ フのアウ ト ラ イ ン を定義で き ます。 こ のよ う に 2 回の呼び 出 し に よ る定義によ り 、 PDFlib で Type 3 フ ォ ン ト のサブ セ ッ ト 化を実行する こ と が可能にな り ま す。 デ フ ォル ト : false 1. こ れ ら のオ プ シ ョ ンは、 タ グ付き PDF を作成 し ている と き には強 く 推奨 し ますが、 それ以外の と きは無視 さ れます。 C++ Java C# void end_font( ) Perl PHP end_font( ) C void PDF_end_font(PDF *p) Type 3 フ ォ ン ト の定義を終了 さ せます。 スコープ フ ォ ン ト 。 こ の関数は フ ォ ン ト ス コ ープ を終了 さ せます。 照応す る PDF_begin_font( ) と 必 ずペアに し て呼び出す必要があ り ます。 C++ Java C# void begin_glyph_ext(int uv, String optlist) Perl PHP begin_glyph_ext(int uv, string optlist) C void PDF_begin_glyph_ext(PDF *p, int uv, const char *optlist) Type 3 フ ォ ン ト のためのグ リ フ定義を開始 さ せます。 uv グ リ フ に対す る Unicode 値。 各 Unicode 値は、 1 個のグ リ フ記述に対 し てのみ与え る こ と がで き ます。 Unicode 値 0 を持つグ リ フは、 そのグ リ フ が指定 さ れたか否かにかかわ ら ず、 グ リ フ ID 0 と グ リ フ名 .notdef を得ます。 uv=-1 の場合、その Unicode 値は、glyphname オプシ ョ ンか ら 、PDFlib の内部グ リ フ名 リ ス ト に従っ て導 き 出 さ れます。 グ リ フ名が未知の場合には、 PUA 値 (U+E000 か ら 始ま る ) が順次割 り 当て ら れます。こ の値は、PDF_info_font( ) を用いて ク エ リ す る こ と がで き ます。 optlist 表 4.9 に従っ たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ン群が使え ます : boundingbox ・ code ・ glyphname ・ width 詳細 フ ォ ン ト 内のグ リ フは、 テ キ ス ト ・ グ ラ フ ィ ッ ク ・ 画像関数を使っ て定義す る こ と がで き ます。 ただ し 画像は、 フ ォ ン ト の colorized オプシ ョ ン を true に し てい る か、 ま たは画像 を mask オプシ ョ ン を指定 し て開いてい る と き に し か使え ません。 こ の関数は、 すべての テ キ ス ト ・ グ ラ フ ィ ッ ク ・ 色ス テー タ ス パ ラ メ ー タ 群を、 それ ら のデフ ォ ル ト 値へ リ セ ッ ト し ます。 colorized オプシ ョ ン を true に し てい る と き は、 今い る ページのグ ラ フ ィ ッ ク ス テー タ ス が ま る ご と グ リ フ定義へ継承 さ れますので、グ リ フ定義に関係す る 種類のグ ラ フ ィ ッ ク ス テー タ ス はすべて (linewidth 等)、グ リ フ定義の中で明示的に設定す る 必要があ り ます。 スコープ ページ ・ フ ォ ン ト 。 こ の関数はグ リ フ ス コ ープ を開始 さ せます。照応する PDF_end_glyph( ) と 必ずペアに し て呼び出す必要があ り ます。 PDF_begin_font( ) で widthsonly=true に し て 4.4 ユーザー定義 (Type 3) フ ォ ン ト 91 い る と き は、PDF_begin_glyph_ext( ) と PDF_end_glyph( ) の間の API 関数の呼び出 し はすべ て無視 さ れます。 表 4.9 PDF_begin_glyph_ext( ) のオプ シ ョ ン オプ シ ョ ン 説明 boundingbox (4 個の float の リ ス ト 。 Type 3 フ ォ ン ト サブ セ ッ ト 群のための フ ォ ン ト 定義の第二パス内で、 かつ そのフ ォ ン ト の colorized オプ シ ョ ンが true の場合には無視 さ れます) フ ォ ン ト の colorized オ プ シ ョ ンが false の場合 ( こ れがデ フ ォ ル ト です) には、 グ リ フの外接枠の左下隅 と 右上隅の座 標。 こ の外接枠値群は、 PostScript 印刷での諸問題を避ける ため、 正 し く する必要があ り ます。 デ フ ォル ト : {0 0 0 0} code (整数) そのグ リ フのス ロ ッ ト 番号、 すなわち、 その Type 3 フ ォ ン ト の内蔵エ ン コ ーデ ィ ング内に おける そのバイ ト コ ー ド を指定 し ます。 デ フ ォ ル ト では、 グ リ フは作成 さ れた順にシーケ ン シ ャ ルに付番 さ れます (0 から)。 glyphname (文字列) グ リ フ の名前。 Unicode 0 を持つグ リ フ 0 に対する名前は強制的に .notdef と な り ます。 デ フ ォ ル ト : グ リ フ <i>=1,2,3,... に対 し て G<i> width (float。 必須。 Type 3 フ ォ ン ト サブ セ ッ ト 群のためのフ ォ ン ト 定義の第二パス内では無視 さ れま す) グ リ フの幅を、 そのフ ォ ン ト のマ ト リ ッ ク スに よ っ て指定 さ れた通 り のグ リ フ座標系で表 し た もの。 C++ Java C# void end_glyph( ) Perl PHP end_glyph( ) C void PDF_end_glyph(PDF *p) Type 3 フ ォ ン ト のためのグ リ フ定義を終了 さ せます。 スコープ グ リ フ 。 こ の関数はグ リ フ ス コ ープか ら フ ォ ン ト ス コ ープへ移行 し ます。 照応する PDF_ begin_glyph_ext( ) と 必ずペアに し て呼び出す必要があ り ます。 C++ Java C# void begin_glyph(String glyphname, double wx, double llx, double lly, double urx, double ury) Perl PHP begin_glyph(string glyphname, float wx, float llx, float lly, float urx, float ury) C void PDF_begin_glyph(PDF *p, const char *glyphname, double wx, double llx, double lly, double urx, double ury) 非推奨。 PDF_begin_glyph_ext( ) を使用 し て く だ さ い。 92 第 4 章 : フ ォ ン ト ・ テキス ト 関数 4.5 ユーザー定義 8 ビ ッ ト エ ン コ ーデ ィ ン グ C++ Java C# void encoding_set_char(String encoding, int slot, String glyphname, int uv) Perl PHP encoding_set_char(string encoding, int slot, string glyphname, int uv) C void PDF_encoding_set_char(PDF *p, const char *encoding, int slot, const char *glyphname, int uv) カ ス タ ムの 8 ビ ッ ト エン コ ーデ ィ ン グに、 グ リ フ名か Unicode 値ま たはその両方を追加 し ます。 encoding エン コ ーデ ィ ン グの名前。 こ れは、 PDF_load_font( ) で使 う 必要のあ る 名前で す。 こ のエン コ ーデ ィ ン グ名は、 あ ら ゆ る 組み込みエン コ ーデ ィ ン グ と 、 以前に使っ た あ ら ゆ る エン コ ーデ ィ ン グ と 異な っ てい る 必要があ り ます。 slot 定義 し たいキ ャ ラ ク タ の位置を 0 ≦ slot ≦ 255 で指定 し ます。 1 つのエン コ ーデ ィ ン グ内では、 各ス ロ ッ ト はそれぞれ 1 回だけ定義す る こ と がで き ます。 glyphname uv 詳細 キ ャ ラ ク タ の名前。 キ ャ ラ ク タ の Unicode 値。 こ の関数は、非標準 8 ビ ッ ト エン コ ーデ ィ ン グ を処理 し なければな ら ない特殊な応用にお いてのみ必要 と な り ます。 複数回呼び出 し て、 エン コ ーデ ィ ン グ内の最大 256 個のキ ャ ラ ク タ ス ロ ッ ト を定義す る こ と がで き ま す。 そのエ ン コ ーデ ィ ン グ を初めて使 う 前で あれ ば、 キ ャ ラ ク タ を追加 し てい く こ と がで き ますが、 そ う でなければ例外が発生 し ます。 す べての コ ー ド 点を指定す る 必要はな く 、 未定義の ス ロ ッ ト には .notdef と U+0000 が書か れます。 グ リ フ名 と Unicode 値 と の組み合わせは 3 通 り が可能です。 > glyphname を与え、 uv=0 : こ れは、 Unicode 値を持た ないエン コ ーデ ィ ン グ フ ァ イ ル と 同等です。 > uv を与え るが、 glyphname を与えない : こ れは、 コ ー ド ページ フ ァ イル と 同等です。 > glyphname と uv を与え る: こ れは、Unicode 値を持つエン コ ーデ ィ ン グ フ ァ イ ル と 同等 です。 1 つのエン コ ーデ ィ ン グの中で、各グ リ フ名 /Unicode 値を 1 度だけ与え る こ と を強 く 推奨 し ます (.notdef/U+0000 を除いて)。 ス ロ ッ ト 0 が使用 さ れ る 場合には、 それは .notdef キ ャ ラ ク タ を内容 と す る べ き です。 エン コ ーデ ィ ン グ を Type 3 フ ォ ン ト で使 う こ と を意図 し てい る 場合は、 エン コ ーデ ィ ン グ ス ロ ッ ト 群を グ リ フ名だけで指定す る こ と を推奨 し ます。 定義 し たエ ン コ ーデ ィ ン グは、 カ レ ン ト のオブ ジ ェ ク ト ス コ ープが終わ る ま で使え ま す。 スコープ 任意 4.5 ユーザー定義 8 ビ ッ ト エ ン コ ーデ ィ ング 93 94 第 4 章 : フ ォ ン ト ・ テキス ト 関数 5 テキス ト と 表の組版 5.1 テキス ト 行に よ る一行テキス ト ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの text_output/starter_textline ト ピ ッ ク にあ り ま す。 C++ Java C# void fit_textline(String text, double x, double y, String optlist) Perl PHP fit_textline(string text, float x, float y, string optlist) C void PDF_fit_textline(PDF*p, const char *text, int len, double x, double y, const char *optlist) 一行のテ キ ス ト を位置 (x, y) に、 さ ま ざ ま なオプシ ョ ンに従っ て配置 し ます。 (内容文字列) ページ上に配置 し たいテ キ ス ト 。 text (C 言語バ イ ンデ ィ ン グのみ) text が UTF-16 文字列の と き の長 さ (バ イ ト 単位)。 len len=0 にす る と null 終了文字列を与え る 必要があ り ます。 x・y テ キ ス ト を さ ま ざ ま なオプシ ョ ンに従っ て配置 し たい参照点の座標を、ユーザー座 標系で指定 し ます。 はめ込みアルゴ リ ズ ムの説明は 131 ページ 「6.1 オブジ ェ ク ト のはめ 込み」 を参照。 optlist フ ォ ン ト ・ テ キ ス ト ・ 組版オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下のオ プシ ョ ンが使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 4.2 で暗黙的フ ォ ン ト 読み込み (すなわち、テ キ ス ト 書式グループの font オプシ ョ ン を与えない) の場合に従っ た フ ォ ン ト 読み込みオプシ ョ ン群 : ascender ・ autosubsetting ・ capheight ・ descender ・ embedding ・ encoding ・ fallbackfonts ・ fontname ・ fontstyle ・ keepnative ・ linegap ・ metadata ・ monospace ・ readfeatures ・ replacementchar ・ subsetlimit ・ subsetminsize ・ subsetting ・ unicodemap ・ vertical ・ xheight > 表 4.6 に従っ た テ キ ス ト フ ィ ル タ オプシ ョ ン群 : actualtext ・ charref ・ escapesequence ・ glyphcheck ・ normalize ・ textformat > 表 4.7 に従っ た テ キ ス ト 書式オプシ ョ ン群 : charspacing ・ dasharray ・ decorationabove ・ fakebold ・ fillcolor ・ font ・ fontsize ・ gstate ・ horizscaling ・ inittextstate ・ italicangle ・ kerning ・ leading ・ overline ・ shadow ・ strikeout ・ strokecolor ・ strokewidth ・ textrendering ・ textrise ・ underline ・ underlineposition ・ underlinewidth ・ wordspacing > 表 5.1 に従っ た テ キ ス ト 行組版のためのオプシ ョ ン群 : justifymethod ・ leader ・ textpath ・ xadvancelist > 表 5.4 に従っ た シ ェーピ ン グ ・ タ イ ポグ ラ フ ィ オプシ ョ ン群 : features ・ language ・ script ・ shaping > 表 6.1 に従っ たはめ込みオプシ ョ ン群 : alignchar ・ blind ・ boxsize ・ fitmethod ・ margin ・ matchbox ・ orientate ・ position ・ rotate ・ stamp ・ showborder ・ shrinklimit 5.1 テキス ト 行に よ る一行テキス ト 95 詳細 inittextstate=false ( こ れがデフ ォ ル ト です) にする と 、 カ レ ン ト のテ キ ス ト ・ グ ラ フ ィ ッ ク ス テー ト オプシ ョ ン群が、 オプシ ョ ンで明示的にオーバ ラ イ ド し ない限 り 、 テ キ ス ト 出 力の書式の制御に用い ら れます。 inittextstate=true にす る と 、 テ キ ス ト ・ グ ラ フ ィ ッ ク ス テー ト オプシ ョ ン群のデフ ォ ル ト 値が、 オプシ ョ ンで明示的にオーバ ラ イ ド し ない限 り 、 テ キ ス ト 出力の書式の制御に 用い ら れます。 テ キ ス ト 行オプシ ョ ン群は、 今回の PDF_fit_textline( ) への呼び出 し よ り 後 に生成す る 出力では効力を持ち ません。 カ レ ン ト のテ キ ス ト ・ グ ラ フ ィ ッ ク ス テー タ ス は、 こ の関数に よ っ て変更を受け ませ ん (特に、 カ レ ン ト フ ォ ン ト は影響を受け ません) 。 ただ し 、 textx/texty オプシ ョ ンは、 生成 し た テ キ ス ト 出力の末尾位置へ変更 さ れます。 その末尾グ リ フ の後では charspacing パ ラ メ ー タ が考慮 さ れません。 PDF_continue_text( ) に対す る 参照点は、 テ キ ス ト の先頭には設定 さ れません。 PDF_fit_ textline( ) の後に PDF_continue_text( ) を使 う ためには、 開始点を PDF_info_textline( ) と startx/starty キーワ ー ド で取得 し て、 テ キ ス ト 位置を PDF_set_text_pos( ) で設定す る 必要 があ り ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 。 表 5.1 PDF_fit_textline( ) の追加オプ シ ョ ン オプ シ ョ ン 説明 justifymethod (キーワー ド の リ ス ト 。 fitmethod=auto と stamp=none の場合にのみ意味を持ち ます。 boxsize を 必要 と し ます。 縦書き では無視 さ れます) テキス ト がはめ こ み枠か らはみ出 さ ないよ う にする た めに、 文字サイ ズを変えずに 1 個ない し 複数の組版方式を適用 し ます。 以下のキーワー ド の う ち の 1 個ない し 複数を与え る こ と がで き ます。 複数のキーワー ド が存在する場合には、 調整は以下 の順に適用 さ れます : wordspacing、 charspacing、 horizscaling (デ フ ォ ル ト : none) : charspacing 適切な charspacing 値を用いて調整。 horizscaling 適切な horizscaling 値を用いて調整。 none 調整な し wordspacing 適切な wordspacing 値を用いて調整。 テキス ト が空白キ ャ ラ ク タ を含んでいない場合に は、 wordspacing 調整は適用 さ れません。 leader (オプ シ ョ ン リ ス ト 。 boxsize を指定 し ていない と き、 または枠の幅が 0 の と きは無視 さ れます) 隙間埋めテキス ト (点 リ ーダ等) と 組版オプ シ ョ ン群を指定 し ます。 リ ーダは、 テキス ト 枠の端 と テキス ト の間に繰 り 返 し 挿入 さ れます。 使え るサブオプ シ ョ ンの一覧は表 5.3 を参照。 デ フ ォ ル ト : リ ーダな し 96 第 5 章 : テキス ト と 表の組版 表 5.1 PDF_fit_textline( ) の追加オプ シ ョ ン オプ シ ョ ン 説明 textpath (オプ シ ョ ン リ ス ト ) テキス ト をパスに沿っ て描き ます。 パスの終端か らはみ出 し た テキス ト は表 示 さ れません。 showborder=true にする と 、 パスがカ レ ン ト の線幅 と 描線色で描かれます。 表 5.2 に挙げるオプ シ ョ ンに加え、 PDF_draw_path( ) の以下のオプ シ ョ ン を使え ます : align・attachmentpoint・boxsize・fitmethod・orientate・scale (表 6.1 参照) close・round・subpaths (表 7.7 参照) bboxexpand・boundingbox (表 7.7 参照) PDF_fit_textline( ) の以下のオプ シ ョ ン群は、 パス上テキス ト については意味が変わ り ます : matchbox 各グ リ フ に対 し て個別の枠が生成 さ れます。 position 1 番目の値は、 パスの長 さ に対する テキス ト の相対的な開始位置 (left/center/right) を指定 し ます。 テキス ト がパス よ り 長い場合は、 テキス ト はつねに startoffset から 始 ま り ます。 2 番目の値は、 パスに対する各グ リ フの相対的な縦位置を、 すなわちグ リ フ 枠のどの部分がパスに接するか (bottom/center/top) を指定 し ます。 rotate 各グ リ フ の回転角を指定 し ます。 以下のはめ込み枠関連のオプ シ ョ ン群は無視 さ れます : boxsize ・ margin ・ fitmethod ・ orientate ・ alignchar ・ showborder ・ stamp ・ leader カ ーニ ング と 、 日中韓レ ガシ エ ン コ ーデ ィ ングに よ る テキス ト は、 パス上テキス ト では対応 し て いません。 xadvancelist (float の リ ス ト 。 shaping=true の場合には無視 さ れます) テキス ト 内のグ リ フ群の変位幅を指定 し ます。 リ ス ト の要素数は、 テキス ト のグ リ フ数以下にする必要があ り ます。 標準のグ リ フ幅のか わ り に、 こ の xadvance 値がそれぞれ使われます。 それ以外のカ ーニ ングや字間な どの書式では効 力を持ち ません。 表 5.2 PDF_fit_textline( ) の textpath オプ シ ョ ンの追加サブオプ シ ョ ン オプ シ ョ ン 説明 path (パスハン ド ル。 必須) テキス ト 出力のためのベース ラ イ ン と し て使いたいパス。 デ フ ォル ト で は、 テキス ト はパスの左側に配置 さ れ、 パスはテキス ト のベース ラ イ ン と な り ます。 し か し 、 position オプ シ ョ ンの 2 番目のキーワー ド を top にする と 、 テキス ト はパスの反対側に配置 さ れ、 テキス ト の上端がパスに接 し ます。 PDF_fit_textline( ) の引数 x ・ y がパスの参照点 と し て用い られ ます。 startoffset (float またはパーセ ン ト 値) テキス ト のパス上の開始点の変位を、 ユーザー座標で、 ま たはパスの 長 さ に対するパーセ ン ト 値で指定 し ます。 デ フ ォ ル ト : 0 tolerance (float またはパーセ ン ト 値) パスの末尾グ リ フがどの く ら いパスか らはみ出て も よいかを指定 し ま す。 値は、 ユーザー座標で、 または文字サイ ズに対するパーセ ン ト 値で指定 し ます。 デ フ ォル ト : 25% 5.1 テキス ト 行に よ る一行テキス ト 97 表 5.3 PDF_fit_textline( ) ・ PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ン オプ シ ョ ンの、 leader オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 フォン ト読 み込みオプ シ ョ ン群 フ ォ ン ト を暗黙的に (すなわち、 font オプ シ ョ ン ではな く fontname ・ encoding オプ シ ョ ン を用い て) 指定する と きは、 表 4.3 に従っ たすべてのフ ォ ン ト 読み込みオプ シ ョ ン をサブオプ シ ョ ン と し て与え る こ と がで き ます。 alignment (キーワー ド 1 個または 2 個) 1 番目のキーワー ド は、 はめ込み枠左端 と テキス ト 行の間の リ ーダ の整列を指定 し ます。 2 番目のキーワー ド は、 テキス ト 行 と はめ込み枠右端の間の リ ーダの整列を 指定 し ます。 キーワー ド を 1 個だけ指定する と 、 テキス ト 行 と はめ込み枠右端の間の リ ーダに対 し て使われます。 使え るキーワー ド (テキス ト 行の場合のデ フ ォル ト : {none grid}。 テキス ト フ ローの場合のデ フ ォ ル ト : grid) : center テキス ト 行 : リ ーダは、 テキス ト 行 と はめ込み枠端の間で両端揃え さ れます。 テキス ト フ ロー : リ ーダは、 最後の部分テキス ト (あ るいはテキス ト がない と きは行の 先頭) と タ ブ位置 (あ るいは タ ブがない と きは行の末尾) と の間で中央揃え さ れます。 grid PDFlib は、 テキス ト 行の左ま たは右へ、 リ ーダ テキス ト の幅の半分の倍数ご と にグ リ ッ ド を仮想 し 、 リ ーダ テキス ト の位置を、 その次のグ リ ッ ド に吸着 さ せます。 これによ り 、 テキス ト 行 と リ ーダ テキス ト の間に、 リ ーダテキス ト の幅の最大 50% のアキが生 じ ます。 justify テキス ト 行 : リ ーダは、 適切な字間を適用する こ と に よ り 、 テキス ト 行 と はめ込み枠端 の間で両端揃え さ れます。 テキス ト フ ロー : リ ーダは、 適切な字間を適用する こ と によ り 、 最後の部分テキス ト (あ るいはテキス ト がない と きは行の先頭) と タ ブ位置 (あるいは タ ブがない と きは行 の末尾) と の間で両端揃え さ れます。 left それぞれ リ ーダは、 はめ込み枠左端から 、 またはテキス ト 行末尾か ら開始 し て繰 り 返 さ れます。 こ れを指定する と それぞれ、 テキス ト 行先頭に、 またははめ込み枠右端に隙間 が生 じ る可能性があ り ます。 none リ ーダな し right それぞれ リ ーダは、 はめ込み枠右端から 、 またはテキス ト 行先頭か ら開始 し て繰 り 返 さ れます。 こ れを指定する と それぞれ、 テキス ト 行末尾に、 またははめ込み枠左端に隙間 が生 じ る可能性があ り ます。 fillcolor (色) リ ーダの色。 デ フ ォ ル ト : テキス ト 行の色 font (フ ォ ン ト ハン ド ル) リ ーダに対 し て使いたい フ ォ ン ト のハン ド ル。 デ フ ォル ト : テキス ト 行の フォン ト fontsize (文字サイ ズ) リ ーダのサイ ズ。 デ フ ォ ル ト : テキス ト 行の文字サイ ズ text (内容文字列) リ ーダに使いたいテキス ト 。 デ フ ォ ル ト : U+002E 「.」 (ピ リ オ ド ) yposition (float またはキーワード)リーダの縦位置を、ベースラインに対して相対的に、数値またはキー ワード fontsize・ascender・xheight・baseline・descender・textrise のいずれかで指定しま す。デフォルト:baseline C++ Java C# double info_textline(String text, String keyword, String optlist) Perl PHP float info_textline(string text, string keyword, string optlist) C double PDF_info_textline(PDF *p, const char *text, int len, const char *keyword, const char *optlist) テ キ ス ト 行の組版を、 出力を生成せず仮想的に行な っ て、 その結果の メ ト リ ッ ク を取得 し ます。 text 98 (内容文字列) テ キ ス ト 行の内容。 第 5 章 : テキス ト と 表の組版 表 5.4 PDF_fit/info_textline( ) ・ PDF_add/create_textflow( ) ・ PDF_fill_textblock( ) に対する シ ェ ーピ ング ・ タ イ ポグ ラ フ ィ オプ シ ョ ン オプ シ ョ ン 説明 features (キーワー ド の リ ス ト ) script ・ language オプ シ ョ ンに従っ て、 OpenType フ ォ ン ト のどの タ イ ポ グ ラ フ ィ 機能がテキス ト に適用 さ れるかを指定 し ます。 フ ォ ン ト 内に存在 し ない機能に対する キーワー ド は、 警告を出 さ ずに無視 さ れます。 以下のキーワー ド を与え る こ と が可能です : _none <name> フ ォ ン ト 内の機能を一切適用 し ません。 ただ し 例外 と し て、 vert 機能は novert キー ワー ド で明示的に無効化する必要があ り ます。 機能を有効にする ために、 その 4 文字の OpenType 名を与え ます。 よ く 使われる機能名 は liga ・ ital ・ tnum ・ smcp ・ swsh ・ zero です。 対応 し ているすべての機能の名前 と 説 明の完全な一覧は PDFlib チ ュ ー ト リ アルにあ り ます。 no<name> 機能名の前に接頭辞 no を付ける と (例 : noliga) この機能が無効化 さ れます。 デ フ ォル ト : 横書き では _none、 縦書き では vert。 language (キーワー ド 。 script を与え ている と きのみ意味を持ち ます) 指定 し た言語に従っ て テキス ト が処 理 さ れます。 こ れは features ・ shaping オプ シ ョ ン に対 し て意味を持ち ます。 キーワー ド の完全 な一覧は PDFlib チ ュ ー ト リ アルにあ り ます。 例 : ARA (ア ラ ビ ア語) ・ JAN (日本語) ・ HIN ( ヒ ン デ ィ ー語)。 デ フ ォ ル ト : _none (言語未定義) script (キーワー ド 。 shaping=true な ら 必須) 指定 し た用字系に従 っ て テキス ト が処理 さ れます。 こ れは features ・ shaping ・ advancedlinebreak オプ シ ョ ンに対 し て意味を持ち ます。 用字系 と し て も っ と も よ く 使われるキーワー ド は次の と お り です : _none (用字系未定義) ・ latn ・ grek ・ cyrl ・ armn ・ hebr ・ arab ・ deva ・ beng ・ guru ・ gujr ・ orya ・ taml ・ thai ・ laoo ・ tibt ・ hang ・ kana ・ han。 キーワー ド の完全な一覧は PDFlib チ ュ ー ト リ アルにあ り ます。 キーワー ド _auto を指定する と 、 テキス ト 内のキ ャ ラ ク タ の多数が属する用字系が選択 さ れます。 その際、 latn と _none は無 視 さ れます。 _auto は、 shaping に対 し てのみ意味を持ち、 features と advancedlinebreak では無 視 さ れます。 デ フ ォル ト : _none shaping (論理値) true にする と 、 script ・ language オプ シ ョ ンに従っ て、 複雑用字系のシ ェ ーピ ン グ と 双方向組版がテキス ト に適用 さ れます。 script オプ シ ョ ンが _none 以外の値を持つ必要があ り 、 かつ フ ォ ン ト が特定の条件に従っ ている必要があ り ます (PDFlib チ ュ ー ト リ アル参照)。 シ ェ ーピ ングは、 同 じ フ ォ ン ト 内のキ ャ ラ ク タ 群に対 し てのみ行われます。 シ ェ ーピ ングは、 テキス ト フ ロー内の右書き テキス ト では利用で き ません (テキス ト 行内のみ)。 デ フ ォル ト : false len (C 言語バ イ ンデ ィ ン グのみ) テ キ ス ト の長 さ をバ イ ト 単位で表すか、 ま たは null 終 了文字列では 0。 keyword ほ し い情報を指定 し た キーワ ー ド : > 表 6.3 に従っ た、 オブジ ェ ク ト はめ込みの結果を ク エ リ す る ためのキーワ ー ド : boundingbox ・ fitscalex ・ fitscaley ・ height ・ objectheight ・ objectwidth ・ width > 表 5.5 に従っ た さ ら な る キー ワー ド : angle ・ ascender ・ capheight ・ descender ・ endx ・ endy ・ pathlength ・ perpendiculardir ・ replacedchars・righttoleft・startx・starty・scriptlist・startx・starty・textwidth・ textheight・ unmappedchars ・ wellformed ・ writingdirx ・ writingdiry ・ xheight optlist PDF_fit_textline( ) のオプ シ ョ ン群を指定 し た オプ シ ョ ン リ ス ト 。 要求 し た キー ワー ド に関係のないオプシ ョ ンは、 警告を出 さ ずに無視 さ れます。 戻り値 keyword で要求 し た何 ら かのテ キ ス ト メ ト リ ッ ク 値の値。 5.1 テキス ト 行に よ る一行テキス ト 99 詳細 こ の関数は、与えたオプシ ョ ンに従っ てテ キ ス ト を配置す る ために必要な計算をすべて行 い ますが、 実際にページ上に出力を作成は し ません。 テ キ ス ト 参照点は {0 0} と 見な さ れ ます。 errorpolicy=return の場合、 こ の関数はエ ラ ー時に 0 を返 し ます。 errorpolicy=exception の場合、 こ の関数はばエ ラ ー時に例外を発生 さ せま す (wellformed キー ワ ー ド に対 し て も )。 スコープ オブ ジ ェ ク ト 以外の任意 表 5.5 PDF_info_textline( ) のキーワー ド キーワー ド 説明 angle ベース ラ イ ンの回転角を度単位で表 し た もの、 すなわち テキス ト の回転 ascender capheight descender アセ ン ダ ・ キ ャ ッ プハイ ト ・ デ ィ セ ン ダ。 それぞれ、 同名の タ イ ポグ ラ フ ィ 特性をユー ザー座標で表 し た もの endx ・ endy 論理的な テキス ト 終了位置の x ・ y 座標をユーザー座標で表 し た もの pathlength (パス上テキス ト でのみ可) テキス ト で覆われているパスの、 その開始点か ら終了点ま での 長 さ 。 こ の値は、 PDF_fit_textline( ) が blind モー ド で呼びだ さ れた場合で も ク エ リ で き ま す。 こ の値は、 パス を さ ら な る テキス ト で ラ ベ リ ン グ継続する ために PDF_fit_textline( ) の startoffset オプ シ ョ ンに対 し て使用する こ と も で き ます。 perpendiculardir writingdir に垂直な単位ベ ク ト ル。 標準的な横書き テキス ト な ら こ れは (0, 1)、 縦書き テキ ス ト な ら (1, 0) で し ょ う replacedchars カ レ ン ト エ ン コ ーデ ィ ン グ内の コ ー ド に、 またはフ ォ ン ト 内のグ リ フ にマ ッ プ で き なかっ たので、 タ イ ポグ ラ フ ィ 的に類似のキ ャ ラ ク タ 群の内蔵 リ ス ト 内のわずかに異な るグ リ フ に、 または予備フ ォ ン ト 内のグ リ フ に置き換え られたキ ャ ラ ク タ の数。 こ の値が 0 以外に な るのは、 glyphcheck=replace に し た と き だけです。 righttoleft テキス ト のグ ローバルな出力方向が右書き な ら 1、 左書き または縦書き テキス ト な らば 0。 こ のグ ローバル方向は先頭キ ャ ラ ク タ 群に基づいて、 かつ、 テキス ト 内に方向マー カが存 在 し ていれば (例 : U+202D または &LRO;、 左書き上書き) それに も 基づいて決定 さ れま す。 scalex ・ scaley 非推奨。 fitscalex/fitscaley を使用 し て く だ さ い scriptlist テキス ト 内のすべての用字系の名前のスペース区切 り の リ ス ト を内容 と し て持つ文字列。 こ れはテキス ト シ ェ ーピ ング を用意するのに有用で し ょ う 。 用字系名群は頻度順に降順で 並べ替え ら れています。 用字系 _none と _latn は、 シ ェ ーピ ングに関係がないので無視 さ れます。 テキス ト 内に _none と _latn のキ ャ ラ ク タ だけが存在 し ている と きは、 -1 が返 さ れます。 startx ・ starty 論理的な テキス ト 開始位置の x ・ y 座標をユーザー座標系で表 し た もの textwidth ・ textheight テキス ト の幅 と 高 さ 。 こ の高 さ は範囲枠の boxheight の定義に従います。 その定義のデ フ ォ ル ト は {capheight none} です。 unknownchars glyphcheck=none の場合 : スキ ッ プ さ れたキ ャ ラ ク タ の数。 この数の中には、 解決で き な かっ た文字参照 と 、 カ レ ン ト エ ン コ ーデ ィ ン グ内の コ ー ド に、 またはフ ォ ン ト 内のグ リ フ にマ ッ プ で き なか っ たキ ャ ラ ク タ と が含まれています。 glyphcheck=replace の場合 : 指定 し た置き換えキ ャ ラ ク タ (replacementchar オプ シ ョ ン) で置き換え られたキ ャ ラ ク タ の数。 こ の数の中には、 カ レ ン ト エ ン コ ーデ ィ ング内の コ ー ド に、 またはフ ォ ン ト 内のグ リ フ にマ ッ プ で き なか っ たキ ャ ラ ク タ と 、 タ イ ポグ ラ フ ィ 的 に類似のキ ャ ラ ク タ に置き換え る こ と がで き なかっ たキ ャ ラ ク タ と が含まれています。 100 第 5 章 : テキス ト と 表の組版 表 5.5 PDF_info_textline( ) のキーワー ド キーワー ド 説明 unmappedchars スキ ッ プ さ れたか置き換え られたキ ャ ラ ク タ の数。 すなわち、 replacedchars と unknownchars の合計。 wellformed 選択 さ れた フ ォ ン ト ・ エ ン コ ーデ ィ ング (適用可能な ら textformat も) に従っ て テキス ト が整え られている な ら 1、 そ う でないな ら 0。 writingdirx writingdiry (startx, starty) から (endx, endy) への単位ベ ク ト ルを記述 し た、 優勢な筆記方向 (すな わち行内のテキス ト 進行方向) の x ・ y 座標、 左書きの横書き テキス ト な ら値 は (1, 0)、 縦書き テキス ト な ら (0, -1)、 右書きの横書き テキス ト な ら (-1, 0)。 筆記方向は、 shaping ・ vertical オプ シ ョ ン と 、 テキス ト の方向性特性群に も と づいて決定 さ れます。 xheight x ハイ ト をユーザー座標で表 し た もの 5.1 テキス ト 行に よ る一行テキス ト 101 5.2 テ キス ト フ ロ ーに よ る複数行テ キス ト ク ッ ク ブ ッ ク 完全な コ ー ド サン プルがク ッ ク ブ ッ ク の text_output/starter_textflow ト ピ ッ ク にあ り ま す。 C++ Java C# int add_textflow(int textflow, String text, String optlist) Perl PHP int add_textflow(int textflow, string text, string optlist) C int PDF_add_textflow(PDF *p, int textflow, const char *text, int len, const char *optlist) テ キ ス ト フ ロ ーオブジ ェ ク ト を作成す る か、 ま たは既存のテ キ ス ト フ ロ ーにテ キ ス ト と 明 示オプシ ョ ン を追加 し ます。 textflow 以前の PDF_create_textflow( ) ま たは PDF_add_textflow( ) への呼び出 し に よ っ て 返 さ れたテ キ ス ト フ ロ ーハン ド ルか、 ま たは -1 (PHP では 0) で新規テ キ ス ト フ ロ ーを作 成 し ます。 text (内容文字列) テ キ ス ト フ ロ ーの内容。 テ キ ス ト には、 任意の イ ン ラ イ ン テ キ ス ト を入れ る こ と も で き ます。 len (C 言語バ イ ンデ ィ ン グのみ) テ キ ス ト の長 さ をバ イ ト 単位で表すか、 ま たは null 終 了文字列では 0。 optlist 以下のテ キ ス ト フ ロ ーオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 4.2 で暗黙的フ ォ ン ト 読み込み(すなわち、テ キ ス ト 書式グループの font オプシ ョ ン を与えない) の場合に従っ た フ ォ ン ト 読み込みオプシ ョ ン群 : ascender ・ autosubsetting ・ capheight ・ descender ・ embedding ・ encoding ・ fallbackfonts ・ fontname ・ fontstyle ・ keepnative ・ linegap ・ metadata ・ monospace ・ readfeatures ・ replacementchar ・ subsetlimit ・ subsetminsize ・ subsetting ・ unicodemap ・ vertical ・ xheight > 表 4.6 に従っ たテ キ ス ト フ ィ ル タ オプシ ョ ン群 : charref ・ escapesequence ・ glyphcheck ・ normalize ・ textformat > 表 4.7 に従っ たテ キ ス ト 書式オプシ ョ ン群 : charspacing ・ dasharray ・ decorationabove ・ fakebold ・ fillcolor ・ font ・ fontsize ・ gstate ・ horizscaling ・ inittextstate ・ italicangle ・ kerning ・ leading ・ overline ・ shadow ・ strikeout ・ strokecolor ・ strokewidth ・ textrendering ・ textrise ・ underline ・ underlineposition ・ underlinewidth ・ wordspacing > 表 5.4 に従っ たシ ェ ーピ ン グ ・ タ イ ポグ ラ フ ィ オプシ ョ ン群 : features ・ language ・ script ・ shaping > 表 5.6 に従っ たテ キ ス ト フ ロ ー組版のためのオプシ ョ ン群 : alignment ・ avoidemptybegin ・ fixedleading ・ hortabmethod ・ hortabsize ・ lastalignment ・ leader ・ leftindent ・ minlinecount ・ parindent ・ rightindent ・ ruler ・ tabalignment > 表 5.7 に従っ た改行アルゴ リ ズ ム を制御す る ためのオプシ ョ ン群 : adjustmethod ・ advancedlinebreak ・ avoidbreak ・ locale ・ maxspacing ・ minspacing ・ nofitlimit ・ shrinklimit ・ spreadlimit > 表 5.8 に従っ た コ マ ン ド オプシ ョ ン群 : comment ・ mark ・ matchbox ・ nextline ・ nextparagraph ・ resetfont ・ return ・ save ・ space 102 第 5 章 : テキス ト と 表の組版 > 表 5.9 に従っ た テ キ ス ト 意味付けオプシ ョ ン群 : charclass ・ charmapping ・ hyphenchar ・ tabalignchar 戻り値 テ キ ス ト フ ロ ーハン ド ル。 テ キ ス ト フ ロ ー関連の関数への呼び出 し で使え ます。 ハン ド ル は、 カ レ ン ト の文書 ス コ ープの終わ り か、 ま たは こ のハ ン ド ル を 指定 し て PDF_delete_ textflow( ) を呼ぶま で有効です。 textflow 引数を -1 (PHP では 0) にす る と 、 新規テ キ ス ト フ ロ ーが作成 さ れて、 その ハン ド ルが返 さ れ ます。 そ う でないな ら 、 textflow 引数で与えたハン ド ルが返 さ れます。 デフ ォ ル ト では こ の関数は、 エ ラ ーが起 き た と き は -1 (PHP では 0) を返 し ます。 し か し こ の動作は、 errorpolicy オプ シ ョ ン で変え る こ と も で き ま す。 エ ラ ーが起 き た と き は、 textflow 引数で与えたハン ド ルは、 以後の関数への呼び出 し では も う 使 う こ と がで き ませ ん (-1 以外だっ た と き の PDF_delete_textflow( ) を除き )。 詳細 こ の関数は、 与え ら れたテ キ ス ト を処理 し て、 そ こ か ら 内部デー タ 構造を作成 し ます。 以 後に フ ォ ーマ ッ タ が使 う テ キ ス ト の各部分 (単語等) を 決定 し 、 テ キ ス ト を 可能な ら Unicode へ変換 し 、 改行可能位置を決定 し 、 フ ォ ン ト と テ キ ス ト のオプシ ョ ン群に も と づ いてテ キ ス ト の各部分の幅を算出 し ます。 PDF_create_textflow( ) の場合は、1 度の呼び出 し でテ キ ス ト 内容 と オプシ ョ ン をすべて 与え る 必要があ り ますが、 こ の関数はそれ と は異な り 、 何度かの呼び出 し に分けてテ キ ス ト 内容 と オプシ ョ ン を与えたい と き に有用です。 与え ら れた text と optlist を、 新規ま た は既存のテ キ ス ト フ ロ ーに追加 し ます。 optlist で指定 さ れたオプシ ョ ンは、 text を処理す る前に評価 さ れます。 text と optlist の両方を空にす る こ と も で き ます。 textflow=-1 (PHP では 0) にす る と 、 こ の関数はほ と ん ど PDF_create_textflow( ) と 同 等にな り ます。 ただ し PDF_create_textflow( ) と は違っ て、 こ の関数は text の中の イ ン ラ イ ンオプシ ョ ン を検索 し ません。 ですので、 イ ン ラ イ ン オプシ ョ ン リ ス ト の開始キ ャ ラ ク タ を再定義 し た り 、 イ ン ラ イ ン オプシ ョ ンのテ キ ス ト の長 さ を指定 し た り す る 必要はあ り ません (非 Unicode テ キ ス ト ・ UTF-16 テ キ ス ト の場合であ っ て も )。 こ の関数は、 与え たテ キ ス ト と オプシ ョ ン群を前処理 し ますが、 生成 PDF 文書に出力 を作成せず、 ただテ キ ス ト を用意 し ます。 出力を作成する には、 PDF_fit_textflow( ) ・ PDF_ fit_table( ) ・ PDF_fill_textblock( ) のいずれかを使っ て、 こ の前処理 し た テ キ ス ト フ ロ ーのハ ン ド ルを指定 し ます。 デ フ ォ ル ト では、 キ ャ ラ ク タ U+000B (VT) ・ U+2028 (LS) ・ U+000A (LF) ・ U+000D (CR) ・ CRLF ・ U+0085 (NEL) ・ U+2029 (PS) ・ U+000C (FF) は、 ニ ュ ー ラ イ ン を強制 し ます。 こ れ ら の制御キ ャ ラ ク タ は、 encoding=builtin で読み込んだ記号フ ォ ン ト に対 し て は解釈 さ れません。 こ れ ら は VT ・ LS を除いてすべて、 改段落を強制 し ます (すなわち、 そ こ で parindent オプシ ョ ンが効 き ます)。 FF はただちに、 カ レ ン ト はめ込み枠へのテ キ ス ト のはめ込み処理を中止 さ せます (関数 PDF_fit_textflow( ) は文字列 _nextpage を返 し ます)。 水平 タ ブキ ャ ラ ク タ (HT) は、 後続す る テ キ ス ト に対 し て新 し い開始位置を設定 し ま す。 こ れの詳細は、 hortabmethod ・ hortabsize オプシ ョ ン で制御 さ れます。 ソ フ ト ハ イ フ ン キ ャ ラ ク タ (SHY) は、 その ソ フ ト ハ イ フ ンの後に改行が来 る と き は、 hyphenchar オプシ ョ ン で指定 さ れてい る キ ャ ラ ク タ に置 き 換え ら れます。 縦書 き には対応 し てい ません。 スコープ オブ ジ ェ ク ト 以外の任意 5.2 テキス ト フ ローによ る複数行テキス ト 103 表 5.6 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 追加の組版オプ シ ョ ン オプ シ ョ ン 説明 alignment (キーワー ド ) 段落内の行の整列を指定 し ます (デ フ ォル ト : left) : left 左揃え。 leftindent+parindent (段落の先頭行) と 、 leftindent (それ以外のすべて の行) か ら center 中央揃え。 leftindent から rightindent ま で right 右揃え。 rightindent ま で justify 両端揃え 値 alignment=justify は、 nextline オプ シ ョ ン を含む行に対 し ては無視 さ れます。 nextparagraph を含む行の整列は、 alignment オプ シ ョ ン によ っ て制御 さ れず、 オプ シ ョ ン lastalignment によ っ て制御 さ れます。 avoidemptybegin (論理値) true にする と 、 はめ込み枠の先頭の空行群は削除 さ れます。 デ フ ォ ル ト : false fixedleading (論理値) true にする と 、 それぞれ行の中で見つか っ た最初の行送 り 値が使われます。 そ う で な ければ、 行の中のすべての行送 り 値の う ち最大の ものが使われます。 PDF_fit_textflow( ) の wrap オ プ シ ョ ン を、 または matchbox オプ シ ョ ンの createwrapbox サブオプ シ ョ ン を使っ て テキス ト を 輪郭に回 り 込ませる場合は、 fixedleading は true を強制 さ れます。 デ フ ォ ル ト : false hortabmethod (キーワー ド ) テキス ト の水平 タ ブの処理。 算出 さ れる位置が、 カ レ ン ト テキス ト 位置よ り 左の と きは、 その タ ブは無視 さ れます (デ フ ォ ル ト : relative) : relative 位置を、 hortabsize で指定 し ている量だけ進めます。 typewriter 位置を、 hortabsize の次の倍数ま で進めます。 ruler hortabsize 位置を、 ruler オプ シ ョ ンの n 番目の タ ブ値ま で進めます。 こ こ で n は、 その行の中 で こ れま でに見つかっ た タ ブの数です。 n が タ ブ位置の数よ り 大き い と きは、 relative 方式を適用 し ます。 (float またはパーセ ン ト 値) 水平 タ ブの幅1。 その解釈は、 hortabmethod オプ シ ョ ンに依存 し ま す。 デ フ ォ ル ト : 7.5% lastalignment (キーワー ド ) 段落内の最終行の整列。 alignment オプ シ ョ ンのすべてのキーワー ド のほか、 以下 のキーワー ド も 使え ます (デ フ ォル ト : auto) : auto alignment オプ シ ョ ンの値を使います。 ただ し それが justify の と きは left が使われ ます。 leader (オプ シ ョ ン リ ス ト ) 繰 り 返 し 挿入 し たい隙間埋めテキス ト (点 リ ーダ等) を指定 し ます。 リ ー ダは、 次の タ ブ位置か、 ま たは タ ブが得ら れない と きは行末ま で挿入 さ れつづけます。 リ ーダは 複数行にわた る こ と はあ り ません。 使え るサブオプ シ ョ ンの一覧は表 5.3 を参照。 デ フ ォル ト : リ ーダな し leftindent (float またはパーセ ン ト 値) テキス ト 行の左イ ンデン ト 1。 leftindent を行内で指定 し ている と きは、 決定 さ れる位置がカ レ ン ト テキス ト 位置よ り 左な ら、 こ のオプ シ ョ ンは こ の行では無視 さ れます。 デ フ ォ ル ト : 0 minlinecount (整数) はめ込み枠の最後の段落の最少行数。 行数が こ れよ り 少ない と きは、 その段落は次のは め込み枠に配置 さ れます。 値 2 にすれば、 段落の 1 行だけがはめ込み枠の最後に来て し ま う 状態 (「オー フ ァ ン」) を防げます。 デ フ ォル ト : 1 parindent (float またはパーセ ン ト 値) 段落の先頭行の左イ ンデン ト 1。 こ の値が leftindent に加算 さ れま す。 このオプ シ ョ ン を行内で指定する と 、 タ ブのよ う に動作 し ます。 デ フ ォ ル ト : 0 rightindent (float またはパーセ ン ト 値) テキス ト 行の右イ ンデン ト 1。 デ フ ォ ル ト : 0 ruler (float かパーセ ン ト 値の リ ス ト ) hortabmethod=ruler の と きの絶対 タ ブ位置の リ ス ト 1。 リ ス ト には、 最大 32 個の非負の項目を昇順で入れる こ と がで き ます。 デ フ ォル ト : hortabsize の整数 倍 104 第 5 章 : テキス ト と 表の組版 表 5.6 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 追加の組版オプ シ ョ ン オプ シ ョ ン 説明 tabalignment (キーワー ド の リ ス ト 。 hortabmethod=ruler の場合のみ) タ ブ位置の整列。 こ の リ ス ト は 32 項目 ま で を内容 と する こ と がで き ます。 テキス ト 内で行あた り 32 個を超え る水平 タ ブが現れる場合 には、 この リ ス ト は最後の値を用いて拡張 さ れます。 リ ス ト 内の各項目はそれぞれ、 ruler オプ シ ョ ンの各項目の整列を定義 し ます。 デ フ ォ ル ト : left。 center テキス ト を タ ブ位置で中央揃え し ます。 decimal 最初に現れる tabalignchar を タ ブ位置で左揃え し ます。 tabalignchar が見つから な い と きは、 右揃えに し ます。 left テキス ト を タ ブ位置で左揃え し ます。 right テキス ト を タ ブ位置で右揃え し ます。 1. ユーザー座標で、 ま たははめ込み枠の幅に対するパーセ ン ト 値で指定 し ます 表 5.7 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 改行アルゴ リ ズムを制御する ための 追加のオプ シ ョ ン オプ シ ョ ン 説明 adjustmethod (キーワー ド ) minspacing ・ maxspacing オプ シ ョ ン で指定 し ている制限の中で単語間を縮めた り 拡げた り し て も、 部分テキス ト が行に収ま り き ら ない と き に、 行の調整に使わせたい方式。 デ フ ォ ル ト : auto。 auto 次の方式を順に適用 し ます : shrink ・ spread ・ nofit ・ split。 clip nofit において、 はめ込み枠の右端 (rightindent オプ シ ョ ン を考慮) からはみ出 し た 部分を切 り 落 と し ます。 nofit 最後の単語を次の行へ送 り ます。 ただ し 、 残 さ れる (短い) 行が、 nofitlimit オプ シ ョ ン で指定 し ているパーセ ン ト 値よ り も短 く な ら ない場合に限 り ます。 両端揃えの 段落で も若干がたついて見え る こ と があ り ます。 shrink 単語が行に収ま り き ら ない と き に、 テキス ト を shrinklimit の制限内で圧縮 し ます。 それで も収ま ら ない と きは、 nofit 方式を適用 し ます。 split 最後の単語を次の行へ送 ら ずに、 枠内の最後のキ ャ ラ ク タ の後で強制的に分割 し ます。 テキス ト フ ォ ン ト の場合はハイ フ ンキ ャ ラ ク タ を挿入 し ますが、 記号フ ォ ン ト の場合 か、 または hyphenchar=none の と きは挿入 し ません。 spread 最後の単語を次の行へ送 り 、 残 さ れた (短い) 行を両端揃えする よ う 、 単語内の字間 を spreadlimit の制限内で拡げます。 それで も 両端揃え で き ない と きは、 nofit 方式 を適用 し ます。 advancedlinebreak (論理値) 複雑用字系に対 し て必要な高度な改行アルゴ リ ズムを有効に し ます。 こ れは タ イ文字 のよ う に、 単語間の境界を表すのにスペースキ ャ ラ ク タ を用いない用字系での改行に必要です。 locale ・ script オプ シ ョ ンは効力を持ち ます。 デ フ ォル ト : false avoidbreak (論理値) true にする と 、 avoidbreak を false に リ セ ッ ト する ま で、 改行機会 (スペースキ ャ ラ ク タ 等での) が無視 さ れます。 強制的な改行 (ニ ュ ー ラ イ ン等での) と 、 adjustmethod に よ っ て 定義 さ れる方式は、 こ の場合に も実行 さ れます。 特に、 adjustmethod=split は こ の場合に も ハイ フ ネーシ ョ ン を生成 し ます。 デ フ ォ ル ト : false 5.2 テキス ト フ ローによ る複数行テキス ト 105 表 5.7 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 改行アルゴ リ ズムを制御する ための 追加のオプ シ ョ ン オプ シ ョ ン 説明 locale (キーワー ド ) advancedlinebreak=true の と き、 用字系特有の改行方式で用い られる ロ ケール。 キーワー ド は、 以下の 1 個ない し 複数の構成要素から成 り 、 オプ シ ョ ナルな構成要素は下線キ ャ ラ ク タ 「_」 で区切 られます (その文法は、 NLS/POSIX のロ ケール ID と は若干異な っ ています)。 > (必須) ISO 639-2 に従っ た、 小文字 2 文字ま たは 3 文字の言語 コ ー ド (www.loc.gov/standards/ iso639-2 参照)。 例 : en (英語) ・ de ( ド イ ツ語) ・ ja (日本語)。 こ れは language オプ シ ョ ン と は異な っ ています。 > (オプ シ ョ ン) ISO 3166 に従 っ た、 大文字 2 文字の国 コ ー ド (www.iso.org/iso/country_codes/iso_ 3166_code_lists 参照)。 例 : DE ( ド イ ツ) ・ CH (ス イ ス) ・ GB (イ ギ リ ス)。 キーワー ド _none は、 ロ ケール独自の処理が行われない こ と を指定 し ます。 ロ ケールを指定する こ と は、 い く つかの用字系では、 高度な改行のために必要です。 デ フ ォル ト : _none 例 : tha ・ de_DE ・ en_US ・ en_GB maxspacing minspacing (float またはパーセ ン ト 値。 行がスペースキ ャ ラ ク タ U+0020 を少な く と も 1 個含み、 かつ alignment=justify の と きのみ意味を持ち ます) 単語間隔の最大値 と 最小値 (ユーザー座標で、 またはスペースキ ャ ラ ク タ の幅に対するパーセ ン ト 値で指定 し ます)。 算出 さ れる単語間隔が、 与え る値で制限 さ れます (ただ し wordspacing オプ シ ョ ンは さ ら に加算 さ れます)。 デ フ ォル ト : minspacing=50%、 maxspacing=500% nofitlimit (float またはパーセ ン ト 値。 alignment=justify の と きのみ意味を持ち ます) nofit 方式に し てい る と きの、 行の長 さ の下限1。 デ フ ォ ル ト : 75%。 shrinklimit (パーセ ン ト 値) adjustmethod=shrink に し ている と きの、 テキス ト を縮める下限。 算出 さ れる縮 小率が、 与え る値で制限 さ れますが、 horizscaling オプ シ ョ ン を掛け算 さ れます。 デ フ ォル ト : 85% spreadlimit (float またはパーセ ン ト 値) spread 方式に し ている と きの、 字間の上限 1。 算出 さ れる字間が、 charspacing オプ シ ョ ンの値に加算 さ れます。 デ フ ォ ル ト : 0 1. ユーザー座標で、 ま たははめ込み枠の幅に対するパーセ ン ト 値で指定 し ます 表 5.8 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 追加のコ マ ン ド オプ シ ョ ン オプ シ ョ ン 説明 comment (文字列) 無視 さ れる任意のテキス ト 。 オプ シ ョ ン リ ス ト かマ ク ロに注釈を付けるのに有用です mark (整数) 与え る番号を、 マー ク と し て内部的に格納 し ます。 も っ と も最近に格納 し たマー ク は、 後で PDF_info_textflow( ) と lastmark キーワー ド で取得する こ と がで き ます。 こ れは、 テキス ト の どの部分がページに も う 配置 さ れたかを知るのに有用で し ょ う 。 matchbox (オプ シ ョ ン リ ス ト ) 表 6.4 に従っ た、 範囲枠を作成する ためのオプ シ ョ ン リ ス ト nextline (論理値) 改行を強制 し ます。 キ ャ ラ ク タ U+000B ・ U+2028 のいずれか 1 つ と 等価です。 オプ シ ョ ン alignment=justify と lastalignment は、 この nextline オプ シ ョ ン を含む行にはいかな る影 響 も及ぼ し ません。 nextparagraph (論理値) 改段落を強制 し ます。 キ ャ ラ ク タ U+000A、 U+000D、 U+000D と U+000A、 U+0085、 U+2029、 U+00FF のいずれか 1 つ と 等価です。 この nextparagraph オプ シ ョ ン を含む行の整列は、 オプ シ ョ ン lastalignment によ っ て決定 さ れ、 オプ シ ョ ン alignment は無視 さ れます。 106 第 5 章 : テキス ト と 表の組版 表 5.8 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 追加のコ マ ン ド オプ シ ョ ン オプ シ ョ ン 説明 resetfont (論理値) font と fontsize を、 カ レ ン ト の設定 と 違 っ ていた (フ ォ ン ト か文字サイ ズのど ち らか が) も っ と も最近の値へ戻 し ます。 こ れは、 イ タ リ ッ ク のテキス ト のよ う に一時的に フ ォ ン ト を 変えたのを、 元に戻 し たい と き に便利で し ょ う 。 font オプ シ ョ ンは こ のオプ シ ョ ン よ り も優先 さ れます。 こ の コ マ ン ド は、 任意のフ ォ ン ト 関連オプ シ ョ ンについて最初の設定 と 違 う 設定を初め て行な っ た後にのみ意味を持ち、 そ う で ない と きは無視 さ れます。 restore (論理値) true の場合、 一番最近の save コ マ ン ド によ っ て保存 さ れたすべてのテキス ト ・ テキス ト フ ローオプ シ ョ ンの値が復帰 さ れます。 保存 / 復帰ペア内で作成 さ れた範囲枠は、 復帰後、 保 持 さ れます。 デ フ ォル ト : false return (文字列。 先頭にア ン ダース コ アキ ャ ラ ク タ _ をつけてはいけません) 与え る文字列を戻 り 値 と し て、 PDF_fit_textflow( ) を抜けます。 save (論理値) true の場合、 すべてのテキス ト ・ テキス ト フ ローオプ シ ョ ンの値が、 非ス テー ト オプ シ ョ ン nextline ・ nextparagraph ・ resetfont ・ return ・ space ・ textlen の値を除き、 保存 さ れ ます。 保存 / 復帰ペアは、 任意の深 さ にネス ト する こ と がで き ます。 デ フ ォ ル ト : false space (float ま たはパーセ ン ト 値) テキス ト 位置を、 与えた値だけ進めます1。 1. ユーザー座標で、 ま たは文字サイ ズに対するパーセ ン ト 値で指定 し ます 表 5.9 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 追加のテキス ト 意味付けオプ シ ョ ン オプ シ ョ ン 説明 charclass (ペアの リ ス ト 。 それぞれのペアの 1 番目の要素はキーワー ド で、 2 番目の要素は Unichar または Unichar の リ ス ト 。 こ の Unichar は < 0xFFFF である必要があ り ます。 advancedlinebreak=true の と きは無視 さ れます) 指定する Unichar 群を、 その改行動作を決定する ために指定するキーワー ド に分類 し ます。 letter a B 等の文字のよ う に動作 し ます punct + / ; : 等の句読点のよ う に動作 し ます open [ 等の開き カ ッ コ のよ う に動作 し ます close ] 等の閉 じ カ ッ コ のよ う に動作 し ます default すべてのキ ャ ラ ク タ 分類を、 PDFlib の内蔵のデ フ ォル ト に リ セ ッ ト し ます 例 : charclass={ close » open « letter {/ : =} punct & } charmapping (ペアの リ ス ト 。 それぞれのペアは 2 個の Unichar か、 または 1 番目の要素が Unichar で、 2 番目 の要素が Unichar と 整数の リ ス ト 。 こ の Unichar は < 0xFFFF であ る必要があ り ます) 個々のキ ャ ラ ク タ を、 別の 1 個ない し 複数のキ ャ ラ ク タ へ置き換え ます。 オプ シ ョ ン リ ス ト には 1 個ない し 複数の Unichar のペア を入れます。 それぞれのペアの 1 番目のキ ャ ラ ク タ が、 2 番目のキ ャ ラ ク タ に置き換わ り ます。 一対一対応で な く 、 それぞれのペアの 2 番目の要素を オプ シ ョ ン リ ス ト に し て、 Unichar と 個数を入れる こ と も で き ます。 個数> 0 置き換えキ ャ ラ ク タ を その個数並べます。 個数< 0 キ ャ ラ ク タ が複数個並んでいる と き、 指定値の固定個数に減ら し ます。 個数= 0 キ ャ ラ ク タ を削除 し ます。 例: charmapping={ hortab space CRLF space LF space CR space } charmapping={ shy {shy 0} } charmapping={ hortab {space 4} } 5.2 テキス ト フ ローによ る複数行テキス ト 107 表 5.9 PDF_add/create_textflow( ) と 、 PDF_create_textflow( ) のイ ン ラ イ ンの、 追加のテキス ト 意味付けオプ シ ョ ン オプ シ ョ ン 説明 hyphenchar (Unichar < 0xFFFF またはキーワー ド ) 改行位置で ソ フ ト ハイ フ ン を置き換えたいキ ャ ラ ク タ 。 値 0 かキーワー ド none にする と 、 ハイ フ ンが完全にな く な り ます。 デ フ ォル ト : U+00AD ( ソ フ ト ハイ フ ン)、 ただ し こ れが フ ォ ン ト にない と きは U+002D (ハイ フ ン ・ マ イ ナス) tabalignchar (Unichar < 0xFFFF) 小数点 タ ブ を整列 さ せたいキ ャ ラ ク タ 。 デ フ ォ ル ト : U+002E 「.」 テキス ト フ ロ ーオ プ シ ョ ンのマ ク ロ テ キ ス ト フ ロ ーの オ プ シ ョ ン リ ス ト に は (PDF_ create_textflow( )・PDF_add_textflow( ) の optlist 引数で も 、あ る いは PDF_create_textflow( ) に与え る テ キ ス ト に イ ン ラ イ ンで も )、 表 5.10 に従っ て、 マ ク ロ の定義 と 、 マ ク ロ の呼び 出 し を入れ る こ と がで き ます。 マ ク ロ は、 フ ォ ン ト 名や イ ンデン ト 量な ど、 何度 も 使 う オ プシ ョ ン値を 1 回の定義に ま と めたい と き に便利で し ょ う 。オプシ ョ ン リ ス ト が解析 さ れ る 前には まず、 その中に入っ てい る マ ク ロ が、 各マ ク ロ の定義で与え ら れてい る オプシ ョ ン リ ス ト の内容に置 き 換え ら れます。 その結果で き たオプシ ョ ン リ ス ト が、 その後に解析 さ れます。 以下に、 2 個のマ ク ロ のマ ク ロ 定義の例を示 し ます。 <macro { comment { 以下のマクロは段落スタイルとして利用されます } H1 {fontname=Helvetica-Bold encoding=winansi fontsize=14 } body {fontname=Helvetica encoding=winansi fontsize=12 } }> こ れ ら のマ ク ロ は、 オプシ ョ ン リ ス ト の中で以下の よ う に利用で き る で し ょ う 。 <&H1>Chapter 1 <&body>This chapter talks about... マ ク ロ の定義 と 使用には、 以下の規則があ り ます。 > マ ク ロ は、 任意の深 さ にネ ス ト さ せ る こ と がで き ます (マ ク ロ の定義の中で、 別のマ ク ロ を呼び出す こ と が可能)。 > マ ク ロ は、 それを定義 し てい る の と 同 じ オプシ ョ ン リ ス ト の中で使 う こ と はで き ませ ん。 PDF_create_textflow( ) の場合は、 マ ク ロ を定義 し てい る イ ン ラ イ ン オプシ ョ ン リ ス ト を終わ ら せた直後に、 そのマ ク ロ を使 う 新 し い イ ン ラ イ ン オプシ ョ ン リ ス ト を始 めれば よ いで し ょ う 。 PDF_add_textflow( ) を使っ てい る 場合は、 関数を一度呼び出 し てマ ク ロ を定義 し た後、 それを使 う には も う 一度呼び出す必要があ り ます (PDF_add_ textflow( ) は一度に 1 つのオプシ ョ ン リ ス ト し か受け付けないので)。 > マ ク ロ の名前は大文字 ・ 小文字を区別 し ます。 > 未定義のマ ク ロ は例外を発生 さ せます。 > マ ク ロ はいつで も 再定義す る こ と がで き ます。 108 第 5 章 : テキス ト と 表の組版 表 5.10 PDF_add/create_textflow( ) ・ PDF_fit_textflow( ) のオプ シ ョ ン リ ス ト マ ク ロの定義 と 呼び出 し オプ シ ョ ン 説明 macro (ペアの リ ス ト ) それぞれのペアは、 マ ク ロの名前 と 定義を以下のよ う に記述 し ます (なお、 この マ ク ロ名 と その定義の間には等号 「=」 があ っ てはいけません) : name (文字列) マ ク ロの名前。 以後 こ れを使 っ てマ ク ロ を呼び出す こ と がで き ます。 すでに 定義 し てある マ ク ロ を後から 定義 し なおす こ と も で き ます。 特殊名 comment は無視 さ れ ます。 suboptlist マ ク ロが呼び出 さ れた時にマ ク ロ名を リ テ ラ ルに置き換え る オプ シ ョ ン リ ス ト 。 最初 と 最後のホワ イ ト スペースは無視 さ れます。 &name 指定名のマ ク ロ を展開 し 、 マ ク ロ名 (キ ャ ラ ク タ & を含め) を、 そのマ ク ロの内容、 すなわち、 そのマ ク ロに対 し て定義 し ておいた suboptlist (両端の括弧は含まず) で置き換え ます。 マ ク ロ 名は、 ホワ イ ト スペース ・ { ・ } ・ = ・ & のいずれかで終了 し ます。 ですから、 こ れら のキ ャ ラ ク タ を マ ク ロ名の中で使っ てはいけません。 ネス ト さ れたマ ク ロは、 ネス ト 制限な し に展開 さ れます。 文字列オプ シ ョ ンの中に入れたマ ク ロ も 展開 さ れます。 マ ク ロ を置き換えた ら 有効なオプ シ ョ ン リ ス ト にな る よ う にする必要があ り ま す。 C++ Java C# int create_textflow(String text, String optlist) Perl PHP int create_textflow(string text, string optlist) C int PDF_create_textflow(PDF *p, const char *text, int len, const char *optlist) テ キ ス ト 内容 ・ イ ン ラ イ ンオプシ ョ ン ・ 明示オプシ ョ ンか ら テ キ ス ト フ ロ ーオブジ ェ ク ト を作成 し ます。 text (内容文字列) テ キ ス ト フ ロ ーの内容。 さ ま ざ ま なエン コ ーデ ィ ン グのテ キ ス ト と 、 マ ク ロ と (108 ページ 「テ キ ス ト フ ロ ーオプシ ョ ンのマ ク ロ 」 参照)、 表 5.6 ・ 表 5.11 に 従っ た イ ン ラ イ ンオプシ ョ ン リ ス ト (110 ページ 「テ キ ス ト フ ロ ーの イ ン ラ イ ンオプシ ョ ン リ ス ト 」 も 参照) を入れ る こ と がで き ます。 text を空文字列に し て も 、 有効なテ キ ス ト フ ロ ーハン ド ルが返 さ れます。 len (C 言語バ イ ンデ ィ ン グのみ) テ キ ス ト の長 さ をバ イ ト 単位で表すか、 ま たは null 終 了文字列では 0。 optlist テ キ ス ト フ ロ ーオプシ ョ ン を指定 し たオプシ ョ ン リ ス ト 。 optlist で指定す る オプ シ ョ ンは、text の中の イ ン ラ イ ン オプシ ョ ン リ ス ト で指定す る オプシ ョ ン よ り も 前に評価 さ れ る ので、optlist 引数で与え る オプシ ョ ン よ り も イ ン ラ イ ン オプシ ョ ンのほ う が優先 さ れます。 以下のオプシ ョ ンが使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > PDF_add_textflow( ) のすべてのオプシ ョ ン(PDF_add_textflow( ) のオプシ ョ ン一覧を参 照) > イ ン ラ イ ンオプシ ョ ン リ ス ト の処理を表 5.11 に従っ て制御す る オプシ ョ ン : begoptlistchar ・ endoptlistchar ・ fixedtextformat ・ textlen 戻り値 テ キ ス ト フ ロ ーハン ド ル。 PDF_add_textflow( ) ・ PDF_fit_textflow( ) ・ PDF_info_textflow( ) ・ PDF_delete_textflow( ) への呼び出 し で使え ます。 ハン ド ルは、 カ レ ン ト の文書ス コ ープ を 終え る か、 ま たは PDF_delete_textflow( ) で こ のハン ド ルを指定 し て呼び出すま で有効で す。 デフ ォ ル ト では、 こ の関数はエ ラ ーが起き た と き は -1 (PHP では 0) を返 し ます。 こ の動作は、 errorpolicy オプシ ョ ン で変え る こ と も で き ます。 5.2 テキス ト フ ローによ る複数行テキス ト 109 詳細 こ の関数は、 オプシ ョ ン と テ キ ス ト を受け付けて、 テ キ ス ト フ ロ ーを作 り ます。 PDF_add_ textflow( ) 関数 と は異な り 、 テ キ ス ト に イ ン ラ イ ン オプシ ョ ン を入れ る こ と も で き ます。 イ ン ラ イ ンオプシ ョ ン リ ス ト の検索は、 optlist 引数で textlen オプシ ョ ン を与えれば、 テ キ ス ト の一部分ま たは全体で無効にす る こ と も で き ます (110 ページ 「テ キ ス ト フ ロ ーの イ ン ラ イ ンオプシ ョ ン リ ス ト 」 参照)。 こ の関数は、 生成 PDF 文書に出力を作成せず、 ただ与え ら れたオプシ ョ ンに従っ てテ キ ス ト を用意 し ます。 出力を作成す る には、 PDF_fit_textflow( ) を使っ て、 こ の前処理 し たテ キ ス ト フ ロ ーのハン ド ルを指定 し ます。 特殊キ ャ ラ ク タ や改行な ど の情報については、 詳 し く は PDF_add_textflow( ) の詳細の 項を参照 し て く だ さ い。 スコープ オブ ジ ェ ク ト 以外の任意 表 5.11 PDF_create_textflow( ) のイ ン ラ イ ン オプ シ ョ ン リ ス ト 処理のための追加オプ シ ョ ン オプ シ ョ ン 説明 begoptlistchar (Unichar < 0xFFFF またはキーワー ド ) オプ シ ョ ン リ ス ト を開始 さ せたいキ ャ ラ ク タ 。 デ フ ォ ル ト のキ ャ ラ ク タ がテキス ト に リ テ ラルに現れる と きは、 こ れを別のキ ャ ラ ク タ に替え る と 便利か も し れません (110 ページ 「テキス ト フ ローのイ ン ラ イ ン オプ シ ョ ン リ ス ト 」 参照)。 textlen を指 定 し ていない と きは、 テキス ト の中の begoptlistchar キ ャ ラ ク タ は、 先行する テキス ト と 同 じ テキス ト 形式 と エ ン コ ーデ ィ ングで エ ン コ ー ド し てお く 必要があ り ます。 と い う こ と は、 先行す る テキス ト のエ ン コ ーデ ィ ングに begoptlistchar が含まれている よ う に、 その Unicode 値を選ぶ 必要があ り ます。 キーワー ド none を使 う と 、 オプ シ ョ ン リ ス ト の検索を完全に無効にする こ と がで き ます。 デ フ ォル ト : U+003C (<) endoptlistchar (Unichar < 0xFFFF。 U+007D 「}」 は使え ません) イ ン ラ イ ン オプ シ ョ ン リ ス ト を終了 さ せたいキ ャ ラ ク タ 。 デ フ ォ ル ト : U+003F (>) fixedtextformat (論理値。 Unicode 非対応言語バイ ンデ ィ ン グでのみ意味を持ち、 stringformat=utf8 の場合には 強制的に true と な り ます。 こ のオプ シ ョ ンは、 イ ン ラ イ ン オプ シ ョ ン リ ス ト では意味を持たず、 optlist 引数でのみ使え ます) true にする と 、 部分テキス ト も イ ン ラ イ ン オプ シ ョ ン リ ス ト も、 すべて同 じ textformat を使います。 これは、 utf8 ・ utf16 ・ utf16be ・ utf16le の う ちのいずれか にする必要があ り ます。 これは、 テキス ト と イ ン ラ イ ンオプ シ ョ ンの取得元が同 じ と き に有用で す。 false にする と 、 テキス ト 本体で使われている形式にかかわら ず、 イ ン ラ イ ン オプ シ ョ ン リ ス ト は、 区切 り キ ャ ラ ク タ を含め、 textformat=bytes で エ ン コ ー ド さ れていなければな り ません。 こ れを使 う と 、 た と えば UTF-16 のテキス ト と 、 ASCII エ ン コ ーデ ィ ングのイ ン ラ イ ンオプ シ ョ ン リ ス ト を組み合わせる こ と (テキス ト は Unicode のデー タ ベースか ら取っ て、 イ ン ラ イ ン オプ シ ョ ンはア プ リ ケーシ ョ ンの中で ASCII テキス ト と し て作る場合な ど) が可能です。 デ フ ォ ル ト : false textlen (整数またはキーワー ド 。 Unicode 非対応言語で fixedtextformat=false かつ textformat=utf16xx の部分テキス ト では必須) 次のイ ン ラ イ ンオプ シ ョ ン リ ス ト の前のバイ ト か (Unicode 対応言語 の場合)、 またはキ ャ ラ ク タ の数 (110 ページ 「テキス ト フ ローのイ ン ラ イ ンオプ シ ョ ン リ ス ト 」 参照)。 キ ャ ラ ク タ は、 文字参照が解決 さ れる前に数え られます。 例 : <textlen=8>①<...>。 キーワー ド all を指定する と 、 残 り のテキス ト すべて を意味 し ま す。 デ フ ォ ル ト : 次に begoptlistchar が現れる ま で テキス ト が検索 さ れます。 テキス ト フ ロ ーの イ ン ラ イ ン オ プ シ ョ ン リ ス ト PDF_create_textflow( ) (PDF_add_ textflow( ) では不可) の text 引数で与え る 内容の中には、 テ キ ス ト フ ロ ーオプシ ョ ン を表 5.6 に従っ て指定 し た、 任意の数のオプシ ョ ン リ ス ト ( イ ン ラ イ ンオプシ ョ ン) を入れ る こ と がで き ます。 あ る いは、 こ れ ら のオプシ ョ ンはすべて、 PDF_create_textflow( ) ・ PDF_ add_textflow( ) の optlist 引数の中で与え る こ と も で き ます。 1 つのオプシ ョ ン リ ス ト の中 110 第 5 章 : テキス ト と 表の組版 で同 じ オプシ ョ ン を複数回指定す る こ と も 可能です。 その場合、 最後に指定 し たそのオプ シ ョ ンだけが考慮 さ れます。 イ ン ラ イ ンオプシ ョ ン リ ス ト は、 begoptlistchar と endoptlistchar オプシ ョ ン で指定す る キ ャ ラ ク タ (デフ ォ ル ト では < と >) で囲む必要があ り ます。 当然、 イ ン ラ イ ン オプ シ ョ ン の開始に使っ てい る キ ャ ラ ク タ を、 テ キ ス ト 本体で も 使わな ければな ら ない と き は、 衝突が起 こ り ます。 こ の衝突を解決す る にはい く つかの方法があ り 、 テ キ ス ト に イ ン ラ イ ン オ プ シ ョ ン リ ス ト を 入 れ る か ど う か に よ っ て 方 法 が 決 ま り ま す。 PDF_add_ textflow( ) の場合は先述の と お り 、 テ キ ス ト と オプシ ョ ン を完全に分離 し てい ますので、 衝突は起 こ り ません。 テ キ ス ト に イ ン ラ イ ンオプシ ョ ン を全 く 入れない と き は、以下のいずれかの方法で、イ ン ラ イ ンオプシ ョ ン リ ス ト の検索を完全に無効にす る こ と も で き ます。 > PDF_create_textflow( ) の optlist 引数で begoptlistchar=none を設定。 > PDF_create_textflow( ) の optlist引数で textlen オプシ ョ ンにテ キ ス ト 全体の長 さ を設定。 テ キ ス ト に イ ン ラ イ ンオプシ ョ ン を入れ る と き は、 以下のいずれかの方法を使えば、 テ キ ス ト の内容 と 、 イ ン ラ イ ンオプシ ョ ン を始め る begoptlistchar と の衝突を避け る こ と がで き ます。 > テ キ ス ト 内に現れ る < キ ャ ラ ク タ をすべて、 その数値ま たは文字実体参照 (< か <) で置 き 換えて、 イ ン ラ イ ン オプシ ョ ン リ ス ト を リ テ ラ ルな < キ ャ ラ ク タ で開始。 A<B<fontname=Helvetica encoding=winansi> ただ し こ の方式は、 encoding=builtin に よ る フ ォ ン ト では動作 し ません。 > PDF_create_textflow( ) の optlist 引数か イ ン ラ イ ン オプシ ョ ン リ ス ト で begoptlistchar オ プシ ョ ンに、 テ キ ス ト で使っ ていないキ ャ ラ ク タ を設定 し ($ 等)、 そのキ ャ ラ ク タ を 使っ て イ ン ラ イ ンオプシ ョ ン リ ス ト を開始。 <begoptlistchar=$>A<B$fontname=Helvetica encoding=winansi> > 先行す る イ ン ラ イ ンオプシ ョ ン リ ス ト で textlen オプシ ョ ン を使っ て、 次の部分テ キ ス ト (次の イ ン ラ イ ンオプシ ョ ン リ ス ト の開始ま での) の長 さ を指定。 <textlen=3>A<B<fontname=Helvetica encoding=winansi> > begoptlistchar を エ ス ケープシーケ ン ス と し て指定 し 、 escapesequence グ ロ ーバルオプ シ ョ ン を true に設定。 ただ し 、 エ ス ケープシーケ ン ス は、 endoptlistchar を含んだ イ ン ラ イ ンオプシ ョ ン リ ス ト 内では動作 し ません。 注 イ ン ラ イ ンオプ シ ョ ン リ ス ト の直後にまたオプ シ ョ ン リ ス ト を与え る と 、間に長 さ ゼロの 部分テキス ト をは さ んでい る と 見な さ れます。 1 番目のオプ シ ョ ン リ ス ト で textlen オプ シ ョ ン を与え る と きは これは重要です。 C++ Java C# String fit_textflow(int textflow, double llx, double lly, double urx, double ury, String optlist) Perl PHP string fit_textflow(int textflow, float llx, float lly, float urx, float ury, string optlist) C const char *PDF_fit_textflow(PDF *p, int textflow, double llx, double lly, double urx, double ury, const char *optlist) テ キ ス ト フ ロ ーの次の部分を組版 し ます。 textflow PDF_create_textflow( ) か PDF_add_textflow( ) を呼び出 し て返 さ れた テ キ ス ト フ ロ ーハン ド ル。 5.2 テキス ト フ ローによ る複数行テキス ト 111 llx ・ lly ・ urx ・ ury 対象に し たい長方形 (はめ込み枠) の左下隅 と 右上隅の x ・ y 座標を、 ユーザー座標で指定 し ます。 こ の 2 隅は逆の順に指定する こ と も で き ます。 長方形でない 輪郭へ流 し 込みを行 う には、 wrap オプシ ョ ン を使い ます。 optlist 処理オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ンが使え ます : > 表 5.12 に従っ たテ キ ス ト フ ロ ーオプシ ョ ン : avoidwordsplitting ・ blind ・ createfittext ・ createlastindent ・ exchangefillcolors ・ exchangestrokecolors ・ firstlinedist ・ fitmethod ・ fontscale ・ lastlinedist ・ linespreadlimit ・ maxlines ・ minfontsize ・ orientate ・ returnatmark ・ rewind ・ rotate ・ showborder ・ showtabs ・ stamp ・ truncatetrailingwhitespace ・ verticalalign ・ wrap > 表 6.1 に従っ た範囲枠オプシ ョ ン : matchbox > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag 戻り値 関数か ら 戻っ た原因を示す文字列。 > _stop : テ キ ス ト フ ロ ーの全テ キ ス ト の処理が完了。 テ キ ス ト が空の と き は、 return ま たは mark/returnatmark オプシ ョ ン を与えていて も 、 つねに _stop が返 さ れます。 > _nextpage : 次のページ を待ち (フ ォーム フ ィ ー ド キ ャ ラ ク タ U+000C が原因)。 ま た PDF_fit_textflow( ) を呼び出 し て残 り のテ キ ス ト を処理す る 必要があ り ます。 > _boxfull : はめ込み枠内にテ キ ス ト をい く ら か配置 し て も う ゆ と り がないか、 ま たは最 大行数 (maxlines オプシ ョ ン で指定 し てい る ) をはめ込み枠に配置 し て し ま っ たか、 ま たは fitmethod=auto と minfontsize を指定 し てい る がテ キ ス ト がはめ込み枠に収ま ら なか っ た。 ま た PDF_fit_textflow( ) を呼び出 し て残 り のテ キ ス ト を処理す る 必要があ り ます。 > _boxempty : 処理後、 枠にテ キ ス ト が ま っ た く 入っ ていない。 こ れは、 はめ込み枠の 大 き さ が小 さ すぎ て テ キ ス ト が入 ら ない と き に、 ま たは回 り 込み枠がはめ込み枠 よ り も 大 き い と き に起 き る こ と があ り ます。 無限ループ を避け る ため、 同 じ はめ込み枠を 指定 し て ま た PDF_fit_textflow( ) を呼び出すべき ではあ り ません。 > _mark#:returnatmark オプシ ョ ンが番号 # で指定 さ れてお り 、こ のオプシ ョ ンで指定 さ れた番号のマー ク が配置 さ れた。 > その他の任意文字列: イ ン ラ イ ンオプシ ョ ン リ ス ト で return コ マ ン ド に与え た文字列。 戻っ た理由が同時に複数あ る と き は、 上記の一覧で (上か ら 下へ) 最初の も のが報告 さ れ ます。 返 さ れた文字列は、 次に こ の関数を呼び出すま で有効です。 詳細 カ レ ン ト テ キ ス ト ・ グ ラ フ ィ ッ ク ス テー タ ス は、 こ の関数が作成す る テ キ ス ト 出力では効 力を持ち ません ( こ の点は PDF_fit_textline( ) と 異な り ます)。PDF_create_textflow( ) ・ PDF_ add_textflow( ) でテ キ ス ト の書式を制御す る には、 fillcolor ・ strokecolor な ど のテ キ ス ト 書 式オプシ ョ ン を使い ます (表 5.2 参照)。 こ の関数か ら 返っ た後で、 テ キ ス ト ス テー タ ス は変更 さ れてい ません。 ただ し 、 textx/texty オプシ ョ ンは、 生成 し た テ キ ス ト 出力の末尾 の点へ移動 し ます (blind オプシ ョ ン を true に設定 し ていなければ)。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 112 第 5 章 : テキス ト と 表の組版 表 5.12 PDF_fit_textflow( ) のオプ シ ョ ン オプ シ ョ ン 説明 avoidwordsplitting (論理値) true かつ fitmethod=auto の場合には、 テキス ト フ ローは、 文字サイ ズを下げて単語分 割を避ける こ と によ っ て、 テキス ト をはめ込み枠内へ完全に収めよ う と し ます (adjustmethod 参 照)。 blind (論理値) true にする と 、 出力が生成 さ れず、 し か し 計算はすべて行われ、 組版結果を PDF_info_ textflow( ) で調べる こ と がで き ます。 デ フ ォル ト : false createfittext (論路値) true にする と 、 カ レ ン ト はめ込み枠に配置 さ れた テキス ト が メ モ リ に保存 さ れて、 以 後、 キーワー ド fittext を付けた PDF_info_textflow( ) への呼び出 し によ っ て取得で き る よ う にな り ます。 デ フ ォル ト : true createlastindent (オプ シ ョ ン リ ス ト ) はめ込み枠の末尾行の末尾にい く ら かのアキを と り ます。 また、 範囲枠を生 成 し てそのアキに入れる こ と も で き ます。 こ のアキは、 テキス ト の末尾に、 続きがある こ と を示 す点群や画像や、 続きのテキス ト への リ ン ク な ど を追加する ために有用で し ょ う 。 使え るサブオ プシ ョ ン : rightindent (float ま たはパーセ ン ト 値) はめ込み枠の末尾行の追加右イ ンデン ト を、 ユーザー座標 で、 またははめ込み枠の幅に対するパーセ ン ト 値で指定 し ます。 この値は、 PDF_add/ create_textflow( ) の rightindent オプ シ ョ ンの値に追加 さ れます。 デ フ ォ ル ト : 0 matchbox (表 6.4 に従っ たオプ シ ョ ン リ ス ト ) 末尾行の末尾に範囲枠を生成 し ます。 範囲枠オプ シ ョ ン boxwidth を指定 し ない と きは、 rightindent の値が枠の幅 と し て用い ら れます。 boxwidth=0 にする と 枠は生成 さ れません。 exchangefillcolors (色偶数個の リ ス ト ) リ ス ト 内のそれぞれのペア で、 元の塗 り 色 と 、 置き換え色を指定 し ます。 は め込み枠内で テキス ト フ ローが元の塗 り 色を指定 し ている部分がすべて、 指定 し た置き換え色で 置き換え られます。 こ れは、 色を背景に応 じ て調節する ために有用で し ょ う 。 キ ャ ラ ク タ 「*」 を 元の色 と し て指定する と 、 残 り のすべての色が置き換え色で置き換え られます。 例 : exchangefillcolors={{gray 0} white Orchid DeepPink {rgb 1 0 1} MediumBlue} exchangestrokecolors (色偶数個の リ ス ト ) リ ス ト 内のそれぞれのペア で、 元の描線色 と 、 置き換え色を指定 し ます。 は め込み枠内で テキス ト フ ローが元の描線色を指定 し ている部分がすべて、 指定 し た置き換え色で 置き換え られます。 こ れは、 色を背景に応 じ て調節する ために有用で し ょ う 。 キ ャ ラ ク タ 「*」 を 元の色 と し て指定する と 、 残 り のすべての色が置き換え色で置き換え られます。 firstlinedist1 (float ・ パーセ ン ト 値 ・ キーワー ド のいずれか) はめ込み枠上端 と テキス ト 先頭行ベース ラ イ ンの 間隔を、 ユーザー座標で、 または関連文字サイ ズ (fixedleading=true に し ている と きは行の先頭 の文字サイ ズ、 そ う でなければ行内のすべての文字サイ ズの う ちの最大値) に対するパーセ ン ト 値で、 あ るいはキーワー ド で指定 し ます (デ フ ォ ル ト : leading) : leading 先頭行で決定 さ れた行送 り 値。 ヒ等の、 読み分け記号つ きの代表的なキ ャ ラ ク タ がはめ 込み枠上端に接 し ます。 ascender 先頭行で決定 さ れたアセ ン ダ値。 d や h 等の、 大き なア セ ン ダ を持つ代表的なキ ャ ラ ク タ がはめ込み枠上端に接 し ます。 capheight 先頭行で決定 さ れたキ ャ ッ プハイ ト 値。 H 等の、 代表的な大文字がはめ込み枠上端に接 し ます。 xheight 先頭行で決定 さ れた x ハイ ト 値。 x 等の、 代表的な小文字がはめ込み枠上端に接 し ま す。 fixedleading=false に し ている と きは、 先頭行の中で見出 さ れたすべての leading ・ ascender ・ xheight ・ capheight 値の う ちの最大値が使われます。 5.2 テキス ト フ ローによ る複数行テキス ト 113 表 5.12 PDF_fit_textflow( ) のオプ シ ョ ン オプ シ ョ ン 説明 fitmethod (キーワー ド ) テキス ト をはめ込み枠内にはめ込むのに使いたい方式を指定 し ます (デ フ ォ ル ト : clip) : auto テキス ト がはめ込み枠に収ま る ま で、 文字サイ ズを下げた り 、 その他のフ ォ ン ト 関連の オプ シ ョ ン群を変えた り し ながら (fontscale 参照)、 PDF_fit_textflow( ) を ブ ラ イ ン ド モー ド で繰 り 返 し 呼び出 し ます (ただ し minfontsize オプ シ ョ ン も参照)。 clip テキス ト をはめ込み枠の下端で切 り 落 と し ます。 nofit テキス ト を、 はめ込み枠の下端か ら (verticalalign=top の場合)、 またははめ込み枠 の上端か ら (verticalalign=bottom の場合)、 またははめ込み枠の下端を上端か ら (verticalalign=center の場合)、 はみ出 さ せる こ と も あ り ます。 fontscale (正の float またはパーセ ン ト 値) fontsize の値 と 、 leading ・ minspacing ・ maxspacing ・ spreadlimit ・ space の絶対値 (パーセ ン ト 値は無視) に、 与え る倍率またはパーセ ン ト 値を掛け 算 し ます。 デ フ ォル ト : rewind=0 に し ている と きは 1、 それ以外に し ている と きはその PDF_fit_ textflow( ) への呼び出 し で与えていた値。 gstate (グ ラ フ ィ ッ ク ス テー タ スハン ド ル) PDF_create_gstate( ) で取得 し たグ ラ フ ィ ッ ク ス テー タ スのハ ン ド ル。 このグ ラ フ ィ ッ ク ス テー タ スが、 この関数で配置 さ れるすべてのテキス ト に対 し て効力 を持ち ます。 別のグ ラ フ ィ ッ ク ス テー タ ス をすでに PDF_add/create_textflow( ) に与え ていた と き は、 両方のグ ラ フ ィ ッ ク ス テー タ スがマージ さ れます。 デ フ ォル ト : グ ラ フ ィ ッ ク ス テー タ スな し (すなわち、 カ レ ン ト 設定が用い られます) lastlinedist1 (float ・ パーセ ン ト 値 ・ キーワー ド のいずれか。 fitmethod=nofit に し ている と きは無視 さ れます) テキス ト 最終行ベース ラ イ ン と はめ込み枠下端の間隔を、 ユーザー座標で、 ま たは文字サイ ズ (fixedleading=true に し ている と きは行の先頭の文字サイ ズ、 そ う でなければ行内のすべての文 サイ ズの う ちの最大値) に対するパーセ ン ト 値で、 あ るいはキーワー ド で指定 し ます。 デ フ ォ ル ト : 0、 すなわちはめ込み枠下端をベース ラ イ ン と し て使い、 代表的なデ ィ セ ン ダがはめ込み枠の 下に出ます。 使え るキーワー ド : descender 最終行で決定 さ れたデ ィ セ ン ダ値。 g や j 等の、 デ ィ セ ン ダ を持つ代表的なキ ャ ラ ク タ がはめ込み枠下端に接 し ます。 fixedleading=false に し ている と きは、 最終行の中で 見出 さ れたすべての descender 値の う ちの最大値が使われます。 linespreadlimit (float またはパーセ ン ト 値。 verticalalign=justify に し ている と きのみ) 縦揃え で行送 り を増や せる最大値を、 ユーザー座標で、 または行送 り に対するパーセ ン ト 値で指定 し ます。 デ フ ォ ル ト : 200% maxlines (整数ま たはキーワー ド ) はめ込み枠内の最大行数か、 または、 で き る だけ多 く の行をはめ込み枠 内に配置 さ せたい と きはキーワー ド auto を指定 し ます。 最大行数を配置 し た と きは、 PDF_fit_ textflow( ) は文字列 _boxfull を返 し ます。 デ フ ォ ル ト : auto minfontsize (float またはパーセ ン ト 値) 特に fitmethod=auto に し ている と き に、 テキス ト を縮小 し てはめ込 み枠に収める と きの、 許容で き る最小文字サイ ズ。 こ の制限値は、 ユーザー座標系か、 またはは め込み枠の高 さ に対するパーセ ン ト 値で指定 し ます。 制限を超えて も テキス ト が枠に収ま り き ら ない と きは、 文字列 _boxfull が返 さ れます。 デ フ ォ ル ト : 0.1% mingapwidth (float またはパーセ ン ト 値) 複数の輪郭の間に (例 : 複数の回 り 込み輪郭の間に) テキス ト をはめ 込むための最小横幅を、 ユーザー座標で、 ま たは文字サイ ズに対するパーセ ン ト 値で指定 し ます。 こ れは、 複数の回 り 込み輪郭の間に狭い隙間 し かない場合に組版結果が醜 く な ら ないよ う にする ために有用で し ょ う 。 デ フ ォ ル ト : 10% orientate (キーワー ド ) テキス ト を配置する時に向けたい向き を指定 し ます (デ フ ォル ト : north) : 114 north 直立 east 右倒 し south 上下逆 さ ま west 左倒 し 第 5 章 : テキス ト と 表の組版 表 5.12 PDF_fit_textflow( ) のオプ シ ョ ン オプ シ ョ ン 説明 returnatmark (整数) 指定する番号で定義 さ れた mark オプ シ ョ ンのあ る テキス ト 位置で、 PDF_fit_textflow( ) は不 完全な ま ま返 り ます。 戻 り 理由文字列は _mark# と な り ます。 こ こ で # は こ のオプ シ ョ ン で指定 し た番号です。 rewind (-2 ・ -1 ・ 0 ・ 1 のいずれかの整数) 与え る テキス ト フ ローの状態を、 同 じ テキス ト フ ローハン ド ル を指定 し て PDF_fit_textflow( ) を呼び出 し たいずれかの時の前の状態に リ セ ッ ト し ます (デ フ ォル ト : 0) : 1 PDF_fit_textflow( ) を最初に呼び出 し た時の前の状態へ巻き戻 し 。 0 テキス ト フ ローを リ セ ッ ト し ません。 -1 PDF_fit_textflow( ) を最後に呼び出 し た時の前の状態へ巻き戻 し 。 -2 PDF_fit_textflow( ) を最後か ら 2 番目に呼び出 し た時の前の状態へ巻き戻 し 。 rotate (float) はめ込み枠の左下隅を中心に、 指定する値を度単位の回転角 と し て、 座標系を回転 さ せま す。 結果 と し て、 はめ込み枠 と テキス ト が回転 し ます。 テキス ト の配置が完了 し た時点で回転は リ セ ッ ト さ れます。 デ フ ォル ト : 0 showborder (論理値) true にする と 、 はめ込み枠の辺が描線 さ れます (カ レ ン ト グ ラ フ ィ ッ ク ス テー タ ス を 使 っ て)。 こ れは開発やデバ ッ グに便利で し ょ う 。 デ フ ォ ル ト : false showtabs (キーワー ド ) デバ ッ グの補助のために、 タ ブ位置 と 左イ ンデン ト を縦線で視覚表示 し ます。 線 は、 PDF_fit_textflow( ) を呼び出す前に有効だ っ たグ ラ フ ィ ッ ク ス テー タ スに従 っ て描かれます (デ フ ォ ル ト : none) : none 線を描き ません fitbox 線をはめ込み枠の高 さ い っぱいに描き ます validarea 線を それが有効な縦領域にだけ描き ます stamp truncatetrailingwhitespace (キーワー ド ) このオプ シ ョ ン を使 う と 、 範囲枠内に対角線上のス タ ン プ を生成する こ と がで き ま す。 ス タ ン プ テキス ト の改行は明示的に指定する必要があ り ます (すなわち、 ニ ュ ー ラ イ ンキ ャ ラ ク タ かニ ュ ー ラ イ ンオプ シ ョ ン を用いて)。 テキス ト の中に明示的な改行が全 く ない と きは、 1 行のス タ ン プが生成 さ れます。 生成 さ れる ス タ ン プ テキス ト は可能な限 り 大き く さ れますが、 し か し 指定 し た文字サイ ズよ り は大き く な り ません。 使え るキーワー ド (デ フ ォル ト : none) : ll2ur ス タ ン プが左下隅から 右上隅への対角線上に配置 さ れます。 ul2lr ス タ ン プが左上隅から 右下隅への対角線上に配置 さ れます。 none ス タ ン プは生成 さ れません。 (論理値) 末尾空白のみを内容 と するはめ込み枠、 すなわち、 はめ込み枠が空白で始ま り 、 かつテ キス ト フ ローの末尾ま で空白 し かない場合の処理を制御 し ます。 こ のオプ シ ョ ンが true の場合、 末尾空白は除去 さ れ、 すなわち、 そのはめ込み枠は空 と し て扱われ、 その戻 り 値は _stop と な り ます。 こ のオプ シ ョ ンが false の場合、 こ の空白は通常のテキス ト と 同様に処理 さ れ、 すなわち、 こ の関数は _stop 以外の値 (末尾空白の量に依存) を返 し 、 PDF_info_textflow( ) の textendx/y や その他のキーワー ド は こ の空白を考慮に入れます。 truncatetrailingwhitespace=false は、 オ リ ジナルのテキス ト を空白除去な し に処理する必要があ る場合に有用で し ょ う 。 デ フ ォル ト : true 5.2 テキス ト フ ローによ る複数行テキス ト 115 表 5.12 PDF_fit_textflow( ) のオプ シ ョ ン オプ シ ョ ン 説明 verticalalign1 (キーワー ド ) はめ込み枠内のテキス ト の縦揃え。 firstlinedist ・ lastlinedist オプ シ ョ ン を適 切に考慮 さ れます (デ フ ォ ル ト : top) : wrap top 組版を先頭行か ら始めて、 下へ進行。 テキス ト がはめ込み枠を満た さ ない と きは、 テキ ス ト の下に空白がで き ます。 center テキス ト をはめ込み枠の縦中央に置き ます。 テキス ト がはめ込み枠を満た さ ない と き は、 テキス ト の上 と 下の両方に空白がで き ます。 bottom 組版を最終行か ら始め、 上へ進行。 テキス ト がはめ込み枠を満た さ ない と きは、 テキス ト の上に空白がで き ます。 justify テキス ト をはめ込み枠の上端 と 下端に整列 さ せます。 そのために行送 り を、 linespreadlimit で指定 し ている制限内で増や し ます。 先頭行の高 さ は、 firstlinedist=leading に し ている と き だけ増や し ます。 (表 5.13 に従っ たオプ シ ョ ン リ ス ト ) テキス ト が、 表 5.13 に示すサブオプ シ ョ ン群で指定する輪 郭を回 り 込みます。 こ れを使 う と 、 テキス ト フ ローの中にグ ラ フ ィ ッ ク を配置 し て、 テキス ト を その回 り に回 り 込ませた り 、 あ るいは任意の輪郭の中へテキス ト を流 し 込んだ り する こ と がで き ます。 はめ込み枠への流 し 込みは、 fillrule オプ シ ョ ンに従 っ て行われ、 はめ込み枠の辺か ら開 始 さ れます。 デ フ ォ ル ト では、 指定する領域に一切テキス ト が入 り ません (領域ど う し が重な り 合 う 場合を除 き)。 すなわち、 テキス ト は輪郭を回 り 込みます。 addfitbox ・ inversefill オプ シ ョ ン を使 う と 、 こ れ と 逆の効果が得 られます : すなわち、 指定する領域へテキス ト が流 し 込まれ、 その外側の、 はめ込み枠 と 輪郭の間の領域は空のま まにな り ます。 こ れを利用すれば、 任意の輪郭 (llx/lly/ urx/ury 引数で与え る長方形にかぎ ら ず) へテキス ト を流 し 込む こ と がで き ます。 絶対座標値 と 相対座標値はユーザー座標系で解釈 さ れます。 相対座標は、 直前の絶対座標に追加 さ れます。 最大 256 個の値を相対値 と し て与え る こ と がで き ます。 パーセ ン ト 値は、 はめ込み枠 座標系で、 すなわちはめ込み枠の左下隅を (0, 0)、 右上隅を (100, 100) と し て解釈 さ れます (上か ら下への座標系において も )。 最大 256 個の値をパーセ ン ト 値 と し て与え る こ と がで き ます。 例 : 枠を相対座標で除外 : wrap={ boxes={{120r 340r 50r 60r}} } (wrap={ boxes={{120 340 170 400}} } と 同等) はめ込み枠の右上 4 分の 1 部分を除外 : wrap={ boxes={50% 50% 100% 100%} } 三角形の輪郭へ流 し 込み : wrap={ addfitbox polygons={{50% 80% 30% 40% 70% 40% 50% 80%}} } image1 と い う 範囲枠をつけた画像の領域を回 り 込み : wrap={ usematchboxes={{ image1 }}} 1. firstlinedist ・ lastlinedist ・ verticalalign オ プ シ ョ ンは、 た と え回 り 込み要素が存在 し ていて も 、 つねにはめ込み枠か ら の指定にな り ます。 すなわち テキス ト フ ローは、 テキス ト と はめ込み枠の辺 と の距離を、 お よび verticalalign オ プ シ ョ ン に従 っ て テキス ト 枠の位置を決定す る にあた り 、 回 り 込み要素群の境界枠を用い ません。 こ の こ と は と り わけ、 反転流 し 込 み、 すなわち回 り 込み要素群にテキス ト を流 し 込む場合に重要にな り ます。 こ のせいで、 と く に回 り 込み要素の外辺がはめ込 み枠に接 し ていない場合には、 結果が思い通 り にな ら ないか も し れません。 こ の影響は、 はめ込み枠に接する よ う な回 り 込み 要素を与え る こ と でほぼ完全に避ける こ と がで き ます。 表 5.13 PDF_fit_textflow( ) の wrap オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 addfitbox (論理値) はめ込み枠が回 り 込み領域に追加 さ れます。 結果 と し て、 他の回 り 込みオプ シ ョ ン群 で指定する輪郭について、 テキス ト がその輪郭を回 り 込むのではな く 、 輪郭へテキス ト が流 し 込 まれます。 デ フ ォ ル ト : false beziers (ベジ エ曲線 2 個以上の リ ス ト ) 回 り 込み領域に追加 し たいベジ エ曲線群。 boxes (長方形の リ ス ト ) 回 り 込み領域に追加 し たい 1 個ない し 複数の長方形。 circles (円の リ ス ト ) 回 り 込み領域に追加 し たい 1 個ない し 複数の円。 116 第 5 章 : テキス ト と 表の組版 表 5.13 PDF_fit_textflow( ) の wrap オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 creatematchboxes (オプ シ ョ ン リ ス ト の リ ス ト ) boxes オプ シ ョ ン内の長方形 1 個ない し 複数か ら範囲枠を生成 し ま す。 それぞれのオプ シ ョ ン リ ス ト が、 boxes オプ シ ョ ン内の項目 1 個に対応 し (順序は意味を持 ち ます)、 範囲枠 1 個の生成を制御 し ます。 表 6.4 のすべての関連する範囲枠オプ シ ョ ンが使え ま す。 サブオプ シ ョ ン リ ス ト は空にする こ と も で き、 その場合は、 照応する回 り こみ枠に対する範 囲枠は生成 さ れません。 fillrule (キーワー ド ) 重な り 合 う 回 り 込み輪郭の内側を決定する ための方式を指定 し ます (デ フ ォル ト : evenodd)。 詳 し く は表 7.1 を参照 : evenodd 偶奇規則を用います。 winding 非ゼロ巻数規則を用います。 重な り 合 う 円の内側を処理 し たい と き (すなわち、 「 ド ー ナツの穴」 を避ける) や、 重な り 合 う 輪郭の和 (共通部でな く ) を処理 し たい と きは、 こ の規則を用います。 inversefill (論理値) true にする と 、 回 り 込み輪郭の処理は、 テキス ト 行 と はめ込み枠内の回 り 込み要素の 辺 と の最初の共通部か ら始ま り ます。 false にする と 、 処理ははめ込み枠の辺か ら始ま り ます。 fillrule=evenodd の場合、 inversefill=true オプ シ ョ ンは addfitbox=true と 同 じ 効果を持ち ま す。 fillrule=winding の場合、 addfitbox=true オプ シ ョ ン な らばはめ込み枠は空か満た さ れる かのど ち ら かにな り ます (それぞれ inversefill=false ・ true の と き)。 lineheight (要素 2 個の リ ス ト 。 各要素は正の float かキーワー ド ) 回 り 込み要素 と の交わ り を算出する ため に使われる、 テキス ト 行の縦範囲を定義 し ます。 テキス ト のベース ラ イ ンの上方 と 下方の範囲に ついて、 キーワー ド 2 個か float 2 個を指定する こ と がで き ます。 使え るキーワー ド : none (範囲な し ) ・ xheight ・ descender ・ capheight ・ ascender ・ fontsize ・ leading ・ textrise デ フ ォル ト : {ascender descender} usematchboxes (文字列の リ ス ト の リ ス ト ) それぞれの リ ス ト の 1 番目の要素は、 範囲枠を指定する名前文字列 です。 2 番目の要素は、 示 し たい長方形の番号を指定する整数か、 または選んでいる範囲枠を参 照 し ているすべての長方形を指定 し たい と きはキーワー ド all も 使え ます。 2 番目の要素を指定 し ない と 、 デ フ ォ ル ト と し て all と 見な さ れます。 それぞれの長方形の外接枠が、 テキス ト の回 り 込みのための輪郭 と し て使われます。 offset (float ま たはパーセ ン ト 値) テキス ト と 回 り 込み領域の輪郭 と の横間隔を、 ユーザー座標で、 ま たははめ込み枠の幅に対するパーセ ン ト 値で指定 し ます。 こ れを使 う と 、 回 り 込み領域を横へ拡 げる こ と がで き ます。 デ フ ォ ル ト : 0 paths (オプ シ ョ ン リ ス ト の リ ス ト ) 回 り 込み領域に追加 し たい 1 個ない し 複数のパス。 使え るサブオ プシ ョ ン : path (パスハン ド ル。 必須) 回 り 込み領域に追加 し たいパスのハン ド ル。 refpoint (float 2 個かパーセ ン ト 値 2 個の リ ス ト ) パスに対する参照点の座標を、 ユーザー座標 で、 またははめ込み枠の幅 と 高 さ に対するパーセ ン ト 値で指定 し ます。 デ フ ォ ル ト : {0 0} PDF_draw_path( ) の以下のオプ シ ョ ン (表 6.1 ・ 表 7.7 参照) も 使え ます : align ・ attachmentpoint ・ boxsize ・ close ・ fitmethod ・ orientate ・ position ・ round ・ scale ・ subpaths polygons (折れ線の リ ス ト ) 回 り 込み領域に追加 し たい 1 個ない し 複数の折れ線。 閉 じ ていな く て もかま いません)。 5.2 テキス ト フ ローによ る複数行テキス ト 117 C++ Java C# double info_textflow(int textflow, String keyword) Perl PHP float info_textflow(int textflow, string keyword) C double PDF_info_textflow(PDF *p, int textflow, const char *keyword) テ キ ス ト フ ロ ーの、 PDF_fit_textflow( ) を呼び出 し た後のカ レ ン ト ス テー タ ス を取得 し ま す。 textflow PDF_add/create_textflow( ) か PDF_fill_textblock( ) で textflowhandle オプシ ョ ン を指定 し て呼び出 し て返 さ れたテ キ ス ト フ ロ ーハン ド ル。 keyword ほ し い情報を表 5.14 に従っ て指定 し た キーワー ド 。 戻り値 keyword で要求 し た何 ら かのテ キ ス ト フ ロ ー特性の値。 こ の関数は、 ブ ラ イ ン ド モー ド で も 正 し い位置情報を返 し ます (textx/texty オプシ ョ ン と は異な り )。 要求 さ れた キーワー ド がテ キ ス ト を生み出す場合には、 文字列番号が返 さ れ、 その照応す る 文字列を、 PDF_ get_string( ) を用いて取得す る 必要があ り ます。 スコープ オブ ジ ェ ク ト 以外の任意 表 5.14 PDF_info_textflow( ) のキーワー ド キーワー ド 説明 boundingbox テキス ト フ ローの外接枠をユーザー座標で表 し た も のを内容 と し て持つパスのハン ド ル、 または -1 (PHP では 0)。 firstlinedist と lastlinedist が考慮 さ れます。 boxlinecount 最後のはめ込み枠の中の行数 firstparalinecount はめ込み枠の最初の段落の行数 firstlinedist テキス ト の先頭ベース ラ イ ン と 、 上方の空想のベース ラ イ ン (verticalalign=top な ら こ れがはめ込み枠の上端にな る) の間隔 fittext PDF_fit_textflow( ) への直前の呼び出 し で配置 さ れたテキス ト に対する文字列番号。 こ れを 利用する と 、 はめ込み枠内に配置する こ と がで き たテキス ト の量を知る こ と がで き ます。 文字列は以下のよ う に正規化 さ れます : エ ン コ ーデ ィ ングは、 Unicode 対応言語では UTF16 にな り 、 それ以外では (EBCDIC-) UTF-8 にな り 、 改行は U+000A でマー ク さ れ、 水平 タ ブはスペースキ ャ ラ ク タ U+0020 で置き換え られます。 fontscale PDF_fit_textflow( ) を fitmethod=auto で も っ と も最近に呼び出 し た後の fontscale の値 lastfont はめ込み枠の末尾テキス ト 行の中で使われている フ ォ ン ト のハン ド ル lastfontsize はめ込み枠の末尾テキス ト 行の中で使われている文字サイ ズ lastmark 最後のはめ込み枠の中にある テキス ト フ ローの処理済みの部分で見つか っ た最後のマー ク の番号 (マー クは mark オプ シ ョ ン で設定する こ と がで き ます) lastlinedist テキス ト の最終ベース ラ イ ン と 、 行送 り の変更がなかっ た と し た と きの下方の空想のベー ス ラ イ ン (verticalalign=bottom な ら こ れがはめ込み枠の下端にな る) の間隔 lastparalinecount はめ込み枠の最後の段落の行数 leading テキス ト フ ローの中のテキス ト と オプ シ ョ ン によ っ て決定 さ れる、 leading オプ シ ョ ンの カレン ト値 leftlinex1 ・ leftliney1 も っ と も最近に流 し 込みが行われたはめ込み枠の中の、 も っ と も 左で始ま る行の x ・ y 座標 を、 カ レ ン ト ユーザー座標系で表 し た もの maxlinelength も っ と も最近に流 し 込みが行われたはめ込み枠の中の、 も っ と も 長いテキス ト 行の長 さ 118 第 5 章 : テキス ト と 表の組版 表 5.14 PDF_info_textflow( ) のキーワー ド キーワー ド 説明 maxliney1 も っ と も最近に流 し 込みが行われたはめ込み枠の中の、 も っ と も長いテキス ト 行のベース ラ イ ンの y 座標を、 カ レ ン ト ユーザー座標系で表 し た もの minlinelength も っ と も最近に流 し 込みが行われたはめ込み枠の中の、 も っ と も短いテキス ト 行の長 さ minliney 1 も っ と も最近に流 し 込みが行われたはめ込み枠の中の、 も っ と も短いテキス ト 行のベース ラ イ ンの y 座標を、 カ レ ン ト ユーザー座標系で表 し た もの returnreason も っ と も最近の PDF_fit_textflow( ) への直接または間接の呼び出 し の戻 り 原因に対する文字 列番号 (表 2.3 参照)。 取得 さ れる戻 り 原因は、 PDF_fit_textflow( ) が返す文字列のいずれか と 同 じ にな り ます。 こ れは、 PDF_fill_textblock( ) が内部的に行 う 間接的な テキス ト フ ロー呼 び出 し の結果を取得 し たい と き に有用です。 rightlinex1 ・ rightliney1 も っ と も最近に流 し 込みが行われたはめ込み枠の中の、 も っ と も右で終わる行の x ・ y 座標 を、 カ レ ン ト ユーザー座標系で表 し た も の split 最後のはめ込み枠の中で単語の分割が起き たかど う かを示 し ます。 0 単語を分割する必要はなか っ た。 1 少な く と も 1 個の単語を分割する必要があ っ た。 textendx ・ textendy も っ と も最近にはめ込み枠へ流 し 込みが行われた後の、 カ レ ン ト テキス ト 位置の x ・ y 座標 を、 カ レ ン ト ユーザー座標系で表 し た も の textheight テキス ト 全体の外接枠の高 さ を (firstlinedist と lastlinedist を考慮 し て)、 カ レ ン ト ユーザー座標系で表 し た も の textwidth テキス ト 全体の外接枠の幅を、 カ レ ン ト ユーザー座標系で表 し た も の used 現時点で配置済みのテキス ト の割合を、 パーセ ン ト 値で表 し た もの (0 ~ 100) x1 ・ y1 ・ …x4 ・ y4 テキス ト 全体の外接枠の座標を カ レ ン ト ユーザー座標系で表 し た も の。 firstlinedist と lastlinedist が考慮 さ れます。 1. rotate が 0 以外の と きは、 こ の値は回転後の系を参照 し ます。 C++ Java C# void delete_textflow(int textflow) Perl PHP delete_textflow(int textflow) C void PDF_delete_textflow(PDF *p, int textflow) テ キ ス ト フ ロ ー と 、 関連す る すべてのデー タ 構造を削除 し ます。 textflow PDF_create_textflow( ) か PDF_add_textflow( ) を呼び出 し て返 さ れた テ キ ス ト フ ロ ーハン ド ル。 詳細 こ の関数で削除 し ていないテ キ ス ト フ ロ ーは、カ レ ン ト の文書ス コ ープ を終え る 時に自動 的 に 削除 さ れ ま す。 し か し 、 多 く の テ キ ス ト フ ロ ー を 生 成す る と き は、 PDF_delete_ textflow( ) を呼び出 さ ない と 、 アプ リ ケーシ ョ ンはかな り 遅 く な り ます。 スコープ 任意 5.2 テキス ト フ ローによ る複数行テキス ト 119 5.3 表の組版 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルがク ッ ク ブ ッ ク の tables/starter_table ト ピ ッ ク にあ り ます。 C++ int add_table_cell(int table, int column, int row, string text, string optlist) Perl PHP int add_table_cell(int table, int column, int row, string text, string optlist) C int PDF_add_table_cell(PDF *p, int table, int column, int row, const char *text, int len, const char *optlist) 新規ま たは既存の表にセルを追加 し ます。 table 以前に PDF_add_table_cell( ) を呼び出 し て取得 し た有効な表ハン ド ルか、 ま たは新 規表を開始 し たい と き は -1 (PHP では 0)。 こ の表ハン ド ルは、 ま だ PDF_fit_table( ) への 呼び出 し では使っ ていない も のでなければな り ません。 すなわち、 表の内容はすべて、 表 をページに配置す る 前に定義す る 必要があ り ます。 column ・ row セルを入れたい列 と 行の番号。 セルが複数の列 ・ 行にわた る と き は、 いち ばん左の列 と いちばん上の行を与え る 必要があ り ます。 最初の列 ・ 行の番号は 1 です。 text (内容文字列) セルに入れたいテ キ ス ト 。 text を空以外にす る と 、 PDF_fit_textline( ) を使っ てセル内に書 き 込まれます。 len (C 言語バ イ ンデ ィ ン グのみ) text の長 さ (バ イ ト 単位)。 len=0 にす る と null 終了文 字列を与え る 必要があ り ます。 optlist 表セルの組版の詳細を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 5.15 に従っ た表列 ・ 表行定義オプシ ョ ン : colwidth ・ colscalegroup ・ minrowheight ・ return ・ rowheight ・ rowjoingroup ・ rowscalegroup > 表 5.15 に従っ たセル特性オプシ ョ ン : avoidwordsplitting・colspan・margin・marginleft・marginbottom・marginright・margintop・ rowspan > 表 5.15 に従っ たセル内容組版オプシ ョ ン : continuetextflow ・ repeatcontent > 表 5.16 に従っ た静的セル内容 : fitgraphics ・ fitimage ・ fitpath ・ fitpdipage ・ fittextflow ・ fittextline ・ graphics ・ image ・ matchbox ・ path ・ pdipage ・ textflow > 表 5.17 に従っ た イ ン タ ラ ク テ ィ ブセル内容 (ページ ス コ ープでのみ可) : annotationtype ・ fieldname ・ fieldtype ・ fitannotation ・ fitfield > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン : tag 戻り値 表ハン ド ル。 以後の表関連の呼び出 し で使え ます。 errorpolicy=return の場合、 戻 り 値 -1 (PHP では 0) はエ ラ ーを表すので、 そ う でないか を呼び出 し 側で調べ る 必要があ り ます。 エ ラ ーが起 き た と き は、 最後のセル定義だけが破棄 さ れます。 表には内容は追加 さ れませ んが、 表ハン ド ルは有効な ま ま です。 返 さ れた表ハン ド ルは、 複数の PDF 出力文書にわ た っ て再利用す る こ と はで き ません。 詳細 表セルには、 画像 ・ グ ラ フ ィ ッ ク ・ 取 り 込み PDF ページ ・ パ ス オブジ ェ ク ト ・ フ ォーム フ ィ ール ド ・ 注釈 ・ テ キ ス ト フ ロ ー ・ テ キ ス ト 行を入れ る こ と がで き ます。 1 つのセルに 対 し て、 複数の内容種別を、 1 回の関数呼び出 し で指定す る こ と も で き ます。 表の組版アルゴ リ ズ ム と 、 幅 ・ 高 さ 計算の解説は PDFlib チ ュ ー ト リ アルを参照。 120 第 5 章 : テキス ト と 表の組版 PDF/UA path か image オプシ ョ ン を用いて与え ら れたベ ク ト ルグ ラ フ ィ ッ ク と ラ ス タ 画像は、 tag オプシ ョ ン を用いて Artifact か Figure と し て タ グ付けす る 必要があ り ます。 スコープ オブ ジ ェ ク ト 以外の任意 表 5.15 PDF_add_table_cell( ) の組版オプ シ ョ ン オプ シ ョ ン 説明 avoidwordsplitting (論理値。 テキス ト フ ローセルに対 し てのみ意味を持ち ます) true の場合、 表組版機能が、 そのテ キス ト フ ローが、 そのテキス ト を その表セル内へはめ込む際に、 少な く と も 1 つの強制的な単語 分割を必要 と するかど う かを チ ェ ッ ク し ます。 も し そ う であれば、 そのセル幅を拡げて、 単語分 割を避けよ う と し ます。 デ フ ォル ト : true checkwordsplitting 非推奨。 avoidwordsplitting を使用 し て く だ さ い colscalegroup1 (文字列) 列を追加 し たい列グループの名前。 長いテキス ト を ま る ご と 収める ために、 グループの 1 つの列を拡げる必要がある と きは、 そのグループのすべての列が統一的に拡大 さ れます。 セルが 複数の列にわた る と きは、 それら の列は自動的に伸縮グループ を形成 し ます。 colspan (整数) セルがわた る列の数。 デ フ ォ ル ト : 1 1 colwidth (float またはパーセ ン ト 値) column 引数で指定 し ている列の幅。 こ の幅は、 ユーザー座標で 2、 ま たは表の最初のはめ込み枠 (PDF_fit_table( ) 参照) の幅に対するパーセ ン ト 値で指定する こ と がで き ます。 ユーザー座標 と パーセ ン ト 値を混在 さ せてはいけません。 すなわち、 1 つの表では、 すべ ての列幅定義に、 ユーザー座標かパーセ ン ト 値のど ち らかを使 う 必要があ り ます。 テキス ト を内 容 と する セル群にわた る列の場合には、 その列幅は自動的に増や さ れる こ と があ り ます。 表セル 内に画像 ・ グ ラ フ ィ ッ ク ・ PDF ページがあ っ て も 列幅には一切影響を与え ません。 デ フ ォ ル ト : PDF_fit_table( ) のオプ シ ョ ン colwidthdefault を参照 continuetextflow (論理値。 テキス ト フ ローに対 し てのみ意味を持ち ます) true にする と 、 textflow オプ シ ョ ン で 指定 し たテキス ト フ ローの内容を、 も し それ と 同 じ テキス ト フ ローハン ド ルで別のセルへの流 し 込みを行い、 かつそのセルで も continuetextflow=true にする な ら ば、 その別のセルへ続け さ せ る こ と がで き ます。 テキス ト フ ローの各部分は、 セルが追加 さ れた順番に配置 さ れてい き ます。 PDFlib は、 テキス ト フ ロー全体に対する セルサイ ズの調整は行わず、 また、 avoidwordsplitting オプ シ ョ ンは無視 さ れます。 ですので、 適切なセルサイ ズを定義する必要があ り ます。 margin marginleft marginbottom marginright margintop (float またはパーセ ン ト 値) セルの左 ・ 下 ・ 右 ・ 上余白を、 ユーザー座標系か (0 以上にする必要 があ り ます)、 ま たはセルの幅か高 さ に対するパーセ ン ト 値 (100% 未満にする必要があ り ます) で 指定 し ます。 指定する余白は、 セルの内容に対するはめ込み枠 と し てはた ら く セル内枠を定義 し ます。 margin に対するデ フ ォ ル ト : 0。 それ以外のすべてに対するデ フ ォ ル ト : margin minrowheight1 (float またはパーセ ン ト 値) ある表行を 1 つの表イ ン ス タ ン スの中で配置 し きれない と き に、 こ の オプ シ ョ ンは、 行を分割 し ていいか、 そ し て各部分はどれだけ小 さ く で き るかを指定 し ます。 部 分の最小の高 さ を、 ユーザー座標系か、 または表行の高 さ に対するパーセ ン ト 値で指定する こ と がで き ます。 デ フ ォル ト : 100%、 すなわち分割な し 5.3 表の組版 121 表 5.15 PDF_add_table_cell( ) の組版オプ シ ョ ン オプ シ ョ ン 説明 repeatcontent (論理値) セルまたは表行が複数の表イ ン ス タ ン スに分割 さ れた と き に表セルの内容を繰 り 返すか ど う かを指定 し ます。 デ フ ォ ル ト : true セルの分割 : セルが複数表行にわた っ ている場合に、 その末尾表行 (群) がはめ込み枠に収ま ら ない と きは、 そのセルは分割 さ れます。 repeatcontent=true にする と 、 テキス ト フ ロー (繰 り 返 さ れません) の場合を除き、 そのセル内容は次の表イ ン ス タ ン ス内で繰 り 返 さ れます。 そ う でな い と きは繰 り 返 さ れません。 表行の分割 : 末尾本体行がはめ込み枠に収ま ら ない と きは、 通常、 その表行は分割 さ れずに次の 表イ ン ス タ ン スへま る ご と 配置 さ れます。 minrowheight 値を小 さ く する こ と に よ っ て、 末尾本体 行を分割 さ せ、 その表行の内容の う ちのある割合を最初のイ ン ス タ ン スに、 残 り の部分を次のイ ン ス タ ン スに配置 さ せる こ と も で き ます。 repeatcontent=true にする と 、 テキス ト フ ロー (繰 り 返 さ れません) の場合を除き、 そのセル内容は次の表イ ン ス タ ン ス内で繰 り 返 さ れます。 そ う で ない と きは繰 り 返 さ れません。 return1 (文字列) PDF_fit_table( ) は、 指定行を配置 し た後に停止 し 、 指定文字列を返 し ます。 文字列は、 頭にア ン ダース コ アキ ャ ラ ク タ 「_」 をつけてはいけません。 指定行が連動グループに含まれてい る と きは、 それはそのグループの最後の行であ る必要があ り ます。 そ う でなければエ ラ ーが起こ り ます。 rowheight1 (float またはパーセ ン ト 値) row 引数で指定 し ている表行の高 さ 。 こ の高 さ は、 ユーザー座標で 2、 または表の最初のはめ込み枠 (PDF_fit_table( ) 参照) の高 さ に対するパーセ ン ト 値で指定する こ と がで き ます。 ユーザー座標 と パーセ ン ト 値を混在 さ せてはいけません。 すなわち、 1 個の表では、 すべての表行高 さ 定義に、 ユーザー座標かパーセ ン ト 値のど ち らかを使 う 必要があ り ます。 テキ ス ト を内容 と する セル群にわた る表行の場合には、 その表行高 さ は自動的に増や さ れる こ と があ り ます。 表セル内に画像 ・ グ ラ フ ィ ッ ク ・ PDF ページがあ っ て も表行高 さ には一切影響を与え ま せん。 デ フ ォ ル ト : PDF_fit_table( ) のオプ シ ョ ン rowheightdefault を参照 rowscalegroup1 (文字列) 表行を追加 し たい表行グループの名前。 長いテキス ト を ま る ご と 収める ために、 グルー プの 1 個の表行を拡げる必要があ る と きは、 そのグループのすべての表行が統一的に拡大 さ れま す。 セルが複数の表行にわた る と きは、 それら の表行は自動的に伸縮グループ を形成 し ます。 rowjoingroup1 (文字列) 表行を追加 し たい表行グループの名前。 グループの表行はすべて、 1 つの表イ ン ス タ ン スにま と ま り ます。 グループの表行は連続 し ている必要があ り ます。 セルが複数の表行にわた っ ていて も、 それらの表行は自動的には連動グループ を形成 し ません。 rowspan (整数) セルがわた る表行の数。 デ フ ォ ル ト : 1 1. このオ プ シ ョ ンの最後の指定が優先 さ れます。 すなわち、 同 じ 行 ・ 列に対する それ以前の指定は無視 さ れます。 2. よ り 厳密には、 最初の表イ ン ス タ ン ス を配置する ために PDF_fit_table( ) を呼び出 し た時に効いている座標系。 表 5.16 静的セル内容のための、 PDF_add_table_cell( ) のオプ シ ョ ン と 、 PDF_fit_table( ) の caption オプ シ ョ ンのサブ オプ シ ョ ン オプ シ ョ ン 説明 fitgraphics (オプ シ ョ ン リ ス ト 。 グ ラ フ ィ ッ ク でのみ意味を持ち ます) PDF_fit_graphics( ) に対するオプ シ ョ ン リ ス ト 。 このオプ シ ョ ン リ ス ト は、 graphics オプ シ ョ ン を用いて与え ら れたグ ラ フ ィ ッ ク を セル 内に配置する ために適用 さ れます。 そのはめ込み枠の左下隅が参照点 と し て用い られます。 デ フ ォ ル ト : fitmethod=meet position=center。 このオプ シ ョ ン リ ス ト が、 ユーザーが与え るオ プ シ ョ ン群の頭に付加 さ れます。1 fitimage 122 (オプ シ ョ ン リ ス ト 。 画像 と テ ン プ レー ト に対 し てのみ意味を持ち ます) PDF_fit_image( ) に対する オプ シ ョ ン リ ス ト 。 こ のオプ シ ョ ン リ ス ト は、 image オプ シ ョ ン を用いて与え られた画像またはテ ン プ レー ト を セル内に配置する ために適用 さ れます。 そのはめ込み枠の左下隅が参照点 と し て使 われます。 デ フ ォ ル ト : fitmethod=meet position=center。 このオプ シ ョ ン リ ス ト が、 ユーザーが与え るオ プ シ ョ ン群の頭に付加 さ れます。 1 第 5 章 : テキス ト と 表の組版 表 5.16 静的セル内容のための、 PDF_add_table_cell( ) のオプ シ ョ ン と 、 PDF_fit_table( ) の caption オプ シ ョ ンのサブ オプ シ ョ ン オプ シ ョ ン 説明 fitpath (オプ シ ョ ン リ ス ト 。 パスオブ ジ ェ ク ト に対 し てのみ意味を持ち ます) PDF_draw_path( ) に対する オ プ シ ョ ン リ ス ト 。 このオプ シ ョ ン リ ス ト は、 path オプ シ ョ ン を用いて指定 さ れたパスオブ ジ ェ ク ト がその外接枠内に入 っ た も のを セル内に配置する ために適用 さ れます。 そのはめ込み枠の左下 隅が参照点 と し て用い られます。 デ フ ォル ト : fitmethod=meet position=center。 こ のオプ シ ョ ン リ ス ト が、 ユーザーが与え る オ プ シ ョ ン群の頭に付加 さ れます。 1 fitpdipage (オプ シ ョ ン リ ス ト 。 PDI ページに対 し てのみ意味を持ち ます。 PDI が利用可能な場合のみ) PDF_ fit_pdi_page( ) に対するオプ シ ョ ン リ ス ト 。 このオプ シ ョ ン リ ス ト は、 pdipage オプ シ ョ ン を用いて 与え られたページ を セル内に配置する ために適用 さ れます。 そのはめ込み枠の左下隅が参照点 と し て用い られます。 デ フ ォル ト : fitmethod=meet position=center。 こ のオプ シ ョ ン リ ス ト が、 ユーザーが与え る オ プ シ ョ ン群の頭に付加 さ れます。 1 fittextflow (オプ シ ョ ン リ ス ト 。 テキス ト フ ローに対 し てのみ意味を持ち ます) PDF_fit_textflow( ) に対する オ プ シ ョ ン リ ス ト 。 このオプ シ ョ ン リ ス ト は、 textflow オプ シ ョ ン で与え ら れたテキス ト フ ローを セル内に配置する ために適用 さ れます。 そのはめ込み枠がはめ込み枠 と し て用い られます。 デ フ ォル ト : verticalalign=center lastlinedist=descender。 このオプ シ ョ ン リ ス ト が、 ユー ザーが与え る オプ シ ョ ン リ ス ト の頭に付加 さ れます。 fittextline (オプ シ ョ ン リ ス ト 。 テキス ト 行に対 し てのみ意味を持ち ます) PDF_fit_textline( ) に対する オプ シ ョ ン リ ス ト 。 こ のオプ シ ョ ン リ ス ト は、 text 引数を用いて与え ら れた テキス ト を セル内に配置 する ために適用 さ れます。 そのはめ込み枠の左下隅が参照点 と し て使われます。 指定 し ていない オプ シ ョ ンは、 それぞれのデ フ ォ ル ト に置き換え られます。 カ レ ン ト テキス ト ス テー タ スは考慮 さ れません。 デ フ ォル ト : fitmethod=nofit position=center。 こ のオプ シ ョ ン リ ス ト が、 ユーザーが与え る オ プ シ ョ ン群の頭に付加 さ れます。 1 graphics (グ ラ フ ィ ッ クハン ド ル) こ のハン ド ルに紐付け ら れたグ ラ フ ィ ッ クが こ のはめ込み枠内に配置 さ れます。 image (画像ハン ド ル) ハン ド ルに関連づけ られた画像が、 セル内枠の中に配置 さ れます。 matchbox (オプ シ ョ ン リ ス ト ) 範囲枠の詳細を表 6.4 に従 っ て入れたオプ シ ョ ン リ ス ト path (パスハン ド ル) パスオブ ジ ェ ク ト がその外接枠内に入っ た ものが、 fitpath オプ シ ョ ンに従っ て セル内枠内に配置 さ れます。 pdipage (ページハン ド ル) ハン ド ルに関連づけ られた取 り 込み PDF ページが、 セル内枠内に配置 さ れま す。 text (内容文字列) PDF_fit_textline( ) を用いて、 オプ シ ョ ン fittextline に従っ て配置 し たいテキス ト 。 PDF_add_table_cell( ) では、 こ のオプ シ ョ ンの値を関数引数 text を通 じ て与え る こ と も で き ます。 textflow (テキス ト フ ローハン ド ル) ハン ド ルに関連づけ ら れた テキス ト フ ローが、 はめ込み枠内に配置 さ れます。 continuetextflow オプ シ ョ ンが、 複数のセルで使われる テキス ト フ ローハン ド ルに対す る動作を制御 し ます。 1 個のテキス ト フ ローハン ド ルは表の外で使っ てはいけません。 1. 枠の大き さ は自動的に算出 さ れます。 オプ シ ョ ン リ ス ト で boxsize オプ シ ョ ン を与え て も 無視 さ れます。 5.3 表の組版 123 表 5.17 イ ン タ ラ ク テ ィ ブ なセル内容のための、 PDF_add_table_cell( ) のオプ シ ョ ン と 、 caption オプ シ ョ ンのサブオ プ シ ョ ン (ページス コ ープ でのみ) オプ シ ョ ン 説明 annotationtype (文字列) 表セル内に挿入 し たい注釈の種別を表 12.2 に従 っ て指定 し ます。 fieldname (ハイパーテキス ト 文字列) fieldtype に対する フ ォ ーム フ ィ ール ド 名。 fieldtype (文字列) 表セルに挿入 し たい フ ォ ーム フ ィ ール ド の種類を表 12.4 に従 っ て指定 し ます。 フ ォ ーム フ ィ ール ド グループは表の外で定義する必要があ り ます。 fitannotation (オプ シ ョ ン リ ス ト ) に対する、 表 12.3 に従 っ た注釈オプ シ ョ ン群。 fitfield (オプ シ ョ ン リ ス ト ) に対する、 表 12.5 に従 っ た フ ォ ーム フ ィ ール ド オプ シ ョ ン群。 C++ Java C# String fit_table(int table, double llx, double lly, double urx, double ury, String optlist) Perl PHP string fit_table(int table, float llx, float lly, float urx, float ury, string optlist) C const char *PDF_fit_table(PDF *p, int table, double llx, double lly, double urx, double ury, const char *optlist) 表の全部ない し 一部分をページに配置 し ます。 table PDF_add_table_cell( ) を呼び出 し て取得 し た有効な表ハン ド ル。 llx ・ lly ・ urx ・ ury 表 イ ン ス タ ン ス を配置 し たい長方形 (はめ込み枠) の左下隅 と 右上 隅の座標を、 ユーザー座標で指定 し ます。 こ の 2 個の隅は逆の順に指定す る こ と も で き ま す。 optlist 配置の詳細を表 5.18 に従っ て指定 し たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ンが 使え ます : > 一般オプシ ョ ン : errorpolicy (21 ページ 「2.1 例外処理」 参照) > 表 6.1 に従っ たはめ込みオプシ ョ ン : fitmethod ・ position ・ showborder > 一般表オプシ ョ ン : blind ・ colwidthdefault ・ horshrinklimit ・ rewind ・ rowheightdefault ・ vertshrinklimit > 表内容 : header ・ footer > 表装飾 : fill ・ firstdraw ・ gstate ・ stroke > 開発 ・ デバ ッ グの視覚支援 : debugshow ・ showcells ・ showgrid > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag。 こ のオプシ ョ ン を使 う と 、 自動表 タ グ付け を引 き 起 こ す こ と がで き ます (詳 し く は PDFlib チ ュ ー ト リ アルを参照)。 戻り値 関数か ら 戻っ た原因を示す文字列。 > _stop : 表のすべての表行の処理が完了。 > _boxfull:配置す る べ き 表行は ま だあ る が、表のはめ込み枠に充分は余地が得 ら れない。 も う 一度 PDF_fit_table( ) を呼び出 し て残 り の表行を処理す る 必要があ り ます。 > _error : エ ラ ーが発生。 問題に関す る 詳細を得る には、 PDF_get_errmsg( ) を呼び出 し ま す。 その問題を視覚化 さ せ る には debugshow=true と 設定 し ます。 > それ以外の文字列 : PDF_add_table_cell( ) への呼び出 し で return オプシ ョ ンに与え た文 字列。 エ ラ ー動作は、 errorpolicy オプシ ョ ンで変え る こ と がで き ます。 124 第 5 章 : テキス ト と 表の組版 詳細 表をページに配置 し ます。 こ れ以前に PDF_add_table_cell( ) を呼び出 し て表にセルを入れ てお く 必要があ り ます。 表全体がはめ込み枠に収ま り き ら ない と き は、 最初の表 イ ン ス タ ン ス が配置 さ れます。 以後 こ の関数を呼び出 し て、 さ ら な る 表 イ ン ス タ ン ス を配置 し てい く こ と がで き ます。 表セルの内容は、 以下の順序で配置 さ れます。 > 塗 り : fill オプシ ョ ンで指定す る 領域は、 次の順序で塗 ら れます : table ・ colother ・ colodd・coleven・col#・collast・rowother・rowodd・roweven・row#・rowlast・header・footer。 > 範囲枠の塗 り : matchbox 定義で定義 し た領域群。 > 内容 : 指定 し たセル内容は、 次の順序で配置 さ れ ます : 画像、 グ ラ フ ィ ッ ク 、 取 り 込 み PDF ページ グ ラ フ ィ ッ ク 、 パ ス オブジ ェ ク ト 、 テ キ ス ト フ ロ ー、 テ キ ス ト 行、 注釈、 フ ォーム フ ィ ール ド 。 > 範囲枠の罫線 : matchbox 定義で定義 し た領域群。 > 罫線:stroke オプシ ョ ンで指定す る 線は、stroke オプシ ョ ンの linecap・linejoin サブオプ シ ョ ンに従っ て、次の順序で描線 さ れます : other ・ horother ・ hor# ・ horlast ・ vertother ・ vert# ・ vertlast ・ frame (横線 と 縦線の順序は、 firstdraw オプシ ョ ン で変え る こ と がで き ます。) 。 複数の行 ・ 列にわた る セルの中では、 罫線は引かれません。 同様に、 枠線 の装飾を指定 し てい る 範囲枠をつけてい る セルの ま わ り には、線は描線 さ れません (そ の範囲枠がセル内枠を使っ てい る と き を除 き ) 。 表の枠線 vert0 ・ hor0 ・ vertN ・ horN は、 frame を指定 し てい る と き は無視 さ れます。 > 名前付 き 範囲枠 : こ れ ら には、 表関数以外の、 注釈 ・ フ ォ ーム フ ィ ール ド ・ 画像 ・ グ ラ フ ィ ッ ク な ど をつけ る こ と がで き ます。 自動表 タ グ付け : tag オプシ ョ ン を用い る と 、 自動表 タ グ付け を引 き 起 こ す こ と がで き ま す (PDFlib チ ュ ー ト リ アル参照)。 スコープ 一般にはページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ。 ただ し 、 表が フ ォーム フ ィ ール ド か 注釈を含んでい る 場合には、 各ス コ ープが勝 り ます。 た と えば、 フ ォーム フ ィ ール ド か注 釈を含んでい る 表は、 テ ンプ レー ト 上に配置す る こ と がで き ません。 PDF/UA 自動表 タ グ付けが有効な場合には、 表装飾 (罫線 と 塗 り ) は自動的にページ装飾 と し て タ グ付け さ れます。 表 5.18 PDF_fit_table( ) のオプ シ ョ ン オプ シ ョ ン 説明 blind (論理値) true にする と 、 すべての計算が行われますが、 出力は作成 さ れません。 組版の結果は、 PDF_info_table( ) で調べる こ と がで き ます。 デ フ ォ ル ト : false 5.3 表の組版 125 表 5.18 PDF_fit_table( ) のオプ シ ョ ン オプ シ ョ ン 説明 caption (オプ シ ョ ン リ ス ト ) 算出 さ れたはめ込み枠からの相対位置にキ ャ プ シ ョ ンのためのはめ込み枠を 作成 し 、 それに さ ま ざ ま な種別の内容をはめ込みます。 以下のオプ シ ョ ン を与え る こ と がで き ま す (デ フ ォル ト : キ ャ プ シ ョ ン な し ) : fitbox (4 個の float かパーセ ン ト 値で絶対または相対座標を表 し た も の。必須) 枠の対角線上の 2 隅の座標をユーザー座標で表 し た もの。 値がパーセ ン ト 値か相対値の場合には、 それ は表イ ン ス タ ン スの照応する隅 {llx lly urx ury} からのオ フ セ ッ ト を示 し ます。 llx か urx に照応するパーセ ン ト 値は、 表イ ン ス タ ン ス幅に対するパーセ ン ト 値であ り 、 lly か ury に照応するパーセ ン ト 値は、 表イ ン ス タ ン ス高 さ に対するパーセ ン ト 値です。 こ のはめ込み枠は、 その内容のサイ ズに合わせて自動的に調整 さ れません。 指定 さ れた 範囲枠はそのはめ込み枠を記述 し ます。 こ れを使っ て、 こ のキ ャ プ シ ョ ンはめ込み枠を 描いた り 、 PDF_info_matchbox( ) を用いてその範囲枠を取得 し た り する こ と がで き ます。 こ の fitbox オプ シ ョ ンの使用例 : 表イ ン ス タ ン スの上端の、 高 さ 20 のはめ込み枠 : fitbox={0r 100% 0r 20r} 表イ ン ス タ ン スの右側の、 幅 20、 下端か らのオ フ セ ッ ト 20% のはめ込み枠 : fitbox={100% 20% 20r 0r} こ れに加えて、 以下のオプ シ ョ ン を使え ます : > 表 5.16 に従っ た、 静的セル内容のためのオプ シ ョ ン : fitgraphics・fitimage・fitpath・ fitpdipage・fittextflow・fittextline・graphics・image・matchbox・path・pdipage・text・ textflow > 表 5.17 に従っ た、 イ ン タ ラ ク テ ィ ブ セル内容のためのオプ シ ョ ン ( ページ ス コ ープ でのみ可) : annotationtype, fieldname・fieldtype・fitannotation・fitfield > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプ シ ョ ン : tag。 こ れを使 う と 、 キ ャ プ シ ョ ン内容の親エ レ メ ン ト や、 キ ャ プ シ ョ ン内容を構成する複数のエ レ メ ン ト のための コ ン テ ナ と し てグループ化エ レ メ ン ト を挿入する こ と がで き ます。 colwidthdefault (float またはキーワー ド 。 1 個の表についての最初の PDF_fit_table( ) への呼び出 し でのみ意味を持 ち ます) テキス ト 行 も テキス ト フ ロー も 含ま ない、 かつ PDF_add_table_cell( ) の colwidth オプ シ ョ ンが指定 さ れなかっ た列に対するデ フ ォ ル ト 幅。 このデ フ ォ ル ト 幅は、 絶対値 と し て、 または キーワー ド と し て指定する こ と がで き ます。 値 0 (ゼロ) はキーワー ド distribute と 同等です。 以下のキーワー ド を使え ます (デ フ ォル ト : auto) : auto 幅が指定 さ れていない、 かつテキス ト 行セルのみを内容 と する表列は、 そのテキス ト の 幅を持ち ます。 はめ込み枠の残 り の幅が、 テキス ト フ ローまたはその他のセルを持つす べての表行に分配 さ れます。 表ははめ込み枠の幅い っ ぱいに広が り ます。 distribute はめ込み枠の幅が、 幅が指定 さ れていない、 かつテキス ト 行を含んでいないすべての表 列に均等に分配 さ れます。 表は、 それがテキス ト 行のみを含んでいる場合を除き、 はめ 込み枠の幅い っ ぱいを占めます。 minimum 幅が指定 さ れていない、 テキス ト 行セルのみを内容 と する表列は、 そのテキス ト の幅、 すなわち、 そのテキス ト を保持で き る可能なかぎ り 小 さ な幅を持ち ます。 最小限の幅を持つ列を生成するには、 小 さ な値を与え る こ と がで き ます (0.1 な ど)。 テキス ト 行 かテキス ト フ ローを含むすべての列の幅は自動的に調整 さ れます (PDFlib チ ュ ー ト リ アル参照)。 debugshow 126 (論理値) true にする と 、 表が高すぎか、 または幅が広すぎか、 ま たはそのセルが小 さ すぎのエ ラ ーがすべて出な く な り 、 かわ り にログ記録 さ れます。 で き あがる表イ ン ス タ ン スは、 表 と し て はおか し く な り ますが、 デバ ッ グの助け と し て作成 さ れます。 デ フ ォル ト : false 第 5 章 : テキス ト と 表の組版 表 5.18 PDF_fit_table( ) のオプ シ ョ ン オプ シ ョ ン 説明 fill (オプ シ ョ ン リ ス ト の リ ス ト ) こ のオプ シ ョ ン を使 う と 、 行 ・ 列に色を塗る こ と がで き ます (1 個 のセルに色を塗るには、 matchbox オプ シ ョ ンが使え ます。 139 ページ 「6.2 範囲枠」 参照) : area (キーワー ド ) 塗 り たい表の領域。 col# 表の列番号 # collast 最後の列 coleven 偶数番号の列すべて (PDF_add_table_cell( ) の col に従っ て) colodd 奇数番号の列すべて colother 未指定の列すべて row# 表の行番号 # rowlast 表イ ン ス タ ン スの最後の本体行 roweven 偶数番号の表行すべて (PDF_add_table_cell( ) の row に従っ て) rowodd 奇数番号の表行すべて header ヘ ッ ダグループの表行すべて footer フ ッ タ グループの表行すべて rowother 未指定の本体行すべて table 表領域全体 (すなわち表の表行すべて) 表 7.1 に従っ た以下のグ ラ フ ィ ッ ク書式オプ シ ョ ン も使え ます : fillcolor ・ shading 例: 表の表行すべて を赤 く 塗る : fill = { {area=table fillcolor=red} } 奇数番号の表行を緑で、 偶数番号の表行を赤で塗る : fill = { {area=rowodd fillcolor=green} {area=roweven fillcolor=red} } 表領域の塗 り を行わないためには fillcolor=none を使用 し ます。 firstdraw (キーワー ド ) 横線 と 縦線を生成する順序を指定 し ます (デ フ ォ ル ト : vertlines) : horlines 横線を まず生成 し ます。 vertlines 縦線を まず生成 し ます。 footer (整数) 表の定義における、 終了部 ( フ ッ タ ) 表行の数。 各表イ ン ス タ ン スの下端に現れます。 デ フ ォ ル ト : 0 ( フ ッ タ 行な し ) gstate (グ ラ フ ィ ッ ク ス テー タ スハン ド ル) PDF_create_gstate( ) で取得 し たグ ラ フ ィ ッ ク ス テー タ スのハ ン ド ル。 すべての表装飾が、 与え るグ ラ フ ィ ッ ク ス テー タ スに従います。 セル内容では効力を持 ち ません。 デ フ ォル ト : グ ラ フ ィ ッ ク ス テー タ スな し (すなわち、 カ レ ン ト 設定が用い られます) header (整数) 表の定義における、 開始部 (ヘ ッ ダ) 表行の数。 各表イ ン ス タ ン スの上端に現れます。 デ フ ォ ル ト : 0 (ヘ ッ ダ行な し ) horshrinklimit (float またはパーセ ン ト 値) 表のはめ込み枠に収める ために表を縮める と き に使われる横縮小倍率 の下限か (パーセ ン ト 値を与え る と き)、 ま たは表の幅 と はめ込み枠の幅の差の絶対指定 (float を 与え る と き)。 デ フ ォル ト : 50% rewind (-1 ・ 0 ・ 1 のいずれかの整数) 表の状態を、 PDF_fit_table( ) を呼び出 し たいずれかの時の前の状態 に リ セ ッ ト し ます。 目下、 以下の値が使え ます。 デ フ ォ ル ト : 0。 1 PDF_fit_table( ) を最初に呼び出 し た時の前の状態へ巻き戻 し 。 0 表を リ セ ッ ト し ません。 -1 PDF_fit_table( ) を最後に呼び出 し た時の前 (今回の呼び出 し の前) の状態へ巻き戻 し 。 5.3 表の組版 127 表 5.18 PDF_fit_table( ) のオプ シ ョ ン オプ シ ョ ン 説明 rowheightdefault (float またはキーワー ド 。 1 個の表についての最初の PDF_fit_table( ) への呼び出 し でのみ意味を持 ち ます) PDF_add_table_cell( ) の rowheight オプ シ ョ ンが指定 さ れなか っ た表行に対するデ フ ォル ト 高 さ 。 こ のデ フ ォル ト 高 さ は、 絶対値 と し て、 またはキーワー ド と し て指定する こ と がで き ます。 float 値が指定 さ れた場合には、 それがテキス ト 枠高 さ よ り も小 さ な場合を除き、 それはデ フ ォル ト 表行高 さ と し て用い られます。 値 0 (ゼロ) はキーワー ド distribute と 等価です。 以下のキー ワー ド を使え ます (デ フ ォ ル ト : auto) : auto テキス ト 行セルのみを内容 と する表行は、 テキス ト 枠の高 さ の 2 倍の高 さ を持ち ます。 はめ込み枠の残 り の高 さ は、 テキス ト フ ローかその他のセルを持つすべての表行に分配 さ れます。 表ははめ込み枠の高 さ い っぱいに広が り ます。 distribute はめ込み枠の高 さ が、 高 さ が指定 さ れていないすべての表行に均等に分配 さ れます。 表 ははめ込み枠の高 さ い っぱい を占めます。 minimum 高 さ が指定 さ れていない、 テキス ト 行セルのみを内容 と する表行は、 そのテキス ト 枠の 高 さ 、 すなわち、 そのテキス ト を保持で き る最 も小 さ な高 さ を持ち ます。 テキス ト 行セ ルの高 さ を増やすには boxsize か margin オプ シ ョ ン を使います。 最小限の高 さ を持つ表行を生成するには、 小 さ な可能な値を与え る こ と がで き ます (1 な ど)。 テ キス ト 行かテキス ト フ ローを含むすべての表行の高 さ は自動的に調整 さ れます (PDFlib チ ュ ー ト リ アル参照)。 showcells (論理値) true にする と 、 各セル内枠の辺がカ レ ン ト グ ラ フ ィ ッ ク ス テー タ ス を使 っ て描線 さ れま す。 ページ ス コ ープ では、 PDF/A がア ク テ ィ ブ でない場合には、 各セルは さ ら に、 そのセルの内 容を記述 し た注釈を用いて修飾 さ れますので、 こ れは表関連の諸問題を分析する ために有用で し ょ う 。 デ フ ォ ル ト : false showgrid (論理値) true にする と 、 すべての列 と 行の縦 ・ 横の境界が描線 さ れます。 デ フ ォ ル ト : false stroke (オプ シ ョ ン リ ス ト の リ ス ト ) こ のオプ シ ョ ン を使 う と 、 セルの辺に描線を作成する こ と がで き ま す: line (キーワー ド ) 描線 し たい表の線。 vert# 列番号 # の右の辺の縦線。 vert0 は表の左の辺 vertfirst 最初の縦線 (vert0 と 同義) vertlast 最後の縦線 vertother 未指定の縦線すべて hor# 表行番号 # の下の辺の横線。 row0 は表の上の辺 horfirst 表イ ン ス タ ン スの最初の横線 horother 未指定の横線すべて horlast 表イ ン ス タ ン スの最後の横線 frame 表の外辺 other 指定 し ていない線すべて 表 7.1 に従 っ た以下のグ ラ フ ィ ッ ク書式オプ シ ョ ン も使え ます : dasharray ・ dashphase ・ linecap ・ linejoin ・ linewidth ・ strokecolor 例: すべての線を黒で線幅 1 で描線 : stroke = {line=other} 外辺の線を線幅 0.5 で描線 : stroke = { {line=frame linewidth=0.5} } 外辺の線を線幅 0.5 で、 他の線すべて を線幅 0.1 で描線 : stroke = { {line=frame linewidth=0.5} {line=other linewidth=0.1} } 表領域に対 し て描線を行わないためには strokecolor=none を使用 し ます。 vertshrinklimit 128 (float またはパーセ ン ト 値) 表のはめ込み枠に収める ために表を縮める と き に使われる縦縮小倍率 の下限か (パーセ ン ト 値を与え る と き)、 または表の高 さ と はめ込み枠の高 さ の差の絶対指定 (float を与え る と き)。 デ フ ォ ル ト : 90% 第 5 章 : テキス ト と 表の組版 C++ Java C# double info_table(int table, String keyword) Perl PHP float info_table(int table, string keyword) C double PDF_info_table(PDF *p, int table, const char *keyword) も っ と も 最近に配置 し た表 イ ン ス タ ン ス に関連す る 表情報を取得 し ます。 table PDF_add_table_cell( ) を呼び出 し て取得 し た有効な表ハン ド ル。こ の表ハン ド ルは、 少な く と も 1 回は PDF_fit_table( ) を呼び出す と き に使っ てい る 必要があ り ます。なぜな ら 戻 り 値は、 表 イ ン ス タ ン ス をページに配置 し た後にのみ意味を持つか ら です。 keyword ほ し い情報を指定 し た キーワ ー ド : > 表 6.3 に従っ た、 オブジ ェ ク ト はめ込みの結果を ク エ リ す る ためのキーワ ー ド : boundingbox ・ fitscalex ・ fitscaley ・ height ・ objectheight ・ objectwidth ・ width ・ x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 ・ x4 ・ y4 > 表 5.19 に従っ た さ ら な る キー ワー ド : firstbodyrow・horboxgap・horshrinking・lastbodyrow・returnreason・rowcount・rowsplit・ tableheight ・ tablewidth ・ vertboxgap ・ vertshrinking ・ xvertline# ・ yhorline# 戻り値 keyword で要求 し た何 ら かの表特性の値。 こ の関数はブ ラ イ ン ド モー ド であ っ て も 、 正 し い位置情報を返 し ます。 要求 さ れた キーワ ー ド がテ キ ス ト を生み出す場合には、 文字列番 号が返 さ れ、 その照応す る 文字列を、 PDF_get_string( ) を用いて取得す る 必要があ り ます。 スコープ オブ ジ ェ ク ト 以外の任意 表 5.19 PDF_info_table( ) のキーワー ド キーワー ド 説明 firstbodyrow も っ と も 最近に配置 し た表イ ン ス タ ン スの最初の本体行の番号 horboxgap 表イ ン ス タ ン スの幅 と はめ込み枠の幅の差。 表を縮めなければな ら なかっ た と きは、 こ の値はは め込み枠の幅か らの逸脱を示 し ます (すなわち負の値)。 horshrinking 計算 さ れた表幅に対する横縮小倍率をパーセ ン ト 値 と し て表 し た も の。 表を横に縮めなければな ら なかっ た と きは、 こ の値は縮小比を示 し ますが、 そ う で なければ 100 にな り ます。 lastbodyrow も っ と も 最近に配置 し た表イ ン ス タ ン スの最後の本体行の番号 returnreason 返 っ た原因に対する文字列番号 rowcount も っ と も 最近に配置 し た表イ ン ス タ ン スの表行の数 (ヘ ッ ダ ・ フ ッ タ を含む) rowsplit 最後の行を分割 し なければな ら なかっ た と きは 1、 そ う でなければ 0 tableheight tablewidth 表全体の幅 と 高 さ vertboxgap 表イ ン ス タ ン スの高 さ と はめ込み枠の高 さ の差。 表を縮めなければな ら なかっ た と きは、 この値 ははめ込み枠の高 さ か らの逸脱を示 し ます (すなわち負の値)。 vertshrinking 計算 さ れた表の高 さ に対する縦縮小倍率をパーセ ン ト 値 と し て表 し た もの。 表を縦に縮めなけれ ばな ら なかっ た と きは、 この値は縮小比を示 し ますが、 そ う でなければ 100 にな り ます。 xvertline# 番号 # の縦線の x 座標。 xvertline0 は表の左の辺。 yhorline# 番号 # の横線の y 座標。 yhorline0 は表の上の辺。 5.3 表の組版 129 C++ Java C# void delete_table(int table, String optlist) Perl PHP delete_table(int table, string optlist) C void PDF_delete_table(PDF *p, int table, const char *optlist) 表 と 、 関連す る すべてのデー タ 構造を削除 し ます。 table optlist 詳細 PDF_add_table_cell( ) を呼び出 し て取得 し た有効な表ハン ド ル。 ク リ ーン ア ッ プオプシ ョ ン を表 5.20 に従っ て指定 し たオプシ ョ ン リ ス ト 。 こ の関数で削除 し なかっ た表は、カ レ ン ト の文書ス コ ープを終え る と 自動的に削除 さ れま す。 スコープ 任意 表 5.20 PDF_delete_table( ) のオプ シ ョ ン オプ シ ョ ン 説明 keephandles (論理値) false にする と 、 PDF_add_table_cell( ) の textflow ・ image ・ graphics ・ pdipage オプ シ ョ ンに与えたハン ド ルがすべて自動的に削除 さ れます。 デ フ ォ ル ト : false 130 第 5 章 : テキス ト と 表の組版 6 オブ ジ ェ ク ト のはめ込み と 範囲枠 6.1 オ ブ ジ ェ ク ト のはめ込み PDFlib のはめ込みアルゴ リ ズ ムは、 長方形のグ ラ フ ィ ッ ク オブジ ェ ク ト を、 点に、 ま たは 横線か縦線に、 あ る いは長方形に相対的に配置 し ます。 こ のはめ込みアルゴ リ ズ ムはい く つかの関数に実装 さ れてい ます : > PDF_fit_textline( ) ・ PDF_info_textline( ) > PDF_fit_image( ) ・ PDF_info_image( ) > PDF_fit_graphics( ) ・ PDF_info_graphics( ) > PDF_fit_pdi_page( ) ・ PDF_info_pdi_page( ) > PDF_draw_path( ) ・ PDF_info_path( ) > PDF_add_table_cell( ) (fitgraphics ・ fitimage ・ fitpdipage ・ fitpath ・ fittextline オプシ ョ ン に対する オプシ ョ ン リ ス ト を通 じ て) > PDF_fit_table( ) > PDF_fill_*block( ) 注 テキス ト フ ロ ーに対す るはめ込みオ プ シ ョ ン群は若干異な っ てい ますので、 こ こ ではな く 、 102 ページ 「5.2 テキス ト フ ローによ る複数行テキス ト 」 で記 し ています。 表 6.1 に、 こ れ ら のはめ込み関数に与え る こ と ので き る はめ込みオプシ ョ ン を挙げます。 すべてのオプシ ョ ン がすべての関数で利用で き る わけではな く 、 ま た、 い く つかのオプ シ ョ ンの動作は関数に よ っ て若干変わ り ます。 詳 し く は表 6.1 を参照。 以下のオプシ ョ ン がはめ込みオプシ ョ ンのグループ を形成 し ます : alignchar ・ boxsize ・ dpi ・ fitmethod ・ margin ・ matchbox ・ minfontsize ・ orientate ・ position ・ refpoint ・ rotate ・ scale ・ stamp ・ showborder ・ shrinklimit オ ブ ジ ェ ク ト 枠 すべての場合において、 はめ込みアルゴ リ ズ ムは、配置す る オブジ ェ ク ト を囲む最小の長方形を算出 し ます。 こ の長方形を オブ ジ ェ ク ト 枠 と 呼びます。 こ れは、 オブジ ェ ク ト の種類に応 じ て変え る こ と がで き ます : > テ キ ス ト 行 (PDF_fit/info_textline( ) ・ 一行テ キ ス ト ブ ロ ッ ク ・ 表セル) : その幅は、 テ キ ス ト 文字列の幅 (横書 き の場合) か、 最 も 広いグ リ フ の幅 (縦書き の場合) です。 テ キ ス ト 枠のデフ ォ ル ト 高 さ は、選択 し た フ ォ ン ト の capheight です。 こ れは、matchbox オプシ ョ ンの boxheight サブオプシ ョ ン で変え る こ と も で き ます。 字間は、 最後のグ リ フ の後には適用 さ れません。 > 画像 と テ ン プ レ ー ト (PDF_fit/info_image( ) ・ イ メ ージブ ロ ッ ク ・ 表セル) : matchbox オプシ ョ ンの clipping サブオプシ ョ ン を用いて、 オブジ ェ ク ト の一部分を オブジ ェ ク ト 枠 と し て定義す る こ と がで き ます。 TIFF ・ JPEG 画像に ク リ ッ ピ ン グパ ス があ る 場合 には、 matchbox オプシ ョ ンの innerbox サブオプシ ョ ン を設定する と 、 それを囲む、 辺 が座標軸に平行な最小の長方形がオブ ジ ェ ク ト 枠 と し て用い ら れ ま す。 PDF_begin_ template_ext( ) の transform オプシ ョ ンが与え ら れてい る 場合には、 その指定 さ れた変 形がテ ンプ レー ト に適用 さ れます。 > グ ラ フ ィ ッ ク (PDF_fit/info_graphics( )):matchboxオプシ ョ ンのサブオプシ ョ ン clipping を使っ て、 オブジ ェ ク ト の ど こ かの一部分を オブジ ェ ク ト 枠 と し て定義す る こ と がで き ま す。 こ のオブ ジ ェ ク ト 枠は、 SVG グ ラ フ ィ ッ ク の幅 と 高 さ に よ っ て、 あ る いは forcedwidth と forcedheight に よ っ て定義 さ れます。こ れ ら の値が 0 の場合には、以下が 6.1 オブ ジ ェ ク ト のはめ込み 131 成立 し ます : も し fitmethod が nofit 以外であ る か、 ま たははめ込み枠が定義 さ れてい ない場合には、 オブジ ェ ク ト 枠のサ イ ズは fallbackwidth と fallbackheight に よ っ て定 義 さ れ ま す。 も し fitmethod=nofit かつはめ込み枠が定義 さ れてい る 場合には、 オブ ジ ェ ク ト 枠のサ イ ズはそのはめ込み枠に よ っ て定義 さ れます。 > 取 り 込み PDF ページ (PDF_fit/info_pdi_page( ) ・ PDF ブ ロ ッ ク ・ 表セル) : PDF_open_ pdi_page( ) で用い ら れたオプシ ョ ン群に従い ます。cloneboxes=true の場合には、可視枠 が使用 さ れます (すなわち、 CropBox が存在する な ら それが、 なければ MediaBox が)。 matchbox オプシ ョ ンの clipping サブオプシ ョ ン を用い る と 、 オブジ ェ ク ト の一部分を オブジ ェ ク ト 枠 と し て用い る こ と がで き ます。 PDF_begin_template_ext( ) の transform オプシ ョ ン が与え ら れてい る 場合には、 その指定 さ れた変形がテ ン プ レー ト に適用 さ れます。 > パ ス オブジ ェ ク ト (PDF_draw/info_path( ) ・ 表セル) : パ ス を囲む、 辺が座標軸に平行 な最小の長方形がオブジ ェ ク ト 枠 と し て用い ら れ ま す。 オブジ ェ ク ト 枠は、 boxsize ・ position オプシ ョ ンの値がゼ ロ でない と き にのみ算出 さ れます。 linewidth ・ miterlimit オプシ ョ ンは無視 さ れます。 > 表 イ ン ス タ ン ス (PDF_fit_table( )) : 表 イ ン ス タ ン ス を囲む、 辺が座標軸に平行な最小 の長方形がオブジ ェ ク ト 枠 と し て用い ら れます。 参照点 参照点は、 オブジ ェ ク ト 枠を配置す る ためのア ン カー と し て用い ら れます。 こ れ は以下の よ う に定義 さ れます : > PDF_fit_*( ) ・ PDF_draw_path( ) の場合 : 関数の引数 x ・ y。 > PDF_info_*( ) の場合: 点 (0, 0)。PDF_info_path( ) では こ のほかに、refpoint オプシ ョ ン を 用いて参照点を指定す る こ と も で き ます。 > PDF_add_table_cell( ) ・ PDF_fit_table( ) ・ PDF_fill_*block( ) の場合 : 表セル ・ 表 イ ン ス タ ン ス ・ PDFlib ブ ロ ッ ク の左下隅。 PDF_fill_*block( ) では こ のほかに、 refpoint オプシ ョ ン を用いて参照点を指定す る こ と も で き ます。 はめ込み枠 と 参照線分 オブジ ェ ク ト 枠がその中に配置 さ れ る 長方形を、 はめ込み枠 と 呼びます。 こ れは参照点 (x, y) を その左下隅 と し 、 その寸法は boxsize オプシ ョ ンの 2 個の 値で指定 さ れます : lower left corner = (x, y) upper right corner = (x + boxsize[0], y + boxsize[1]) upper right corner = (x + boxsize[0], y - boxsize[1]) (topdown=falseのとき) (topdown=trueのとき) 上述の定義に加え て、 はめ込み枠は以下の よ う に変更する こ と も で き ます : > テ キ ス ト 行 : はめ込み枠は margin オプシ ョ ン で縮め る こ と も で き ます。 > 表セル : はめ込み枠は、 セル内枠、 すなわち、 margin* オプシ ョ ン群に よ っ て変更を受 けたセル枠に よ っ て定義 さ れます。 > 表 イ ン ス タ ン ス : はめ込み枠は引数 llx/lly/urx/ury に よ っ て定義 さ れます。 > PDFlibブ ロ ッ ク :はめ込み枠はデフ ォ ル ト ではブ ロ ッ ク のRectプ ロ パテ ィ に よ っ て定義 さ れますが、 refpoint ・ boxsize オプシ ョ ン (一方のみで も 両方で も ) で変更す る こ と も で き ます。 上記の う ち後半 3 つの場合には、 はめ込み枠はつねに得 ら れます。 それ以外の場合には、 はめ込み枠は、boxsizeオプシ ョ ンにゼ ロ でない2個の値を指定 し た と き にのみ得 ら れます。 boxsize[0]=0 の と き 、枠は 1 本の縦線へ縮退 し ます。 はめ込みアルゴ リ ズ ムはオブジ ェ ク ト 枠を、 こ の線分に対 し て相対的に配置 し ま す。 同様に、 boxsize[1]=0 の と き 、 枠は、 132 第 6 章 : オブ ジ ェ ク ト のはめ込み と 範囲枠 結果 と し てで き る 横線に対 し て相対的に配置 さ れます。 こ の縦線ま たは横線を、 参照線分 と 呼びます。 オ ブ ジ ェ ク ト 枠を配置 オブジ ェ ク ト 枠は、 さ ま ざ ま な方式で配置する こ と がで き ます : > はめ込み枠が得 ら れない と き 、 オブジ ェ ク ト は参照点に対 し て相対的に配置 さ れ ます (表セル ・ 表 イ ン ス タ ン ス ・ PDFlib ブ ロ ッ ク の場合を除 く ) : オブジ ェ ク ト 枠の左下隅 が参照点の位置に置かれます。 position オプシ ョ ン を使 う と 、 オブジ ェ ク ト 枠内のそれ 以外の点を選ぶ こ と も で き ます。 た と えば、 position=center にす る と 、 オブジ ェ ク ト 枠の中心点が参照点の位置に置かれます。 scale オプシ ョ ンは、 画像 ・ グ ラ フ ィ ッ ク ・ テ ンプ レー ト ・ パ ス オブジ ェ ク ト ・ 取 り 込 み PDF ページに対 し て効力を持ち ます。 dpi オプシ ョ ンは、 画像に対 し て効力を持ち ます。 fitmethod オプシ ョ ンは こ の場合無視 さ れます。 パス オブジ ェ ク ト : position={0 0} にす る と 、 外接枠は算出 さ れず、 パ ス オブジ ェ ク ト の原点が参照点の位置に置かれます。 > 参照線分に対 し て相対的に (表セル ・ 表 イ ン ス タ ン ス ・PDFlib ブ ロ ッ ク の場合を除 く ): こ れは、 上述の よ う にオブジ ェ ク ト を参照点に対 し て相対的に配置す る 場合 と 同様に 動作 し ます。 こ れに加え て、 position オプシ ョ ン も 、 参照点 と し て作用す る 線分上の点 を定義 し ます。 > はめ込み枠に対 し て相対的に : fitmethod オプシ ョ ンは、 オブジ ェ ク ト 枠をはめ込み枠 内 に 強 制 的 に 収 め る か ど う か、 お よ び ど の よ う に 収 め る か を 指 定 し ま す。 fitmethod=nofit に す る と 、 は め 込み枠へ収 め る た め の 動作 は 何 も 行 わ れ ま せ ん。 fitmethod のそれ以外の値は、 表 6.2 に従っ て具体的なはめ込みアルゴ リ ズ ム を定義 し ます。 こ の場合は、 scale ・ dpi オプシ ョ ンは無視 さ れ、 margin ・ shrinklimit ・ showborder オプ シ ョ ンは効力を持ち ます。 オブジ ェ ク ト 枠の左下隅が、 はめ込み枠の左下隅の位置に置かれ ま す。 position オプ シ ョ ン を用い る と 、 オブジ ェ ク ト 枠内のそれ以外の点 と 、 同時にそれに照応す る はめ 込み枠内の点を選ぶ こ と がで き ます。 た と えば、 position=center は、 オブジ ェ ク ト 枠 の中心点をはめ込み枠の中心点の位置に置 き ます。 オ ブ ジ ェ ク ト はめ込みの結果を ク エ リ す る ための共通キーワー ド オブジ ェ ク ト はめ込 みの結果は、そのオブジ ェ ク ト をページ上に実際に配置 し ないで ク エ リ す る こ と も で き ま す。 こ れを使 う と 、 実際にページ内容を作成す る 前に組版上の決定を行 う こ と がで き ま す。 組版結果を ク エ リ す る ためには、 オブジ ェ ク ト に対する はめ込みオプシ ョ ン群を、 個 別 PDF_info_*( ) の関数に与え る こ と がで き ます。 表 6.3 に、 はめ込み結果を ク エ リ す る た 6.1 オブ ジ ェ ク ト のはめ込み 133 表 6.1 さ ま ざ ま な関数のはめ込みオプ シ ョ ン オプ シ ョ ン 説明 align (float 2 個の リ ス ト 。 パスオブ ジ ェ ク ト のみ) パスオブ ジ ェ ク ト の回転を定義する方向ベ ク ト ルの 座標をユーザー座標で指定 し ます。 パスオブ ジ ェ ク ト の座標系の x 方向が、 指定 し たベ ク ト ル と 平行にな り ます。 座標は両方 と も 0 であ っ てはいけません。 こ こ で算出 さ れた回転が、 orientate オプ シ ョ ン で定義 さ れる回転に加え られます。 デ フ ォ ル ト : {1 0}、 すなわち追加の回転な し alignchar (Unichar < 0xFFFF またはキーワー ド 。 テキス ト 行のみ) 指定 し たキ ャ ラ ク タ がテキス ト 内に見つ かっ た と きは、 その左下隅が参照点の位置に置かれます。 orientate=north または south の横書き テキス ト については、 position オプ シ ョ ン で与え る 1 番目の値が位置を定義 し ます。 orientate=west または east の縦書き テキス ト については、 position オプ シ ョ ン で与え る 2 番目 の値が位置を定義 し ます。 こ のオプ シ ョ ンが存在する と き、 組版 さ れた テキス ト ははめ込み枠からはみ出す可能性があ り ま す。 こ のオプ シ ョ ンは、 指定 し た整列キ ャ ラ ク タ がテキス ト 内に存在 し ない と きは無視 さ れます。 指定 し たキ ャ ラ ク タ がフ ォ ン ト またはエ ン コ ーデ ィ ング内に見つか ら ない と きは、 glyphcheck=error であれば例外が発生 し ます。 glyphcheck がそれ以外の値であれば、 alignchar オプ シ ョ ンは、 キ ャ ラ ク タ が得ら れない と き には警告を出 さ ずに無視 さ れます。 値 0 と キーワー ド none は整列キ ャ ラ ク タ を な し に し ます。 指定 し た fitmethod が適用 さ れます が、 ただ し alignchar の強制位置合わせのために、 テキス ト ははめ込み枠内には配置で き ません。 デ フ ォ ル ト : none attachmentpoint (文字列。 パスオブ ジ ェ ク ト のみ) 取付点の名前 : パスオブ ジ ェ ク ト は、 指定 し た取付点が参照店 の位置にな る よ う 配置 さ れます。 fitmethod が nofit 以外の場合には、 オブ ジ ェ ク ト はまず、 指定 さ れた方式に従っ てはめ込み枠内に配置 さ れます。 デ フ ォル ト : パスオブ ジ ェ ク ト の原点 blind (論理値) true の場合、 出力は生成 さ れませんが、 すべての計算は実行 さ れ、 その組版結果を適切 な関数 PDF_info_*( ) でチ ェ ッ ク で き ます。 デ フ ォ ル ト : false boxsize (2 個の float の リ ス ト 。 表では不可) オブ ジ ェ ク ト (rotate オプ シ ョ ンに従っ て回転 さ れている場 合も あ る) がそれに対 し て相対的に配置 さ れるはめ込み枠の幅 と 高 さ 。 はめ込み枠の左下隅が、 参照点 (x, y) の位置に置かれます。 オブ ジ ェ ク ト の配置は、 position ・ fitmethod オプ シ ョ ンに よ っ て制御 さ れます。 幅 =0 にする と 高 さ のみが考慮 さ れ、 高さ =0 にする と 幅のみが考慮 さ れま す。 こ れらの場合には fitmethod オプ シ ョ ンは無視 さ れ、 オブ ジ ェ ク ト は position オプ シ ョ ンに 従っ て、 (x, y) から (x, y+ 高さ ) (あ るいは上から 下への座標系では (x, y- 高さ )) の縦線に対 し て、 または (x, y) から (x+ 幅 , y) の横線に対 し て相対的に配置 さ れます。 ブ ロ ッ クの場合のデ フ ォル ト : ブ ロ ッ ク の Rect プ ロパテ ィ の幅 と 高 さ それ以外のすべてのはめ込み関数でのデ フ ォル ト : {0 0} dpi (2 個の float かキーワー ド の リ ス ト 。 画像のみ) 求める横方向 と 縦方向の画像解像度を イ ン チあた り ピ ク セル数で指定 し た 1 個か 2 個の値。 このオプ シ ョ ンは、 画像内のピ ク セル数を変え る (ダ ウンサン プ リ ング) わけではあ り ません。 値を 1 個だけ指定する と 、 それは両方の方向に対 し て 用い ら れます。 値 0 にする と 、 画像の内部解像度がも し 得ら れればそれが用い ら れ、 そ う でない な ら 72 dpi と な り ます。 キーワー ド internal はゼロ と 同等です。 こ のオプ シ ョ ンに よ っ て生 じ る 拡縮は、 カ レ ン ト ユーザー座標系に対 し て相対的にな り ます。 すなわち、 座標系が拡縮 さ れてい る と きは、 最終的な物理解像度は与えた値 と は異な る ものにな り ます。 scale オプ シ ョ ンが、 こ の dpi 値に加え て適用 さ れます。 fitmethod オプ シ ョ ンにキーワー ド auto ・ meet ・ slice ・ entire のいずれかをつけて与えている と き には、 これ らの dpi 値はその画像のア スペ ク ト 比のみを指定 し 、 その絶対サイ ズを指定 し ませ ん。。 デ フ ォ ル ト : internal fitmethod (キーワー ド ) 指定 し たはめ込み枠内にオブ ジ ェ ク ト を収める ために用いる方式。 使え るキーワー ド は表 6.2 参照。 nofit 以外のキーワー ド は、 はめ込み枠を指定 し ていない と き には無視 さ れま す。 デ フ ォ ル ト : テキス ト フ ローの場合は clip、 表 ・ パスオブ ジ ェ ク ト と reference オプ シ ョ ンの場 合は meet、 それ以外の場合は nofit 134 第 6 章 : オブ ジ ェ ク ト のはめ込み と 範囲枠 表 6.1 さ ま ざ ま な関数のはめ込みオプ シ ョ ン オプ シ ョ ン 説明 margin (float の リ ス ト 。 テキス ト 行のみ) はめ込み枠の横 と 縦の追加の縮小を記述 し た 1 個か 2 個の float 値。 デ フ ォル ト : 0 matchbox (オプ シ ョ ン リ ス ト 。 パスオブ ジ ェ ク ト では不可) 表 6.4 に従 っ た、 範囲枠を生成する ためのオプ シ ョ ンリス ト minfontsize (float またはパーセ ン ト 値。 テキス ト フ ローのみ) fitmethod=auto で shrinklimit を超えた と き に テキス ト をはめ込み枠に収める ために縮小する際の最小許容文字サイ ズ。 ユーザー座標で、 また ははめ込み枠の高 さ に対するパーセ ン ト 値で指定 し ます。 こ の下限に達 し た と きは、 テキス ト は、 指定 し た minfontsize を文字サイ ズ と し て生成 さ れます。 デ フ ォ ル ト : 0.1% orientate (キーワー ド または float。 表では不可) オブ ジ ェ ク ト に対 し て求める、 カ レ ン ト 座標系に対する相 対的な向き を指定 し ます。 デ フ ォ ル ト : north。 パスオブ ジ ェ ク ト の場合には、 任意の回転角 (度単位で) を指定する こ と も で き ますが、 それ以 外の種類のオブ ジ ェ ク ト の場合にはで き ません。 パスオブ ジ ェ ク ト の境界枠は、 そのパスオブ ジ ェ ク ト を回転 さ せた後に算出 さ れます。 すべての関数で、 以下のキーワー ド が使え ます (それ ぞれ同等の角度を括弧内に示 し ます) : position north 直立 (0) east 右倒 し (270) south 倒立 (180) west 左倒 し (90) (float かキーワー ド の リ ス ト ) 参照点 ・ 参照線分 ・ はめ込み枠のいずれかに対するオブ ジ ェ ク ト 枠 の相対的な位置を指定 し た 1 個か 2 個の値。 これ らの値は、 オブ ジ ェ ク ト 枠内の位置を指定 し ま す。 横位置を枠の幅に対するパーセ ン ト 値 と し て (1 番目の値)、 縦位置を枠の高 さ に対するパー セ ン ト 値 と し て (2 番目の値) 定義 し ます。 こ の指定 し た位置が、 参照点か、 参照線分上の点か、 はめ込み枠内の点の位置に置かれます。 値はパーセ ン ト 値を表 し ていますが、 パーセ ン ト 記号な し で指定する必要があ り ます。 負の値も 許 さ れます。 両方の値が等 し い と きは、 値を 1 個だけ与 えれば充分です。 デ フ ォル ト : 表の場合は {0 100}、 reference オプ シ ョ ンの場合は center、 それ以外な ら {0 0}。 例: {0 0} オブ ジ ェ ク ト 枠の左下隅が、 参照点か、 参照線分の始点か、 はめ込み枠の左下隅の位置 に置かれます。 {100 100} オブ ジ ェ ク ト 枠の右上隅が、 参照点か、 参照線分の終点か、 はめ込み枠の右上隅の位置 に置かれます。 キーワー ド left ・ center ・ right (x 方向で) ま たは bottom ・ center ・ top (y 方向で) を、 値 0 ・ 50 ・ 100 と 同等な もの と し て用いる こ と がで き ます。 キーワー ド を 1 個だけ指定する と 、 も う 1 つ の方向でそれに照応するキーワー ド が追加 さ れます。 例 : {left center} または {0 50} 左揃え {center} または {50 50} 縦横中央揃え {right center} または {100 50} 右揃え テキス ト 行のみ : キーワー ド auto を、 リ ス ト の 1 番目の値 と し て用いる こ と も で き ます。 こ れ は、 テキス ト の筆記方向が右書きの場合 (ア ラ ビ ア文字 ・ ヘブ ラ イ文字等) には right を意味 し 、 そ う でない場合には left を意味 し ます。 refpoint (float の リ ス ト 。 PDF_fill_*block( ) ・ PDF_info_path( ) のみ) ブ ロ ッ ク 内容ま たはパス をはめ込む際の 参照点をユーザー座標で指定 し ます。 PDF_fill_*block( ) の場合のデ フ ォ ル ト : ブ ロ ッ クの Rect プ ロパテ ィ によ っ て定義 さ れる長方形の左 下隅 PDF_info_path( ) の場合のデ フ ォ ル ト : {0 0} 6.1 オブ ジ ェ ク ト のはめ込み 135 表 6.1 さ ま ざ ま な関数のはめ込みオプ シ ョ ン オプ シ ョ ン 説明 rotate (float。 表 ・ パスオブ ジ ェ ク ト では不可) 参照点を中心 と し 、 指定 し た値を、 回転角を度単位で表 し た も の と し て、 座標系を回転 し ます。 こ れに よ っ て、 はめ込み枠 と オブ ジ ェ ク ト が回転 さ れま す。 こ の回転は、 オブ ジ ェ ク ト が配置 さ れた時点で リ セ ッ ト さ れます。 デ フ ォ ル ト : 0 表セル内のテキス ト 行 : rotate オプ シ ョ ン で 0 以外の値が指定 さ れた場合には、 表エ ン ジ ンは、 回転 さ れた テキス ト の外接枠を セル枠内へ、 fitmethod と position オプ シ ョ ンに従っ てはめ込 も う と 試みます。 fitmethod が auto 以外の場合には、 セルは必要に応 じ て適切に拡大 さ れます。 scale (float の リ ス ト 。 テキス ト 行 ・ テキス ト フ ローでは不可) オブ ジ ェ ク ト を、 参照点を中心 と し て、 横方向 と 縦方向で指定 し た倍率 (パーセ ン ト 値ではな く ) で拡縮 し ます。 両方の倍率が等 し い と きは、 値を 1 個だけ指定すれば充分です。 負の値の場合には鏡映 と な り ます。 こ のオプ シ ョ ンの 絶対値は、 fitmethod オプ シ ョ ンにキーワー ド auto ・ meet ・ slice ・ entire のいずれかをつけて与 え ている と き には無視 さ れます。 デ フ ォ ル ト : {1 1} stamp (キーワー ド 。 テキス ト 行のみ。 boxsize が指定 さ れていない と きは無視 さ れます) こ のオプ シ ョ ン を使 う と 、 boxsize オプ シ ョ ン で指定する枠の対角線上に最大限の大き さ のス タ ン プ を生成する こ と がで き ます。 よ り 具体的には、 このテキス ト ははめ込み枠内に対角線上に配置 さ れます。 テ キス ト 枠の大き さ は、 それがはめ込み枠を可能な限 り 覆いつつ も そのテキス ト 枠の縦横比を保持 する よ う に選ばれます (すなわち、 ス タ ン プ を構成する テキス ト は可能な限 り 大き く な り ます)。 オプ シ ョ ン fontsize ・ fitmethod ・ position は無視 さ れます。 オプ シ ョ ン orientate=west と =east は何の意味 も持ち ません (north ・ south のみ)。 使え るキーワー ド (デ フ ォ ル ト : none) : ll2ur ス タ ン プは、 左下隅から右上隅への対角線に沿 っ て置かれます。 ul2lr ス タ ン プは、 左上隅から右下隅への対角線に沿 っ て置かれます。 none ス タ ン プは作成 さ れません。 showborder (論理値) true にする と 、 はめ込み枠の境界がカ レ ン ト グ ラ フ ィ ッ ク ス テー タ ス を用いて描線 さ れ ます。 ス タ ン プ を生成 し ている と きは、 ス タ ン プの境界枠も 描線 さ れます。 こ れは開発やデバ ッ グの際に有用で し ょ う 。 デ フ ォル ト : false shrinklimit (float またはパーセ ン ト 値。 テキス ト 行のみ) fitmethod=auto で テキス ト を収める ために適用 さ れ る長体比率の下限。 デ フ ォ ル ト : 0.75 136 第 6 章 : オブ ジ ェ ク ト のはめ込み と 範囲枠 表 6.2 さ ま ざ ま な関数の fitmethod オプ シ ョ ンのキーワー ド 。 テキス ト 行に対する各キーワー ド の典型的効果をあ わせて図示。 fontsize オプ シ ョ ンにはすべての図で同 じ 値を用いています。 キーワー ド 説明 auto こ の方式は、 オブ ジ ェ ク ト をはめ込み枠内に自動的に収めよ う と 試 みます : オブ ジ ェ ク ト がはめ込み枠に収ま る場合には、 動作は nofit 方式 と 同 じ です。 すなわち、 オブ ジ ェ ク ト は拡縮 さ れずに配置 さ れます。 オブ ジ ェ ク ト がはめ込み枠よ り 大き い場合には、 オブ ジ ェ ク ト は以 下のよ う にサイ ズが縮小 さ れます : テキス ト 行 : テキス ト を横に縮めて (つぶ し て) はめ込み枠に収め ら れる よ う な縮小倍率が算出 さ れます。 算出 さ れた倍率が shrinklimit オプ シ ョ ン よ り も小 さ い と きは、 meet 方式が適用 さ れ、 すなわち、 テキス ト が収ま る ま で、 または文字サイ ズ 0.001 に達する ま で文字サイ ズが縮小 さ れます。 Kraxi Systems Kraxi Systems Kraxi Systems その他のオブ ジ ェ ク ト 種別 : 動作は meet 方式 と 同 じ です。 clip オブ ジ ェ ク ト を置き、 はめ込み枠の辺で図形的に切 り 落 と し ます。 PDF_fit_table( ) : 算出 さ れた表枠は、 はめ込み枠の下辺で論理的に切 Kraxi Sys り 落 と さ れ、 次のはめ込み枠へ続 く こ と がで き ます。 論理的切 り 落 と し は、 PDF_fit_textflow( ) と 同様であ り 、 PDF_fit_image( ) 等での図形 的切 り 落 と し と は異な り ます。 表枠は、 はめ込み枠内で position オプ シ ョ ンに従っ て配置 さ れま す。 entire オブ ジ ェ ク ト 枠を、 はめ込み枠全体を覆 う よ う に拡縮 し ます。 一般 に、 この方式ではオブ ジ ェ ク ト はつぶ さ れます。 position オプ シ ョ ンは何ら 効力を持ち ません。 Kraxi Systems PDF_fit_table( ) : clip に似ています。 表枠がはめ込み枠よ り も小 さ い と きは、 表枠がはめ込み枠全 体を覆 う ま で、 表枠のセル群が一様に拡大 さ れます (セルの内容は拡大 さ れません)。 meet オブ ジ ェ ク ト を position オプ シ ョ ンに従っ て置き、 はめ込み枠内に ま る ご と 収ま る よ う 、 縦横比を保 っ て拡縮 し ます。 一般に、 オブ ジ ェ ク ト 枠の少な く と も 2 つの辺が、 照応するはめ込み枠の辺 と 重 な る こ と にな り ます。 Kraxi Systems PDF_fit_table( ) : clip に似ています。 表枠がはめ込み枠よ り も小 さ い と きは、 表の横辺か縦辺がは め込み枠に重な る ま で、 表枠のセル群が一様に拡大 さ れます (セルの内容は拡大 さ れません)。 nofit オブ ジ ェ ク ト を置 く だけです。 scale オプ シ ョ ンが画像 と グ ラ フ ィ ッ ク に適用 さ れます。 画像には dpi オプ シ ョ ン も適用 さ れます。 Kraxi Systems PDF_fit_table( ) : 表が、 無限の高 さ を持つ仮想的なはめ込み枠に対 し て算出 さ れます。 表枠ははめ込み枠内に、 position オプ シ ョ ンに 従 っ て配置 さ れます。 列 と 表行のデ フ ォ ル ト のサイ ズは、 指定 し たはめ込み枠の高 さ に対 し て相 対的にな り ます。 表を blind モー ド で組版するには fitmethod=nofit を推奨 し ます。 slice Kraxi S オブ ジ ェ ク ト を position オプ シ ョ ンに従っ て置き、 はめ込み枠全体 を覆 う よ う に、 かつオブ ジ ェ ク ト の少な く と も 1 つの方向でははめ 込み枠内にち ょ う ど収ま る よ う 、 縦横比を保っ て拡縮 し ます。 一般 に、 オブ ジ ェ ク ト のも う 1 つの方向でははめ込み枠か ら一部分がは み出すので、 その分は切 り 落 と さ れます。 PDF_fit_table( ) : clip に似ています。 表枠がはめ込み枠よ り も小 さ い と きは、 はめ込み枠全体が表 枠によ っ て覆われる ま で、 表枠のセル群が、 縦横比を保っ て一様に拡大 さ れます (セルの内容は 拡大 さ れません)。 表枠ははめ込み枠内に、 position オプ シ ョ ン に従っ て配置 さ れます。 表枠の う ち、 はめ込み枠からはみ出 し た部分は、 はめ込み枠の辺で図形的に切 り 落 と さ れます。 6.1 オブ ジ ェ ク ト のはめ込み 137 めのキーワ ー ド を挙げます。 PDF_info_path( ) に対す る はめ込み結果は、 参照点か ら の相 対位置 と し て表 さ れます。 表 6.3 PDF_info_image( ) ・ PDF_info_graphics( ) ・ PDF_info_path( ) ・ PDF_info_pdi_page( ) ・ PDF_info_table( ) ・ PDF_info_ textline( ) を用いたオブ ジ ェ ク ト はめ込みの結果を ク エ リ する ための共通キーワー ド キーワー ド 説明 boundingbox オブ ジ ェ ク ト の外接枠に対するパスハン ド ル fitscalex ・ fitscaley オブ ジ ェ ク ト を枠にはめ込んだ結果の拡縮倍率 height オブ ジ ェ ク ト の高 さ をユーザー座標で表 し た もの objectheight ・ objectwidth オブ ジ ェ ク ト を読み込むか作成する ために関係 し たすべてのオプ シ ョ ン を処理 し た後のオ ブ ジ ェ ク ト の生のサイ ズ。 こ のサイ ズがはめ込みアルゴ リ ズムに よ っ て使用 さ れます。 width オブ ジ ェ ク ト の幅をユーザー座標で表 し た も の x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 ・ x4 ・ y4 与え られたオプ シ ョ ン群に従っ た、 オブ ジ ェ ク ト の外接枠の i 番目の長方形隅 (i=1, 2, 3, 4) の位置をユーザー座標で表 し た もの 138 第 6 章 : オブ ジ ェ ク ト のはめ込み と 範囲枠 6.2 範囲枠 範囲枠は、 それ専用の API 関数で定義す る のではな く 、 その照応す る 要素を作成す る 組版 関数を呼び出す際に、 matchbox オプシ ョ ンで定義 し ます。 > テ キ ス ト 行 : PDF_fit_textline( ) ・ PDF_fill_textblock( ) で textflow=false を用い る : 範囲枠 はテ キ ス ト 行の外接枠を記述 し ます。 > テ キ ス ト フ ロ ー : PDF_add/create_textflow( ) ・ PDF_fill_textblock( ) で textflow=true を用 い る : 範囲枠は、 生成 さ れ る テ キ ス ト 出力の外接枠を記述 し ます。 PDF_fill_textblock( ) におけ る 範囲枠指定は、 イ ン ラ イ ン テ キ ス ト 飾 り に対す る 開始 と し て用い る こ と はで き ず、 テ キ ス ト 全体に対す る 範囲枠を作成す る ためにのみ用い る こ と がで き ます。 > 取 り 込み PDF ページ :PDF_fit_pdi_page( )・PDF_fill_pdf_block( ) を用い る :範囲枠は、配 置 さ れたページの外接枠を記述 し ます。 > 画像 ・ テ ンプ レー ト : PDF_fit_image( ) ・ PDF_fill_image_block( ) を用い る : 範囲枠は、 配 置 さ れた画像ま たはテ ンプ レー ト の外接枠を記述 し ます。 > グ ラ フ ィ ッ ク : PDF_fit_graphics( ) を用い る : 範囲枠は、 配置 さ れた グ ラ フ ィ ッ ク の外 接枠を記述 し ます。 > 表セル : PDF_add_table_cell( ) : 範囲枠は、 表セルの外接枠を記述 し ます。 範囲枠は、 こ れ ら の関数の matchbox オプシ ョ ン で定義 さ れます。 こ のオプシ ョ ンには、 以下のサブオプシ ョ ンが使え る オプシ ョ ン リ ス ト を与え ます : > 表 7.1 に従っ た グ ラ フ ィ ッ ク 書式オプシ ョ ン群 : borderwidth・dasharray・dashphase・fillcolor・gstate・linecap・linejoin・shading・strokecolor > 表 6.4 に従っ た範囲枠制御オプシ ョ ン群 > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag 範囲枠に照応す る 長方形の詳細は、 PDF_info_matchbox( ) で取得で き ます。 表 6.4 さ ま ざ ま な関数の matchbox オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 boxheight (要素 2 個の リ ス ト 。 各要素は正の float か、 文字サイ ズに対するパーセ ン ト 値か、 キーワー ド 。 テ キス ト 行 ・ テキス ト フ ローのみ) テキス ト 枠の縦の長 さ を定義 し ます。 ベース ラ イ ンの上 と 下の 長 さ について、 値 2 個を数値かキーワー ド で指定する こ と がで き ます : none (長 さ ゼロ) ・ xheight ・ descender ・ capheight ・ ascender ・ fontsize ・ leading ・ textrise テキス ト フ ローの場合、 範囲枠の先頭のテキス ト に照応する値が使われます。 デ フ ォル ト : {capheight none} boxwidth (float またはパーセ ン ト 値。 テキス ト フ ローのみ) 範囲枠の幅を、 ユーザー座標で、 ま たははめ込 み枠の幅に対するパーセ ン ト 値で指定 し ます。 こ のオプ シ ョ ン を与え る と 、 matchbox オプ シ ョ ン と 、 次の部分テキス ト か matchbox end 指定 と の間に、 指定 し た幅の横アキが挿入 さ れます。 こ れ は、 テキス ト フ ローの中に、 画像 ・ テ ン プ レー ト ・ PDF ページ を挿入する ためのアキを確保 し た い と き に便利です。 なお、 alignment=justify の場合には、 枠の幅がテキス ト と 同様に圧縮 さ れる こ と があ り ます (オプ シ ョ ン shrinklimit を参照)。 デ フ ォ ル ト : 0 6.2 範囲枠 139 表 6.4 さ ま ざ ま な関数の matchbox オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 clipping (長方形、 またはパーセ ン ト 値 4 個。 画像 ・ グ ラ フ ィ ッ ク ・ 取 り 込み PDF ページのみ。 innerbox オプ シ ョ ン を指定 し ている と きは無視 さ れます) 画像かグ ラ フ ィ ッ クかページの中のどの部分が 見え る よ う にするかを指定する長方形の左下隅 と 右上隅の座標。 その指定はオブ ジ ェ ク ト に よ っ て異な り ます (デ フ ォ ル ト : {0% 0% 100% 100%}) : > 画像の場合、 こ の切 り 抜き長方形は、 ピ ク セル単位で、 ま たは幅 ・ 高 さ に対するパーセ ン ト 値 と し て指定で き ます。 > グ ラ フ ィ ッ ク の場合、 この切 り 抜き長方形は、 ユーザー座標で、 またはそのグ ラ フ ィ ッ クのオブ ジ ェ ク ト 枠の幅 ・ 高 さ に対するパーセ ン ト 値 と し て指定で き ます。 > PDF ページの場合、 こ の切 り 抜き長方形は、 デ フ ォ ル ト 単位で、 またはそのページの CropBox の 幅 ・ 高 さ に対するパーセ ン ト 値 と し て指定で き ます。 createwrapbox (論理値。 テキス ト フ ローのみ) true にする と 、 範囲枠を構成する 1 個ない し 複数の長方形が算出 さ れた後に、 それら が回 り 込み枠 と し て テキス ト フ ロー内へ挿入 さ れます。 その範囲枠の入 っ て いる行の後に続 く 行群は、 その長方形を回 り 込みます。 デ フ ォル ト : false doubleadapt true にする と 、 2 番目の線の始点 と 終点が、 1 番目の線に合わせて調整 さ れます。 そ う でなけれ ば、 2 番目の線は、 doubleoffset の分だけ短 く 、 または長 く な り ます。 デ フ ォ ル ト : true doubleoffset (float) 0 以外にする と 、 内側の範囲枠長方形の境界のまわ り の線が二重にな り ます。 2 番目の線 は、 元の線に対 し て、 指定 し た変位を持ち ます。 変位を正の値にする と 、 線は範囲枠長方形の外 側に描かれ、 負の値にする と 内側に描かれます。 デ フ ォル ト : 0 (すなわち一重線) drawleft (論理値) true にする と 、 borderwidth を 0 よ り 大き い値に設定 し ている な ら、 長方形のそれぞれ drawbottom の境界が描かれます。 デ フ ォ ル ト : true drawright drawtop end (論理値。 テキス ト フ ローのみ) 範囲枠の終了を指定 し ます。 true にする と 、 カ レ ン ト の matchbox 定義に対する他のすべてのオプ シ ョ ンは無視 さ れます。 テキス ト フ ロー内の範囲枠はネ ス ト で き ません。 テキス ト フ ローの範囲枠の幅は、 boxwidth オプ シ ョ ン (指定 し ていれば) と 、 matchbox オプ シ ョ ン と matchbox= end オプ シ ョ ン では さ んだ テキス ト の視覚的長 さ によ っ て定義 さ れます。 こ の end オプ シ ョ ン を指定 し ていない と きは、 範囲枠は、 テキス ト フ ローの末尾キ ャ ラ ク タ の後に終了 し ます。 exceedlimit (float またはパーセ ン ト 値。 テキス ト フ ローのみ) 範囲枠がはめ込み枠の下辺または右辺から はみ 出す こ と を許す上限を、 ユーザー座標で、 ま たは範囲枠の高 さ に対するパーセ ン ト 値で指定 し ま す。 指定 し た上限を超え る と きは、 PDF_fit_textflow( ) は _boxfull を返 し ます。 この場合、 残 り の テキス ト と 範囲枠は次のはめ込み枠へ続 く こ と がで き ます。 デ フ ォ ル ト : 0、 すなわち範囲枠が枠 内に完全に収ま る必要があ り ます。 innerbox (論理値。 表セル と TIFF ・ JPEG 画像のみ) 表セル : true にする と 、 セルに対 し て定義 し ている余 白の分だけセル枠が縮小 さ れます。 そ う で なければセル枠全体が用い られます。 TIFF ・ JPEG 画像 : true にする と 、 画像に ク リ ッ ピ ングパスがある と きは、 画像全体でな く 、 その ク リ ッ ピ ングパスの外接枠が使われます。 デ フ ォ ル ト : false margin 140 (float またはパーセ ン ト 値) 範囲枠の長方形に対する追加の余白を、 ユーザー座標系で (0 以上に する必要があ り ます)、 または長方形の幅か高 さ に対するパーセ ン ト 値で (100% 未満にする必要が あ り ます) 指定 し ます。 こ のオプ シ ョ ンは、 offset* を指定 し ている辺については無視 さ れます。 デフ ォル ト : 0 第 6 章 : オブ ジ ェ ク ト のはめ込み と 範囲枠 表 6.4 さ ま ざ ま な関数の matchbox オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 name (名前文字列) 範囲枠の名前。 こ の名前を付けた範囲枠がすでにある と きは、 こ の範囲枠のための 長方形が も う 1 個作ら れます。 ですので、 1 個の範囲枠が複数の長方形から 成る場合があ り え ま す。 この名前は PDF_info_matchbox( ) で使え ます。 さ ま ざ ま な関数で、 usematchbox オプ シ ョ ン を 使 っ て、 範囲枠の長方形 (群) を参照する こ と がで き ます。 た と えば PDF_create_annotation( ) で 注釈を追加する こ と がで き ます。 範囲枠の名前は、 カ レ ン ト ページ を終え る ま で使え ます。 名前 「*」 (ア ス タ リ ス ク キ ャ ラ ク タ ) を範囲枠の名前 と し て用いるべき ではあ り ません。 デ フ ォ ル ト : 名前な し offsetleft offsetbottom offsetright offsettop (float またはパーセ ン ト 値) 算出 さ れた長方形か ら、 求める枠への、 左 ・ 右 ・ 下 ・ 上辺のユーザー 定義の変位。 値は、 ユーザー座標で、 ま たは長方形の幅 (offsetleft/offsetright の場合) か高 さ (offsetbottom/offsettop の場合) に対するパーセ ン ト 値で指定 し ます。 負の値も 可能で、 範 囲枠を拡げる ために用いる こ と がで き ます。 offsetleft/offsetbottom のデ フ ォル ト : margin。 offsetright/offsettop のデ フ ォル ト : -margin openrect (論理値。 テキス ト フ ロー ・ 表セルのみ) テキス ト フ ロー : true にする と 、 範囲枠長方形が分割 さ れる必要があ る (た と えばフ ォ ン ト 変更や改行のために) と き、 前の長方形の右辺 と 、 後の長方 形の左辺を描き ません。 表セル : true にする と 、 表行が次の表イ ン ス タ ン スへ分割 さ れる と き、 前の部分の下辺 と 、 後の部分の上辺を描き ません。 デ フ ォル ト : false round (float)範囲枠長方形の隣りあう線の頂点が、それらの接合点で、指定した半径を持ち、それら の線分を接線とする円弧によって丸められます。負の半径を指定すると、角が円形にへこむよう に弧が切り取られ、その接線は枠の線分に対して垂直になります。デフォルト:0(丸めなし) C++ Java C# double info_matchbox(String boxname, int num, String keyword) Perl PHP float info_matchbox(string boxname, int num, string keyword) C double PDF_info_matchbox(PDF *p, const char *boxname, int len, int num, const char *keyword) カ レ ン ト ページ上の範囲枠に関す る 情報を取得 し ます。 boxname (名前文字列) カ レ ン ト ページ上で こ の名前で作成 さ れた範囲枠の名前。 こ れ は、 その範囲枠が定義 さ れた際にその matchbox オプシ ョ ンの name サブオプシ ョ ンで作 成 さ れてい る 必要が あ り ま す。 あ る いは、 名前 「*」 (ア ス タ リ ス ク キ ャ ラ ク タ ) を用い て、 そ のペー ジ 上のすべ て の範囲枠に関す る 情報 を ク エ リ す る こ と も で き ま す。 空の boxname を用いて、 カ レ ン ト ページ上のすべての範囲枠長方形に関す る 情報を ク エ リ す る こ と も で き ます。 len (C 言語バ イ ンデ ィ ン グのみ) boxname の長 さ (バ イ ト 単位)。 len=0 にす る と null 終了文字列を与え る 必要があ り ます。 num 範囲枠ま たは長方形の正の番号 (1 か ら 数え る )。 keyword 求め る 情報を表 6.5 に従っ て指定 し た キーワー ド 。 戻り値 keyword で要求 さ れた何 ら かの範囲枠特性の値。 指定 さ れた名前の範囲枠、 ま たは指定 さ れた番号の範囲枠長方形が存在 し ない と き は、戻 り 値は、キーワ ー ド boundingbox・name・ rectangle に対 し ては -1 (PHP では 0) にな り 、 それ以外のすべてのキー ワー ド に対 し て は 0 にな り ます。 要求 さ れた キーワ ー ド がテ キ ス ト を生み出す場合には、 文字列番号が返 さ れ、 その照応す る 文字列を、 PDF_get_string( ) を用いて取得す る 必要があ り ます。 カ レ ン ト ス コ ープに応 じ て、 こ の関数は、 カ レ ン ト ページ ・ パ タ ーン ・ テ ンプ レー ト ・ グ リ フ記述上の範囲枠群に関す る 情報を返 し ます。 6.2 範囲枠 141 詳細 テ キ ス ト フ ロ ー内の名前付 き 範囲枠は、 PDF_fit_textflow( ) を呼び出 し た後にのみ取得す る こ と がで き ま す。 ブ ラ イ ン ド モー ド で作成 さ れた範囲枠を ク エ リ す る こ と はで き ませ ん。 キー ワー ド boundingbox ・ exists ・ height ・ name ・ rectangle ・ width ・ x1 ・ y1 ・ … ・ x4 ・ y4 に対す る 長方形は、 以下の よ う に選択 さ れます : > boxname が範囲枠の名前を内容 と し てい る と き : カ レ ン ト ページ上のその指定名の範 囲枠の num 番目の矩形を選択 し ます。 > boxname=* の と き : カ レ ン ト ページ上の num 番目の名前付 き 範囲枠の最初の矩形を選 択 し ます。 > boxname が空の と き :カ レ ン ト ページ上の名前付き 範囲枠に よ っ て作成 さ れた num 番 目の長方形を選択 し ます。 スコープ 文書 ・ オブ ジ ェ ク ト 以外任意 表 6.5 PDF_info_matchbox( ) のキーワー ド キーワー ド 説明 boundingbox 選択 さ れた長方形の外接枠を カ レ ン ト ユーザー座標系で表 し た ものを内容 と するパスオブ ジ ェ ク ト のハン ド ル、 あるいは指定 さ れた長方形が存在 し ない場合には -1 (PHP では 0)。 こ の外接枠 は、 範囲枠が回転 さ れている場合には、 その長方形 と は異な り ます。 count (num 引数は無視 さ れます) boxname が範囲枠の名前を内容 と し て持つ と き : こ の範囲枠の長方形の数 boxname=* の と き : 少な く と も 1 個の長方形を持つ範囲枠の数 boxname が空の と き : 名前付き範囲枠群に よ っ て作成 さ れた長方形の総数 exists 選択 さ れた長方形が存在 し ている な ら 1、 そ う でないな ら 0。 height1 選択 さ れた長方形の高 さ をユーザー座標で表 し た もの name 選択 さ れた長方形が作成 さ れた目的であ る範囲枠の名前の文字列番号。 照応する文字列は、 PDF_ get_string( ) で取得で き ます。 rectangle 選択 さ れた長方形をユーザー座標で表 し た ものを内容 と し て持つパスオブ ジ ェ ク ト のハン ド ル、、 あるいはその長方形が見つから なかっ た と き には -1 (PHP では 0) width1 選択 さ れた長方形の幅をユーザー座標で表 し た もの x1 ・ y1 ・ … x4 ・ y41 選択 さ れた長方形の i 番目の隅 (i=1, 2, 3, 4) の位置を、 ユーザー座標で表 し た も の。 それぞれのは め込み要素 (画像 ・ テキス ト 等) の座標系で、 x1, y1 は左上、 x2, y2 は左下、 x3, y3 は右下、 x4, y4 は右上隅に対応 し ます。 1. このキーワー ド は、 boxname=* の と きは無視 さ れます 142 第 6 章 : オブ ジ ェ ク ト のはめ込み と 範囲枠 7 グ ラ フ ィ ッ ク関数 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの graphics/starter_graphics ト ピ ッ ク にあ り ます。 7.1 グ ラ フ ィ ッ ク 書式オ プ シ ョ ン グ ラ フ ィ ッ ク 書式オ プ シ ョ ン 表 7.1 のグ ラ フ ィ ッ ク 書式オプシ ョ ンは、以下の関数で使 え ます (なお、 すべての関数がすべてのオプシ ョ ン に対応 し てい る わけではあ り ません。 詳 し く は関数の説明を参照 し て く だ さ い) : > PDF_set_graphics_option( ) > PDF_create_gstate( ) (flatness ・ linecap ・ linejoin ・ linewidth ・ miterlimit のみ) > PDF_add_path_point( ) ・ PDF_draw_path( ) > PDF_fit_table( ) の塗 り オプシ ョ ン (fillcolor ・ shading のみ) と 、 PDF_fit_table( ) の描線オプシ ョ ン (dasharray ・ dashphase ・ linecap ・ linejoin ・ linewidth ・ strokecolor のみ) > さ ま ざ ま な関数の matchbox オプシ ョ ン 表 7.1 グ ラ フ ィ ッ ク 書式オプ シ ョ ン オプ シ ョ ン 説明 ・ と り う る値 cliprule (キーワー ド ) 切 り 抜きのための領域の内面を決定する切 り 抜き規則。 と り う るキーワー ド につい ては fillrule を参照 し て く だ さ い。 デ フ ォル ト : fillrule オプ シ ョ ンの値 borderwidth (float。 範囲枠のみ) 長方形の境界の線幅。 borderwidth を 0 よ り 大き い値に設定する と 、 すべて の長方形の境界が描線 さ れます。 上 ・ 下 ・ 左 ・ 右の境界が描線 さ れないよ う にするには、 それぞ れ drawtop ・ drawbottom ・ drawleft ・ drawright オプ シ ョ ン を false に設定 し ます。 デ フ ォル ト : 0 dasharray (2 個の非負 float の リ ス ト かキーワー ド ) 描線 さ れるパスの短線 と 間隙の長 さ (ユーザー座標系で 測 っ た も の) を交互に指定 し た 2 ~ 12 個の値の リ ス ト 。 こ れらの配列値は負であ っ てはいけませ ん。 これ らは、 パス全体が描線 さ れる ま で循環的に再利用 さ れます。 キーワー ド none を用いる と 、 実線を作成する こ と がで き ます。 デ フ ォル ト : none dashphase (float) 破線パ タ ーン内で短線を開始する ま での距離。 デ フ ォ ル ト : 0 fillcolor (Color) 領域の塗 り 色。 デ フ ォル ト : 通常は {gray 0} (PDF/A モー ド の場合 : {lab 0 0 0})、 ただ し 表 ・ 範囲枠の場合は none fillrule flatness (キーワー ド ) 領域の、 塗 り と 切 り 抜きの際の内側を決定する塗 り 規則 (デ フ ォ ル ト : winding) : winding 非ゼロ巻数規則を用います。 単純な形状の 場合、 塗 り の結果は直感的見込み と 一致 し ます。 複数のパスから 成る形状の場合には、 パスの方向が意味を持ち ます。 evenodd 偶奇規則を用います。 こ れは、 単純な形状 では winding と 同 じ 結果を得ますが、 よ り 複雑な形状、 と り わけ自己交差するパスで は異な る結果を生 じ ます。 (float > 0) 円弧または曲線 と 、 線分群から 成る近似表現 と の最大間隔を示 し た (デバイ ス ピ ク セ ル単位で) 正の数。 デ フ ォル ト : 1 7.1 グ ラ フ ィ ッ ク書式オプ シ ョ ン 143 表 7.1 グ ラ フ ィ ッ ク書式オプ シ ョ ン オプ シ ョ ン 説明 ・ と り う る値 gstate (グ ラ フ ィ ッ ク ス テー タ スハン ド ル) PDF_create_gstate( ) で取得 し たグ ラ フ ィ ッ ク ス テー タ スのハ ン ド ル。 デ フ ォ ル ト : グ ラ フ ィ ッ ク ス テー タ スな し (すなわち、 カ レ ン ト 設定が用い られます) initgraphicsstate (論理値。 PDF_set_graphics_option( ) でのみ可) true の場合、 すべてのグ ラ フ ィ ッ ク 書式オプ シ ョ ンがそのデ フ ォ ル ト 値で初期化 さ れます。 カ レ ン ト ク リ ッ ピ ングパスは影響を受けません。 false の場合、 カ レ ン ト グ ラ フ ィ ッ ク ス テー ト 値群が用い ら れます。 デ フ ォル ト : false linecap (整数ま たはキーワー ド ) パスの終端の形状 (デ フ ォ ル ト : PDF_fit_table( ) では projecting、 それ 以外では butt) : butt (同等な値 : 0) バ ッ ト 線端 : パスの終端で描線を四角 く 切 り ま す。 round (同等な値 : 1) 丸型線端 : 終端を中心 と し 、 線幅に等 し い直径 を持つ半円を描き、 塗 り ます。 projecting (同等な値 : 2) 突出線端 : 線の終端から、 線幅の半分だけ描線 を延長 し 、 四角 く 切 り ます。 linejoin (整数ま たはキーワー ド ) パスの角の形状 (デ フ ォ ル ト : miter) : miter (同等な値 : 0) マ イ タ ー結合 : 2 本の線分の描線の外辺を、 互いに出会 う ま で延ば し ます。 そ う する と マ イ タ ー リ ミ ッ ト に よ る指定よ り も遠 く ま で延 びて し ま う と きは、 ベベル結合がかわ り に用い られます。 round (同等な値 : 1) ラ ウ ン ド 結合 : 線分ど う し の交点を中心 と し 、 線幅に等 し い半径の円弧を描き、 塗る こ と で、 角を丸 く し ます。 bevel (同等な値 : 2) ベベル結合 : 2 本のパス線分をバ ッ ト 線端で描き (linecap の説明を参照)、 終端ど う し の間に生 じ る三角形の切れ込みを塗 り ます。 linewidth (float > 0) 線幅。 デ フ ォル ト : 1 miterlimit (float ≧ 1) マ イ タ ー結合に よ っ て形成 さ れる く さ び型を制御 し ます (デ フ ォル ト : 10。 こ れは角度に し ておよ そ 11.5 度にあた り ます)。 線結合ス タ イル linejoin を 0 (マ イ タ ー結合) に設定する と 、 2 本の 線分が出会 う 角度が小 さ い と きは、 鋭い く さ び型が形作られます。 マ イ タ ー長 と 線幅 と の比がマ イ タ ー リ ミ ッ ト を超え る と き、 こ の く さ び 型を平坦な終端に置き換え ます (すなわち マ イ タ ー結合をベベル結合 に変更 し ます)。 shading (表 7.2 に従っ たオプ シ ョ ン リ ス ト 。 範囲枠 ・ 表のみ) 範囲枠の長方形 (群) ま たは表領域の シ ェ ーデ ィ ン グ を指定 し ます。 fillcolor オプ シ ョ ンの値が (指定 し ていれば)、 またはカ レ ン ト 塗 り 色が開始色 と し て用い られます。 strokecolor (色) パスの描線色。 デ フ ォル ト : 通常は {gray 0} (PDF/A モー ド の場合 : {lab 0 0 0})、 ただ し 表 ・ 範囲枠の場合は none 144 第 7 章 : グ ラ フ ィ ッ ク 関数 表 7.2 グ ラ フ ィ ッ ク 書式オプ シ ョ ン shading のサブオプ シ ョ ン オプ シ ョ ン 説明 antialias (論理値) シ ェ ーデ ィ ングの際にア ン チエ イ リ ア シ ング を有効にするかど う かを指定 し ます。 デ フ ォ ル ト : false domain (float 2 個の リ ス ト ) 変数 t の限界値を指定 し た 2 個の数値。 こ の変数は、 色勾配が軸の始点 と 終 点の間を変動するにつれて、 こ の 2 値の間を線形的に変動する と 考え られます。 デ フ ォ ル ト : {0 1} end (float 2 個かパーセ ン ト 値 2 個の リ ス ト ) シ ェ ーデ ィ ング軸に対する終点の (type=axial)、 または 半径を算出する ための円上の点の (type=radial) x ・ y 座標を、 長方形の幅 ・ 高 さ に対するパーセ ン ト 値で、 ま たはユーザー座標で指定 し ます。 デ フ ォ ル ト : {100% 100%} endcolor (色。 必須) 終点の色 N (float) 色遷移関数に対する累乗指数。 > 0 にする必要があ り ます。 デ フ ォ ル ト : 1 start (float 2 個かパーセ ン ト 値 2 個の リ ス ト ) シ ェ ーデ ィ ング軸に対する始点の (type=axial)、 または シ ェ ーデ ィ ング円の中心の (type=radial) x ・ y 座標を、 長方形の幅 ・ 高 さ に対するパーセ ン ト 値 で、 ま たはユーザー座標で指定 し ます。 デ フ ォ ル ト : {0% 0%} type (キーワー ド ) シ ェ ーデ ィ ングの種類 : axial (線形シ ェ ーデ ィ ング) か radial (放射シ ェ ーデ ィ ング)。 デ フ ォル ト : axial C++ Java C# void set_graphics_option(String optlist) Perl PHP set_graphics_option(string optlist) C void PDF_set_graphics_option(PDF *p, const char *optlist) 1 個ない し 複数のグ ラ フ ィ ッ ク 書式オプシ ョ ン を設定 し ます。 optlist 表 7.1 に従っ て グ ラ フ ィ ッ ク 書式オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以 下のオプシ ョ ン を使え ます : cliprule ・ dasharray ・ dashphase ・ fillcolor ・ fillrule ・ flatness ・ gstate ・ initgraphicsstate ・ linecap ・ linejoin ・ linewidth ・ miterlimit ・ strokecolor 詳細 グ ラ フ ィ ッ ク 書式オプシ ョ ン群は、以下の関数のグループのためのグ ラ フ ィ ッ ク ス テー ト を設定 し ます : > 明示的描画関数 : PDF_stroke( ) ・ PDF_fill( ) な ど > 暗黙的描画関数 : PDF_fit_textline( ) ・ PDF_fit_textflow( ) の showborder オプシ ョ ン な ど > テ キ ス ト オプシ ョ ン群を用いて色が設定 さ れていない場合に、 単純テ キ ス ト 出力関数 群を用いて作成 さ れ る テ キ ス ト 出力 : PDF_show( ) な ど すべてのグ ラ フ ィ ッ ク 書式オプシ ョ ンは、 ページ ・ パ タ ーン ・ テ ンプ レー ト ・ グ リ フ定義 の開始でそれ ら のデフ ォ ル ト 値へ リ セ ッ ト さ れ、 カ レ ン ト ページ ・ ページ ・ テ ン プ レ ー ト ・ グ リ フ ス コ ープの終了ま でそれ ら の値を保持 し ます。 ただ し 、 こ のグ ラ フ ィ ッ ク 書式 オプシ ョ ン群を initgraphicsstate オプシ ョ ン を用いて リ セ ッ ト する こ と も で き ます。 以後の PDF_setcolor( ) への呼び出 し は、 fillcolor お よ び / ま たは strokecolor 値を オーバ ラ イ ド し ます。 以後の PDF_setlinewidth( ) への呼び出 し は linewidth 値を オーバ ラ イ ド し ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 7.1 グ ラ フ ィ ッ ク書式オプ シ ョ ン 145 7.2 グ ラ フ ィ ッ ク ス テ ー タ ス C++ Java C# void setlinewidth(double width) Perl PHP setlinewidth(float width) C void PDF_setlinewidth(PDF *p, double width) カ レ ン ト 線幅を設定 し ます。 width 詳細 線幅を、 ユーザー座標系の単位で指定 し ます。 こ の関数は、 グ ラ フ ィ ッ ク 状態の線幅 (PDF_set_graphics_option( ) 参照) と テ キ ス ト 状態 の描線幅 (PDF_set_text_option( ) 参照) を設定 し ます。 width 引数は各ページの開始時に デフ ォ ル ト 値 1 に リ セ ッ ト さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ C++ Java C# void save( ) Perl PHP save( ) C void PDF_save(PDF *p) カ レ ン ト グ ラ フ ィ ッ ク ス テー タ ス を ス タ ッ ク に保存 し ます。 詳細 グ ラ フ ィ ッ ク ス テー タ ス は、 あ ら ゆ る 種類の グ ラ フ ィ ッ ク オブジ ェ ク ト を制御す る オプ シ ョ ン群を持っ てい ます。 グ ラ フ ィ ッ ク ス テー タ ス の保存は、 PDF に よ っ て必要 と さ れて い る わけではな く 、 アプ リ ケーシ ョ ンが後で、 オプシ ョ ン をすべて明示的に設定 し なおす こ と な し にいずれかのグ ラ フ ィ ッ ク ス テー タ ス (カ ス タ ムの座標系等) へ戻 り たい と き に のみ必要です。 以下の項目が保存 ・ 復帰の対象にな り ます。 > グ ラ フ ィ ッ ク 書式オプシ ョ ン : ク リ ッ ピ ン グパ ス ・ 座標系 ・ カ レ ン ト 点 ・ 平坦度許容量 ・ 線端ス タ イ ル ・ 破線パ タ ー ン ・ 線結合ス タ イ ル ・ 線幅 ・ マ イ タ ー リ ミ ッ ト 。 > 色オプシ ョ ン : 塗 り ・ 描線色。 > PDF_set_gstate( ) で明示グ ラ フ ィ ッ ク ス テー タ ス に よ っ て設定 し てい る グ ラ フ ィ ッ ク オプシ ョ ン。 > テ キ ス ト 位置 と 、 以下のテ キ ス ト 書式オプシ ョ ン : charspacing・decorationabove・fakebold・font・fontsize・horizscaling・italicangle・leading・ strokewidth ・ textrendering ・ textrise ・ underlineposition ・ underlinewidth ・ wordspacing PDF_save( ) と PDF_restore( ) のペアは、 ネ ス ト さ せる こ と も で き ます。 PDF 規格では、 保 存 ・ 復帰のペアのネ ス ト 階層の深 さ に制限はあ り ませんが、 さ ま ざ ま な PDF ビ ュ ーアが 生成す る PostScript 出力の持つ制約が引 き 起 こ す印刷上の問題を避け る ために も 、 ま た、 PDFlib が内部的に必要 と す る 保存階層を確保する ために も 、アプ リ ケーシ ョ ンではネ ス ト 階層の深 さ を 26 未満に抑え てお く 必要があ り ます。 多 く のテ キ ス ト オプシ ョ ンは、 保存 / 復帰に よ っ て影響を受け ます。 上記の一覧を参 照 し て く だ さ い。 以下のテ キ ス ト オプシ ョ ンは保存 / 復帰に影響を受け ません : fillrule ・ kerning ・ underline ・ overline ・ strikeout。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 。 照応する PDF_restore( ) と 必ずペアに し て呼 び出す必要があ り ます。 PDF_save( ) と PDF_restore( ) への呼び出 し は、 ページ ・ パ タ ーン ・ テ ンプ レー ト ・ グ リ フ記述ご と に同数にす る 必要があ り ます。 146 第 7 章 : グ ラ フ ィ ッ ク 関数 C++ Java C# void restore( ) Perl PHP restore( ) C void PDF_restore(PDF *p) も っ と も 最近に ス タ ッ ク に保存 し た グ ラ フ ィ ッ ク ス テー タ ス に復帰 し ます。 詳細 そのグ ラ フ ィ ッ ク ス テー タ ス は、同 じ ページかパ タ ーンかテ ンプ レー ト で保存 し て あ る 必 要があ り ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ。 照応す る PDF_save( ) と 必ずペアに し て呼び 出す必要があ り ます。 PDF_save( ) と PDF_restore( ) への呼び出 し は、 ページ ・ パ タ ーン ・ テ ンプ レー ト ・ グ リ フ記述ご と に同数にす る 必要があ り ます。 C++ Java C# int create_gstate(String optlist) Perl PHP int create_gstate(string optlist) C int PDF_create_gstate(PDF *p, const char *optlist) グ ラ フ ィ ッ ク ス テー タ ス オブジ ェ ク ト を、 さ ま ざ ま なオプシ ョ ンに従っ て作成 し ます。 optlist グ ラ フ ィ ッ ク ス テー タ ス オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 表 7.1 に従っ た グ ラ フ ィ ッ ク 書式オプシ ョ ン群 : flatness ・ linecap ・ linejoin ・ linewidth ・ miterlimit > 表 7.3 に従っ た グ ラ フ ィ ッ ク ス テー タ ス オプシ ョ ン群 : alphaisshape ・ blendmode ・ opacityfill ・ opacitystroke ・ overprintfill ・ overprintmode ・ overprintstroke ・ renderingintent ・ smoothness ・ softmask ・ strokeadjust ・ textknockout 戻り値 グ ラ フ ィ ッ ク ス テー タ スハン ド ル。 以後の PDF_set_gstate( ) への呼び出 し で、 カ レ ン ト の 文書ス コ ープが続 く 限 り 使え ます。 詳細 オプシ ョ ン リ ス ト は、任意の数のグ ラ フ ィ ッ ク ス テー タ ス オプシ ョ ン を内容 と し て持つ こ と がで き ます。 スコープ オブ ジ ェ ク ト 以外任意 表 7.3 PDF_create_gstate( ) のオプ シ ョ ン キー 説明 ・ と り う る値 alphaisshape (論理値) アルフ ァ の供給元の扱いを、 輪郭 (true) か不透過 (false) に し ます。 デ フ ォ ル ト : false blendmode (キーワー ド の リ ス ト 。 PDF/X-1/3 ・ PDF/A-1 では値 Normal にする必要があ り ます) ブ レ ン ド モー ド の名前。 複数のブ レ ン ド モー ド を指定する こ と も で き ます。 と り う る値 : Color ・ ColorDodge ・ ColorBurn ・ Darken ・ Difference ・ Exclusion ・ HardLight ・ Hue ・ Lighten ・ Luminosity ・ Multiply ・ None ・ Normal ・ Overlay ・ Saturation ・ Screen ・ SoftLight。 デ フ ォ ル ト : None opacityfill (float かパーセ ン ト 値。 PDF/A-1 ・ PDF/X-1/3 では値 1 にする必要があ り ます) 塗 り 操作 での不透明度を、 範囲 0 ~ 1 で指定 し ます。 値 0 は完全に透過を意味 し ます。 値 1 は完全 に不透明を意味 し ます。 opacitystroke (float かパーセ ン ト 値。 PDF/A-1 ・ PDF/X-1/3 では値 1 にする必要があ り ます) 描線操作 での不透明度を、 範囲 0 ~ 1 で指定 し ます。 値 0 は完全に透過を意味 し ます。 値 1 は完全 に不透明を意味 し ます。 7.2 グ ラ フ ィ ッ ク ス テー タ ス 147 表 7.3 PDF_create_gstate( ) のオプ シ ョ ン キー 説明 ・ と り う る値 overprintfill (論理値) 塗 り 操作でのオーバープ リ ン ト 。 デ フ ォ ル ト : false overprintmode (整数) オーバープ リ ン ト モー ド 。 こ れは、 1 個の色要素が 0 である場合の DeviceCMYK カ ラ ー内の要素群のオーバープ リ ン ト 動作を変更 し ます。 こ のオーバープ リ ン ト モー ド は、 DeviceCMYK カ ラ ーで描画 さ れる テキス ト ・ ベ ク ト ル要素に影響を与え ますが、 画像 ・ シ ェ ーデ ィ ングパ タ ーン には影響を与え ません。 オーバープ リ ン ト モー ド 0 (ゼロ) にす る と 、 それぞれの色要素が、 それ以前に配置 さ れたマー ク を置き換え ます (「前面色優 先」)。 オーバープ リ ン ト モー ド 1 にする と 、 0 の色要素が、 そ こ の要素を変更 し ないま ま に し ます (「前面濃度値 0 を無視」)。 PDF/A-2/3 : カ レ ン ト 色空間が ICC ベース CMYK であ り 、 かつ overprintfill か overprintstroke が true の場合には、 overprintmode=1 は許容 さ れません。 デ フ ォ ル ト : 0 overprintstroke (論理値) 描線操作でのオーバープ リ ン ト 。 デ フ ォ ル ト : false renderingintent (キーワー ド ) 色域圧縮のために用いたい カ ラ ーレ ン ダ リ ング イ ン テ ン ト 。 と り う るキー ワー ド : Auto ・ AbsoluteColorimetric ・ RelativeColorimetric ・ Saturation ・ Perceptual smoothness (float) シ ェ ーデ ィ ングにおける線形内挿の最大誤差。 ≧ 0 かつ≦ 1 にする必要があ り ます softmask (オプ シ ョ ン リ ス ト またはキーワー ド ) 透過画像処理のためのマ ス ク 画像または不透明度値 を持 っ た カ レ ン ト ソ フ ト マス ク 。 使え るオプ シ ョ ン と キーワー ド (デ フ ォ ル ト : none) : backdropcolor (float 1 個か 3 個か 4 個の リ ス ト 。 type=luminosity の場合のみ可) 透過グルー プ テ ン プ レー ト を構築する際の背景 と し て用いたい色。 float 値の数は、 透過グ ループ テ ン プ レー ト を作成 し た際に用いた transparencygroup オプ シ ョ ンの colorspace サブオプ シ ョ ンに依存 し ます (DeviceGray な ら 1 個、 DeviceRGB な ら 3 個、 DeviceCMYK な ら 4 個)。 デ フ ォル ト : それぞれのカ ラ ースペースにお ける黒 (キーワー ド ) ソ フ ト マス ク な し 。 こ れは、 直前に設定 さ れたグ ラ フ ィ ッ ク ス テー タ スから 効力を持っ ているか も し れない ソ フ ト マス ク を無効にする ために 必要です。 template (テ ン プ レー ト ハン ド ル。 必須) PDF_begin_template_ext( ) と transparencygroup オプ シ ョ ン を用いて作成 さ れた透過グループ テ ン プ レー ト 。 type=luminosity の と きは こ のテ ン プ レー ト は colorspace サブオプ シ ョ ン で none 以外の値を用い て作成 さ れている必要があ り ます。 none type (キーワー ド 。 必須) 透過グループ テ ン プ レー ト か ら マス ク値を導出する ための 方式 : alpha 透過グループのアル フ ァ 値を用い、 色を無視 し ます。 luminosity 透過グループの色を、 1 要素の輝度値へ変換 し ます。 strokeadjust (論理値) 自動描線調整を適用するかど う か。 デ フ ォル ト : false textknockout (論理値) 色版合成に関 し て、 テキス ト 内のグ リ フ群を、 ばら ばら に扱 う (false) か、 単 体 と し て扱 う (true) かを指定 し ます。 デ フ ォ ル ト : true C++ Java C# void set_gstate(int gstate) Perl PHP set_gstate(int gstate) C void PDF_set_gstate(PDF *p, int gstate) グ ラ フ ィ ッ ク ス テー タ ス オブジ ェ ク ト を呼び出 し ます。 gstate ル。 148 PDF_create_gstate( ) で取得 し た グ ラ フ ィ ッ ク ス テー タ ス オブ ジ ェ ク ト のハ ン ド 第 7 章 : グ ラ フ ィ ッ ク 関数 詳細 グ ラ フ ィ ッ ク ス テー タ ス オブジ ェ ク ト が持つすべてのオプシ ョ ンが設定 さ れます。 こ の関 数を複数回呼び出す と 、 グ ラ フ ィ ッ ク ス テー タ ス のオプシ ョ ンは蓄積 さ れてい き ます。 グ ラ フ ィ ッ ク ス テー タ ス オブジ ェ ク ト の中で明示的に設定 さ れていないオプシ ョ ン につい ては、 そのカ レ ン ト の値の ま ま にな り ます。 グ ラ フ ィ ッ ク ス テー タ ス のオプシ ョ ンはすべ て、 ページの始ま り ご と に、 それぞれのデフ ォ ル ト 値に リ セ ッ ト さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 7.2 グ ラ フ ィ ッ ク ス テー タ ス 149 C++ Java C# void setdash(double b, double w) Perl PHP setdash(float b, float w) C void PDF_setdash(PDF *p, double b, double w) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void setdashpattern(String optlist) Perl PHP setdashpattern(string optlist) C void PDF_setdashpattern(PDF *p, const char *optlist) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void setflat(double flatness) Perl PHP setflat(float flatness) C void PDF_setflat(PDF *p, double flatness) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void setlinejoin(int linejoin) Perl PHP setlinejoin(int linejoin) C void PDF_setlinejoin(PDF *p, int linejoin) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void setlinecap(int linecap) Perl PHP setlinecap(int linecap) C void PDF_setlinecap(PDF *p, int linecap) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void setmiterlimit(double miter) Perl PHP setmiterlimit(float miter) C void PDF_setmiterlimit(PDF *p, double miter) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 C++ Java C# void initgraphics( ) Perl PHP initgraphics( ) C void PDF_initgraphics(PDF *p) 非推奨。 PDF_set_graphics_option( ) を使用 し て く だ さ い。 150 第 7 章 : グ ラ フ ィ ッ ク 関数 7.3 座標系の変換 変換関数 (PDF_translate( ) ・ PDF_scale( ) ・ PDF_rotate( ) ・ PDF_align( ) ・ PDF_skew( ) ・ PDF_ concat( ) ・ PDF_setmatrix( ) ・ PDF_initgraphics( ) と 、 PDF_set_graphics_option( ) の initgraphicsstate オプシ ョ ン) はすべて、以後のオブジ ェ ク ト を描 く ために使われ る 座標系 を変更 し ます。 ページにすでに存在 し てい る オブジ ェ ク ト では効力を持ち ません。 C++ Java C# void translate(double tx, double ty) Perl PHP translate(float tx, float ty) C void PDF_translate(PDF *p, double tx, double ty) 座標系の原点を平行移動 さ せます。 tx ・ ty 座標系の新 し い原点 (tx, ty) を、 古い座標系で測 り ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ C++ Java C# void scale(double sx, double sy) Perl PHP scale(float sx, float sy) C void PDF_scale(PDF *p, double sx, double sy) 座標系を拡縮 し ます。 sx ・ sy 詳細 x ・ y 方向の拡縮倍率。 こ の関数は、 座標系を sx 倍 ・ sy 倍 し ます。 負の倍率を使っ て、 反転 (鏡映) を行わせ る こ と も で き ます。 新 し い座標系におけ る x 方向の 1 単位は、 古い座標系におけ る x 方向の sx 単位 と 等 し く な り ます。 y 座標について も 同様です。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ バインディング COM : VB のバグ を回避する ため、 こ の関数は pscale と い う 名前で も 得 ら れます。 C++ Java C# void rotate(double phi) Perl PHP rotate(float phi) C void PDF_rotate(PDF *p, double phi) 座標系を回転 さ せます。 phi 回転角を度単位で指定 し ます。 詳細 角度は、 カ レ ン ト 座標系の x 軸正の向 き か ら の反時計回 り で測 り ます。 新 し い座標軸は、 古い座標軸を phi 度回転 さ せ る こ と に よ っ て得 ら れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 7.3 座標系の変換 151 C++ Java C# void align(double dx, double dy) Perl PHP align(float dx, float dy) C void PDF_align(PDF *p, double dx, double dy) 座標系の方向を相対ベ ク ト ル と 同 じ に し ます。 dx ・ dy 方向ベ ク ト ルの座標。 dx と dy を両方 0 に し てはいけ ません。 詳細 座標系を回転 し 、 新 し い座標系の x 軸の方向がベ ク ト ル (dx, dy) と 同 じ にな り 、 y 軸の方 向が (-dy, dx) と 同 じ にな る よ う に し ます。 こ れは PDF_rotate( ) で phi=180°/ pi×atan2(dy/dx) と し た場合 と 等価です。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ C++ Java C# void skew(double alpha, double beta) Perl PHP skew(float alpha, float beta) C void PDF_skew(PDF *p, double alpha, double beta) 座標系を斜形化 し ます。 alpha ・ beta x ・ y 方向の斜形化角を、 度単位で指定 し ます。 詳細 斜形化 (シ アー と も い う ) と は、 座標系を x ・ y 方向へ指定の角度だけ歪め ます。 alpha は、 カ レ ン ト 座標系の x 軸正の向 き か ら の反時計回 り で表 さ れ、 beta は、 y 軸正の向 き か ら の時計回 り で測 り ます。 ど ち ら の角度 も 、 90° の奇数倍に し てはいけ ません。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ C++ Java C# void concat(double a, double b, double c, double d, double e, double f) Perl PHP concat(float a, float b, float c, float d, float e, float f) C void PDF_concat(PDF *p, double a, double b, double c, double d, double e, double f) カ レ ン ト 座標系に変換行列を適用 し ます。 a ・ b ・ c ・ d ・ e ・ f 変換行列の各要素。 6 個の値は、 PostScript ・ PDF と 同 じ 方式で行列 を構成 し ます (各 リ フ ァ レ ン ス を参照)。 縮退変換を避け る ため、 a×d を b×c に等 し く し てはいけ ません。 詳細 こ の関数を使 う と 、 も っ と も 一般化 さ れた形で変換を行え ます。 変換行列の使い方が よ く わか ら ないな ら 、 こ の関数でな く 、PDF_translate( )・PDF_scale( )・PDF_rotate( )・PDF_skew( ) の使用を推奨 し ます。 座標系は、 ページの始ま り ご と にデフ ォ ル ト 座標系 (すなわち、 カ レ ン ト 変換行列が単位行列 [1, 0, 0, 1, 0, 0]) に リ セ ッ ト さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 152 第 7 章 : グ ラ フ ィ ッ ク 関数 C++ Java C# void setmatrix(double a, double b, double c, double d, double e, double f) Perl PHP setmatrix(float a, float b, float c, float d, float e, float f) C void PDF_setmatrix(PDF *p, double a, double b, double c, double d, double e, double f) カ レ ン ト 変換行列を明示的に設定 し ます。 a・b・c・d・e・f 詳細 PDF_concat( ) 参照。 こ の関数は PDF_concat( ) に似てい ます。 ただ し 、 カ レ ン ト 変換行列を捨てて、 新 し い行 列に置 き 換え ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 7.3 座標系の変換 153 7.4 パス構築 注 こ の節の関数を使っ た後は、 必ず 158 ページ 「7.5 描画 と ク リ ッ ピ ング」 の関数のいずれ かを呼び出 し て く だ さ い。 そ う でない と 、 作成 し たパスは何の効果も な く 、 その後の操作 が例外を発生 さ せる こ と があ り ます。 PDF/UA ベ ク ト ルグ ラ フ ィ ッ ク は、 PDF_begin_item( ) への呼び出 し を用いて Artifact か Figure と し て タ グ付けす る 必要があ り ます。 C++ Java C# void moveto(double x, double y) Perl PHP moveto(float x, float y) C void PDF_moveto(PDF *p, double x, double y) グ ラ フ ィ ッ ク 出力のためのカ レ ン ト 点を設定 し ます。 x・y 詳細 新 し いカ レ ン ト 点の座標。 カ レ ン ト 点は、 ページの始ま り ご と に、 デフ ォ ル ト 値であ る 未定義に設定 さ れます。 グ ラ フ ィ ッ ク のカ レ ン ト 点 と 、 カ レ ン ト テ キ ス ト 位置は、 別々に保持 さ れます。 スコープ ページ ・パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・パス。こ の関数はパス ス コ ープを開始 さ せます。 C++ Java C# void lineto(double x, double y) Perl PHP lineto(float x, float y) C void PDF_lineto(PDF *p, double x, double y) カ レ ン ト 点か ら 別の点へ線を描 き ます。 x・y 詳細 線の終点の座標。 こ の関数は、 カ レ ン ト 点か ら (x, y) ま での直線を、 カ レ ン ト パ ス に追加 し ます。 カ レ ン ト 点は、 こ の関数を使 う 前に設定 し てお く 必要があ り ます。 点 (x, y) が新たにカ レ ン ト 点に な り ます。 こ の線は、 「理想の線」 を中心軸 と し て描かれます。 すなわち、 2 個の端点を結ぶ線の 両側に、 線幅 (linewidth オプシ ョ ンの値に よ っ て決定 さ れ る ) の半分ずつが描かれます。 終端での動作は、 linecap オプシ ョ ンに よ っ て決定 さ れます。 スコープ パス C++ Java C# void curveto(double x1, double y1, double x2, double y2, double x3, double y3) Perl PHP curveto(float x1, float y1, float x2, float y2, float x3, float y3) C void PDF_curveto(PDF *p, double x1, double y1, double x2, double y2, double x3, double y3) カ レ ン ト 点か ら 、 3 個の制御点を用いて、 ベジエ曲線を描 き ます。 x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 詳細 カ レ ン ト 点か ら (x3, y3) ま でのベジエ曲線を、 (x1, y1) と (x2, y2) を制御点 と し て使っ て、 カ レ ン ト パ ス に追加 し ます。 カ レ ン ト 点は、 こ の関数を使 う 前に設定 し てお く 必要があ り ま す。 曲線の終点が新たにカ レ ン ト 点にな り ます。 スコープ パス 154 3 個の制御点の座標。 第 7 章 : グ ラ フ ィ ッ ク 関数 C++ Java C# void circle(double x, double y, double r) Perl PHP circle(float x, float y, float r) C void PDF_circle(PDF *p, double x, double y, double r) 円を描 き ます。 x・y r 詳細 円の中心の座標。 円の半径。 こ の関数は、 円を完全なサブパス と し て、 カ レ ン ト パ ス に追加 し ます。 点 (x + r, y) が新た にカ レ ン ト 点にな り ます。 描かれ る 形は、 ユーザー座標系において円にな り ます。 座標系 を、 x ・ y 方向で違 う 倍率で拡縮 し てい る と き は、 描かれ る 曲線は楕円にな り ます。 こ の 円は反時計回 り の向 き に作成 さ れます。 スコープ ページ ・パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・パス。 こ の関数はパス ス コ ープ を開始 さ せます。 バインディング COM : VB 6 のバグ を回避す る ため、 こ の関数は pcircle と い う 名前で も 得 ら れます。 C++ Java C# void arc(double x, double y, double r, double alpha, double beta) Perl PHP arc(float x, float y, float r, float alpha, float beta) C void PDF_arc(PDF *p, double x, double y, double r, double alpha, double beta) 円弧を、 反時計周 り で描 き ます。 x・y r 円弧の中心の座標。 円弧の半径。 r は非負にす る 必要があ り ます。 alpha ・ beta 詳細 円弧の開始角 と 終了角を、 度単位で指定 し ます。 こ の関数は、 alpha 度か ら beta 度ま での反時計回 り の円弧を、 カ レ ン ト パ ス に追加 し ま す。 PDF_arc( ) で も PDF_arcn( ) で も 、 角度は、 カ レ ン ト ユーザー座標系におけ る x 軸正の 向 き か ら の反時計回 り で指定 し ます。 カ レ ン ト 点があ る と き は、 カ レ ン ト 点か ら 円弧の始 点ま での直線 も 描かれます。 円弧の終点が新たにカ レ ン ト 点にな り ます。 円弧は、 ユーザー座標系において部分円にな り ます。 座標系を、 x ・ y 方向で違 う 倍率 で拡縮 し てい る と き は、 描かれ る 曲線は部分楕円にな り ます。 スコープ ページ ・パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・パス。 こ の関数はパス ス コ ープ を開始 さ せます。 C++ Java C# void arcn(double x, double y, double r, double alpha, double beta) Perl PHP arcn(float x, float y, float r, float alpha, float beta) C void PDF_arcn(PDF *p, double x, double y, double r, double alpha, double beta) 円弧を、 時計回 り で描 き ます。 詳細 描画方向以外は、 こ の関数は PDF_arc( ) と ま っ た く 同 じ 動作を し ます。 特に角度は、 こ の 関数で も x 軸正の向 き か ら の反時計回 り で指定 し ます。 7.4 パス構築 155 C++ Java C# void circular_arc(double x1, double y1, double x2, double y2) Perl PHP circular_arc(float x1, float y1, float x2, float y2) C void PDF_circular_arc(PDF *p, double x1, double y1, double x2, double y2) 3 個の点に よ っ て定義 さ れ る 円弧線分を描 き ます。 詳細 x1 ・ y1 円弧線分上の任意の点の座標。 x2 ・ y2 円弧線分の終点の座標。 こ の関数は、 カ レ ン ト パス に円弧線分を追加 し ます。 こ の円弧線分はカ レ ン ト 点を始点 と し 、 (x1, y1) を通っ て、 (x2, y2) を終点 と し ます。 こ の関数を使 う 前にカ レ ン ト 点を設定す る 必要があ り ます。 こ の曲線の終点が新たにカ レ ン ト 点 と な り ます。 こ の円弧線分はユーザー座標系において円形にな り ます。 座標系が x 方向 と y 方向で 異な る 拡縮を さ れてい る と き は、 生成 さ れ る 曲線は楕円形にな り ます。 スコープ パス C++ Java C# void ellipse(double x, double y, double rx, double ry) Perl PHP ellipse(float x, float y, double rx, double ry) C void PDF_ellipse(PDF *p, double x, double y, double rx, double ry) 楕円を描き ます。 x・y rx ・ ry 詳細 楕円の中心の座標。 楕円の x 半径 と y 半径。 こ の関数は、 カ レ ン ト パ ス に楕円を、 完全なサブパ ス と し て追加 し ます。 点 (x + rx, y) が 新たにカ レ ン ト 点 と な り ます。 こ の楕円は反時計回 り の向き に作成 さ れます。 スコープ ページ ・パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・パス。こ の関数はパス ス コ ープを開始 さ せます。 C++ Java C# void elliptical_arc(double x, double y, double rx, double ry, String optlist) Perl PHP elliptical_arc(float x, float y, double rx, double ry, string optlist) C void PDF_elliptical_arc(PDF *p, double x, double y, double rx, double ry, const char *optlist) カ レ ン ト 点か ら 楕円弧を描 き ます。 x・y 楕円弧の終点の座標。 rx ・ ry 楕円の x ・ y 半径。 こ れ ら の値の う ち少な く と も 1 つを、 カ レ ン ト 点 と (x, y) と の 間の距離の半分 よ り も 大 き く す る 必要があ り ます。 optlist 詳細 表 7.4 に従っ て楕円弧のための構築オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 こ の関数は、 カ レ ン ト パス に楕円弧を追加 し ます。 こ の楕円弧は、 カ レ ン ト 点か ら 開始 し て、 (x, y) で終わ り ます。 カ レ ン ト 点は、 こ の関数を使 う 前に設定 さ れてい る 必要があ り ます。 楕円弧の終点はが新たな カ レ ン ト 点 と な り ます。 4 個の可能な楕円弧の う ち、 2 個 は ³ 180° の楕円弧 (小 さ い楕円弧) を表 し 、 も う 2 個は ¹ 180° の楕円弧 (大 き い楕円 弧) を表 し ます。 スコープ ページ ・パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・パス。こ の関数はパス ス コ ープを開始 さ せます。 156 第 7 章 : グ ラ フ ィ ッ ク 関数 表 7.4 PDF_elliptical_arc( ) に対する オプ シ ョ ン オプ シ ョ ン 説明 clockwise (論理値) true の場合、 時計回 り 楕円弧の う ちの 1 つが作成 さ れます。 そ う でない場合は、 反時計 回 り 楕円弧が作成 さ れます。 デ フ ォ ル ト : false largearc (論理値) true の場合、 大き い楕円弧の う ちの 1 つが作成 さ れます。 そ う でない場合は、 小 さ い楕 円弧が作成 さ れます。 デ フ ォ ル ト : false rectify (論理値) true の場合、 小 さ すぎ る半径は、 楕円が構築で き る よ う 変更 さ れます。 そ う でない場合 は、 例外が発生 し ます。 デ フ ォル ト : false xrotate (float) 楕円に対する回転角、 すなわち、 楕円の x 軸の、 カ レ ン ト 座標系の x 軸に対する角度を、 度単位で表 し た もの。 楕円弧の開始点 と 終了点は固定 さ れた ま ま です。 デ フ ォル ト : 0 C++ Java C# void rect(double x, double y, double width, double height) Perl PHP rect(float x, float y, float width, float height) C void PDF_rect(PDF *p, double x, double y, double width, double height) 長方形を描 き ます。 x・y 長方形の左下隅の座標。 width ・ height 詳細 長方形の寸法。 こ の関数は、 長方形を完全なサブパ ス と し て、 カ レ ン ト パス に追加 し ます。 こ の関数の前 にカ レ ン ト 点を設定 し てお く こ と は、 必須ではあ り ません。 点 (x, y) が新たにカ レ ン ト 点 にな り ます。 線は、 「理想の線」 を中心軸 と し て描かれ ます。 すなわち、 それぞれの端点 を結ぶ線の両側に、 線幅 (linewidth オプシ ョ ンの値に よ っ て決定 さ れ る ) の半分ずつが 描かれます。 こ の長方形は反時計回 り の向 き に作成 さ れます。 スコープ ページ ・パ タ ーン ・ テ ン プ レー ト ・ グ リ フ ・パス。 こ の関数はパス ス コ ープ を開始 さ せます。 C++ Java C# void closepath( ) Perl PHP closepath( ) C void PDF_closepath(PDF *p) カ レ ン ト パ ス を閉 じ ます。 詳細 こ の関数は、 カ レ ン ト サブパ ス を閉 じ ます。 すなわち、 カ レ ン ト 点か ら サブパ ス の開始点 ま での線を追加 し ます。 スコープ パス 7.4 パス構築 157 7.5 描画 と ク リ ッ ピ ン グ 注 こ の節の関数の多 く は、 パス を ク リ ア し て、 カ レ ン ト 点を未定義に し ます。 ですので、 こ れ ら の関数のいずれかを呼び出 し た後の描画操作では、 カ レ ン ト 点を明示的に設定する必 要があ り ます (PDF_moveto( ) を使 う 等)。 C++ Java C# void stroke( ) Perl PHP stroke( ) C void PDF_stroke(PDF *p) パ ス を、 カ レ ン ト 線幅 と カ レ ン ト 描線色で描線 し た後、 ク リ ア し ます。 スコープ パス。 こ の関数はパス ス コ ープを終了 さ せます。 C++ Java C# void closepath_stroke( ) Perl PHP closepath_stroke( ) C void PDF_closepath_stroke(PDF *p) パ ス を閉 じ た後、 描線 し ます。 詳細 こ の関数は、 カ レ ン ト サブパ ス を閉 じ た後 (カ レ ン ト 点か ら パ ス の開始点への線分を追 加)、 カ レ ン ト パ ス全体を、 カ レ ン ト 線幅 と カ レ ン ト 描線色で描線 し ます。 スコープ パス。 こ の関数はパス ス コ ープを終了 さ せます。 C++ Java C# void fill( ) Perl PHP fill( ) C void PDF_fill(PDF *p) パ ス の内部を、 カ レ ン ト 塗 り 色で塗 り ます。 詳細 こ の関数は、 カ レ ン ト パ ス の内部を、 カ レ ン ト 塗 り 色で塗 り ます。 パ ス の内部は、 2 種の アルゴ リ ズ ムのいずれかに よ っ て決定 さ れます (fillrule オプシ ョ ン参照)。 開いてい る パ ス は、 塗 る 前に暗黙的に閉 じ ら れます。 スコープ パス。 こ の関数はパス ス コ ープを終了 さ せます。 C++ Java C# void fill_stroke( ) Perl PHP fill_stroke( ) C void PDF_fill_stroke(PDF *p) パ ス を、 カ レ ン ト 塗 り 色 と カ レ ン ト 描線色で、 塗 り 、 描線 し ます。 スコープ パス。 こ の関数はパス ス コ ープを終了 さ せます。 158 第 7 章 : グ ラ フ ィ ッ ク 関数 C++ Java C# void closepath_fill_stroke( ) Perl PHP closepath_fill_stroke( ) C void PDF_closepath_fill_stroke(PDF *p) パ ス を閉 じ た後、 塗 り 、 描線 し ます。 詳細 こ の関数は、 カ レ ン ト サブパ ス を閉 じ た後 (カ レ ン ト 点か ら パ ス の開始点への線分を追 加)、 カ レ ン ト パ ス全体を塗 り 、 描線 し ます。 スコープ パス。 こ の関数はパス ス コ ープ を終了 さ せます。 C++ Java C# void clip( ) Perl PHP clip( ) C void PDF_clip(PDF *p) カ レ ン ト パ ス を ク リ ッ ピ ン グパ ス と し て使っ て、 パ ス を終了 さ せます。 詳細 こ の関数は、 カ レ ン ト パ ス と カ レ ン ト ク リ ッ ピ ン グパス の共通部分を、 以後の操作に対す る ク リ ッ ピ ン グパ ス と し て使い ま す。 ク リ ッ ピ ン グパ ス は、 ページの始 ま り ご と に、 デ フ ォ ル ト 値であ る ページサ イ ズ と 同 じ に設定 さ れます。 ク リ ッ ピ ン グパス は、PDF_save( )・ PDF_restore( ) の対象に な り ま す。 ク リ ッ ピ ン グ パ ス を 大 き く で き る のは、 PDF_save( ) ・ PDF_restore( ) を使っ た と き だけです。 ク リ ッ ピ ン グ領域は、 cliprule オプシ ョ ン を用いて 選択 さ れた アルゴ リ ズ ムに従っ て決定 さ れます。 スコープ パス。 こ の関数はパス ス コ ープ を終了 さ せます。 C++ Java C# void endpath( ) Perl PHP endpath( ) C void PDF_endpath(PDF *p) カ レ ン ト パ ス を、 塗 ら ずに、 描線せずに、 終了 さ せます。 詳細 こ の関数は、 ページに対 し て何の視覚的効力 も 持ち ません。 目に見え ないパ ス をページに 生成す る だけです。 スコープ パス。 こ の関数はパス ス コ ープ を終了 さ せます。 7.5 描画 と ク リ ッ ピ ング 159 7.6 パス オ ブ ジ ェ ク ト C++ Java C# int add_path_point(int path, double x, double y, String nametype, String optlist) Perl PHP int add_path_point(int path, float x, float y, string type, string optlist) C int PDF_add_path_point(PDF *p, int path, double x, double y, const char *type, const char *optlist) 新規の、 ま たは既存のパ ス オブジ ェ ク ト に点かパ ス を追加 し ます。 path それ以前に PDF_add_path_point( ) を呼び出 し て返 さ れた有効なパ スハン ド ルか、ま たは新規パ ス を作成す る には -1 (PHP では 0)。 x ・ y 新規カ レ ン ト 点の座標。 polar=false にする と 、 こ の 2 個の数は、 点のデカル ト 座標 (x, y) を表 し ます。 polar=true にす る と 、 こ の 2 個の数は、 点の動径 r と 偏角 phi (radians オ プ シ ョ ン に従 っ て度単位 ま た は ラ ジ ア ン 単位で) を 表 し ま す。 type=circle ・ circular ・ elliptical・ellipse・move・line・curve・rect の と き は、 こ の点が新たにカ レ ン ト 点 と な り ます。 type 点の種別を、 表 7.5 に従っ て指定 し ます。 表 7.5 PDF_add_path_point( ) の点の種別 キーワー ド 説明 addpath パスに、 svgpath オプ シ ョ ン で指定 さ れたパス定義を完全なサブパス と し て追加。 (x, y) を中心 と し て用います。 circle パスに、 完全なサブパス と し て円を追加。 (x, y) を中心、 radius をサイ ズ と し て用います。1 circular カ レ ン ト 点か ら (x, y) への円弧を追加。 あ らか じ め、 3 番目の円弧点 と し て制御点を定義 し てお く 必要があ り ます。 新規点を カ レ ン ト 点 と 同一にする と 、 カ レ ン ト 点 と 制御点を結ぶ線分を直径 と する円が作成 さ れます。2 control ベジ エ曲線の、 ま たは円弧の制御点。 2 curve カ レ ン ト 点か ら新規点へ、 あ らか じ め定義 し ておいた制御点群を用いてベジ エ曲線を追加。 少な く と も 1 個の制御点を与え る必要があ り ます。 制御点を 1 個だけ与え る と 、 これは曲線の 2 番目 の制御点 と し て用い られ、 1 番目の制御点は、 2 番目の制御点に対する、 直前のベジ エ曲線の終点 における鏡像 と し て算出 さ れます。 2 ellipse パスに、 完全なサブパス と し て楕円を追加。 (x, y) を中心、 radius オプ シ ョ ンの値群をサイ ズ と し て用います。 1 こ の楕円は、 xrotate オプ シ ョ ン を用いて回転する こ と も で き ます。 elliptical カ レ ン ト 点か ら (x, y) への楕円弧を追加。 楕円のサイ ズ と 向きは、 radius ・ xrotate ・ largearc ・ clockwise オプ シ ョ ンに よ っ て定義 さ れます。 radius と し て値を 1 個だけ与えた場合には、 円弧が 作成 さ れます。 この場合には、 適切な円弧点が自動的に作成 さ れます。 radius オプ シ ョ ン で 2 個 の値を与えた場合には、 ベジ エ曲線の集合が作成 さ れます。 2 line カ レ ン ト 点か ら (x, y) への線分を追加。 2 move 新規サブパス を開始。 サブパスは連続的に付番 さ れます (1, 2, …)。 最初のサブパスは原点を始点 と し ます。 pathref path オプ シ ョ ン で指定 さ れたパスへの参照を、 完全なサブパス と し て追加。 (x, y) を原点 と し て 用います。 パスは参照 さ れますので (複製は さ れませんので)、 path に対する以後の偏向は、 パス を描 く 際に反映 さ れます。 rect パスに、 完全なサブパス と し て長方形を追加。 (x, y) を中心、 width ・ height をサイ ズ と し て用 います。 1 長方形の隅を、 round オプ シ ョ ン を用いて、 描 く 前に丸める こ と も で き ます。 あるいは、 隅を、 radius オプ シ ョ ン を用いて楕円弧で丸める こ と も で き ます。 160 第 7 章 : グ ラ フ ィ ッ ク 関数 1. パスの後に自動的に、 type=move と 、 同 じ 座標 と グ ラ フ ィ ッ ク 書式オ プ シ ョ ン群を持つ新たな点が作成 さ れます。 2. こ れ ら の種別では、 グ ラ フ ィ ッ ク 書式オプ シ ョ ン群 と パス操作オ プ シ ョ ン群は許容 さ れません。 optlist パ ス構築オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 点 1 個に対する 、 表 7.6 に従っ たパ ス計算 ・ 命名オプシ ョ ン : name ・ polar ・ radians ・ relative > 表 7.6 に従っ たパ ス操作オプシ ョ ン : close ・ fill ・ round ・ stroke > 表 7.6 に従っ た、 パ ス定義を追加す る ためのオプシ ョ ン : path ・ svgpath > 表 7.6 に従っ た、 パ ス要素を構築す る ためのオプシ ョ ン : clockwise ・ height ・ largearc ・ radius ・ rectify ・ width ・ xrotate > 表 7.1 に従っ た グ ラ フ ィ ッ ク 書式オプシ ョ ン (type=addpath ・ circle ・ ellipse ・ move ・ rect ・ pathref のいずれかの場合のみ) : dasharray ・ dashphase ・ fillcolor ・ fillrule ・ flatness ・ gstate ・ linecap ・ linejoin ・ linewidth ・ miterlimit ・ strokecolor 戻り値 パ ス ハン ド ル。 PDF_delete_path( ) で削除す る ま で使え ます。 詳細 パ ス オブジ ェ ク ト は、 ベ ク ト ル図形のための コ ン テナ と し て機能 し ます。 パ ス オブジ ェ ク ト には、 パ ス と サブパ ス を 1 個ずつ加えてい く こ と がで き ます。 こ こ で新規パ ス要素は、 個々のパ ス ノ ー ド を指定す る こ と に よ っ て、 あ る いはパ スハン ド ルか SVG パ ス記述を通 じ て指定 さ れたパ ス定義を追加す る こ と に よ っ て、 作成する こ と がで き ます。 作成 さ れた パ ス は、 その後、 PDF_draw_path( ) な ど の関数で用い る こ と がで き ます。 パス オブジ ェ ク ト は、 任意の数のパ ス を保持す る こ と がで き ます。 各パス は さ ら に、 1 個ない し 複数のサブパ ス を含む こ と がで き ます。サブパ ス は、PDF_draw_path( ) の subpaths オプシ ョ ンで、 描 く ために選択す る こ と がで き ます。 すべてのパス は、 指定 し たオプシ ョ ンに従っ て個別に、 閉 じ ら れ、 塗 ら れ、 描線 さ れ、 丸め ら れます。 種別 addpath ・ circle ・ ellipse ・ move ・ rect ・ pathref のいずれか を用いた操作は、 新規 サ ブ パ ス を 開始 さ せ ま す。 グ ラ フ ィ ッ ク 書式 オ プ シ ョ ン 群 と パ ス 操作 オ プ シ ョ ン 群 (stroke ・ fill な ど) は、 type=addpath ・ circle ・ ellipse ・ move ・ rect ・ pathref のいずれかの ためにのみ変更で き ます。 こ の場合には、 パ ス オブジ ェ ク ト 内の新規パ ス が自動的に開始 さ れます。 種別 circle ・ ellipse ・ elliptical ・ rect の形状は、 デフ ォ ル ト では反時計回 り の向 き に作成 さ れますが、 こ れを オプシ ョ ン clockwise で変更す る こ と も で き ます。 スコープ 任意 C++ Java C# void draw_path(int path, double x, double y, String optlist) Perl PHP draw_path(int path, float x, float y, string optlist) C void PDF_draw_path(PDF *p, int path, double x, double y, const char *optlist) パ ス オブジ ェ ク ト を描 き ます。 path PDF_add_path_point( ) を、 ま たはパ スハン ド ルを返すその他の関数 (例 : PDF_info_ image( ) で boundingbox キー ワー ド を指定) を呼び出 し て返 さ れた有効なパ スハン ド ル。 x ・ y 参照点の座標を、 ユーザー座標で指定 し ます。 こ の参照点は さ ま ざ ま なオプシ ョ ン で用い ら れ、 かつパ ス の原点のカ レ ン ト ユーザー座標系におけ る 位置を指定 し ます。 こ れ 7.6 パスオブ ジ ェ ク ト 161 表 7.6 PDF_add_path_point( ) のオプ シ ョ ン オプ シ ョ ン 説明 clockwise (論理値。 type=circle ・ ellipse ・ elliptical ・ rect のみ) true の場合、 その形状は時計回 り の 向き に作成 さ れます。 そ う で ない場合は反時計回 り 。 デ フ ォ ル ト : false close (論理値。 type=move のみ) true にする と 、 サブパスは直線で閉 じ られます。 デ フ ォル ト : 脚注参 照1 fill (論理値。 type=move のみ) true にする と 、 サブパスは閉 じ られて塗られます。 デ フ ォ ル ト : 脚注 参照 1 height (float。 type=rect のみ。 こ の場合は必須) 長方形の高 さ largearc (論理値。 type=elliptical のみ) true の場合、 大き い楕円弧の う ちの 1 つが作成 さ れます。 そ う で ない場合は、 小 さ い楕円弧の う ちの 1 つが作成 さ れます。 デ フ ォ ル ト : false name (文字列) 点の名前。 デ フ ォル ト : p<i> (例 : p1)、 こ こ で i は、 与えた点の連続番号です。 path (パスハン ド ル。 type=pathref のみ) 指定 さ れたパスが、 カ レ ン ト パスに、 参照に よ っ て追加 さ れ ます。 追加 さ れるパスの座標は、 カ レ ン ト 点を原点 と し て参照 し ます。 グ ラ フ ィ ッ ク 書式オプ シ ョ ン群 と name オプ シ ョ ンは無視 さ れます。 polar (論理値) true にする と 、 引数 (x, y) は極座標で動径 r と 偏角 phi を表 し 、 そ う で ないな ら デ カ ル ト 座標で値 x ・ y を表 し ます。 デ フ ォ ル ト : false radians (論理値) true にする と 、 極座標における偏角はラ ジ ア ン で表 さ れ、 そ う でないな ら度単位で表 さ れます。 デ フ ォ ル ト : false radius (1 個か 2 個の float。 type=circle ・ ellipse ・ elliptical の場合には必須。 type=rect で も 可) 1 つ目の値は、 円の半径ま たは楕円の x 半径を指定 し ます。 2 つ目の float 値は、 存在する場合には、 楕円の y 半径を指定 し ます。 1 つ目の値が、 2 つ目の値に対するデ フ ォ ル ト と し て用い られます。 type=rect の場合には、 これ らの値は、 長方形の角の楕円弧の x ・ y 半径を指定 し ます。 こ の楕円弧 はただ ちに作成 さ れます。 デ フ ォ ル ト : 0 rectify (論理値。 type=ellipse ・ elliptical のみ) true の場合、 小 さ すぎ る半径は、 楕円が構築で き る よ う 変更 さ れます。 そ う でない場合は、 例外が発生 し ます。 デ フ ォ ル ト : false relative (論理値) true にする と 、 (x, y) はカ レ ン ト 点に対 し て相対的 と な り 、 そ う で ないな ら カ レ ン ト 原点に対 し て相対的 と な り ます。 デ フ ォ ル ト : 脚注参照 1 162 第 7 章 : グ ラ フ ィ ッ ク 関数 表 7.6 PDF_add_path_point( ) のオプ シ ョ ン オプ シ ョ ン 説明 round (float。 type=move のみ) サブパス内の隣 り あ う 線の頂点が、 それ らの接合点で、 指定 し た半径を 持ち、 それらの線分を接線 と する円弧に よ っ て丸め ら れます。 半径を負にする と 、 角が円形にへ こ むよ う に弧が切 り 取 られます。 close=true と する と 、 終了点から 開始点への線を指定 し ていな いな らば、 最初の線 と 閉 じ る線も 丸め ら れます。 round=0 と する と 丸めは行われません。 円弧は、 パスが描かれる時点で作成 さ れます。 デ フ ォル ト : 脚注参照 1 stroke (論理値。 type=move のみ) true にする と 、 サブパスは描線 さ れます。 デ フ ォル ト : 脚注参照 1 svgpath (文字列。 type=addpath のみ) www.w3.org/TR/SVG11/paths.html#PathData に従っ た SVG 文法の パス記述を内容 と する文字列。 指定 さ れたパスはカ レ ン ト パスに追加 さ れます。 指定 さ れた SVG パスの座標は、 カ レ ン ト 点を原点 と し て参照 し ます。 グ ラ フ ィ ッ ク 書式オプ シ ョ ン群を こ の SVG パスに対 し て指定する こ と も で き ます。 オプ シ ョ ン rectify が、 挿入 さ れた SVG パスに対 し て考 慮 さ れます。 そのパスが SVG フ ァ イルか ら下向き座標系に よ っ て生 じ ている場合には、 それを反 転 さ せる必要があ り ます (た と え PDFlib が topdown モー ド で動作 し ていて も )。 こ れは PDF_draw_ path( ) でオプ シ ョ ン scale={1 -1} を用いて実現で き ます。 width (float。 type=rect のみ。 こ の場合は必須) 長方形の幅 xrotate (float。 type=ellipse ・ elliptical のみ) 楕円に対する回転角を カ レ ン ト 単位で表 し た もの (オプ シ ョ ン radians を参照)、 すなわち、 楕円の x 軸の、 カ レ ン ト 座標系の x 軸に対する角度を、 度単 位で表 し た もの。 楕円弧の開始点 と 終了点は固定 さ れたま ま です。 こ のオプ シ ョ ンは、 radius と し て値 1 個だけが与え られた場合には無視 さ れます。 デ フ ォ ル ト : 0 1. デ フ ォル ト は、PDF_draw_path( ) で も 、PDF_info_path( ) で も 、PDF_fit_textline( ) の textpath オ プ シ ョ ン で も 、PDF_fit_textflow( ) の wrap オ プ シ ョ ン で も 、 PDF_add_table_cell( ) の fitpath オプ シ ョ ン で も 指定 さ れます。 に よ り 、 パ ス オブジ ェ ク ト が平行移動 し ます。 boxsize オプシ ョ ン を指定す る と 、 (x, y) は、 パ ス オブジ ェ ク ト がはめ込まれ る はめ込み枠 (表 6.1 参照) の左下隅 と な り ます。 optlist パ ス描画オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 表 6.1 に従っ たはめ込みオプシ ョ ン群 : align ・ attachmentpoint ・ boxsize ・ fitmethod ・ orientate ・ position ・ scale > 表 7.7 に従っ たパ ス操作 ・ サブパ ス選択オプシ ョ ン : clip ・ close ・ fill ・ round ・ stroke ・ subpaths > 表 7.7 に従っ て外接枠を変更す る ためのオプシ ョ ン : bboxexpand ・ boundingbox > 表 7.1 に従っ た、 fill ・ stroke オプシ ョ ンのためのグ ラ フ ィ ッ ク 書式オプシ ョ ン : dasharray ・ dashphase ・ fillcolor ・ flatness ・ gstate ・ linecap ・ linejoin ・ linewidth ・ miterlimit ・ strokecolor > 表 7.1 に従っ た clip オプシ ョ ンのための、表 7.1 に従っ た グ ラ フ ィ ッ ク 書式オプシ ョ ン: cliprule ・ fillrule > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag 詳細 パ ス (群) は、 参照点 (x, y) に配置 さ れ、 その後、 指定 し たオプシ ョ ン群に従っ て、 描線 さ れた り 、 塗 ら れた り 、 ク リ ッ ピ ン グパ ス と し て用い ら れた り し ます。 こ の関数は、 clip オプシ ョ ン を用いていない限 り 、カ レ ン ト グ ラ フ ィ ッ ク ス テー タ ス に変更を加え る こ と は あ り ま せん。 書式 ・ 操作オプシ ョ ン群はデフ ォ ル ト 設定を オーバ ラ イ ド し ま すが、 PDF_ add_path_point( ) の中のサブパス に対 し て書式オプシ ョ ン を指定 し ていた場合は、 それを オーバ ラ イ ド す る こ と は一切あ り ません。 7.6 パスオブ ジ ェ ク ト 163 PDF/UA すべてのパ ス オブジ ェ ク ト は、tag オプシ ョ ン を用いて、あ る いは事前の PDF_begin_item( ) への呼び出 し を用いて、 Artifact か Figure と し て タ グ付け さ れ る 必要があ り ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 表 7.7 パスオブ ジ ェ ク ト 内のすべてのサブパス を制御する ための PDF_draw_path( ) のパス操作オプ シ ョ ン オプ シ ョ ン bboxexpand 説明 (float の リ ス ト 。 boundingbox オプ シ ョ ンが指定 さ れている場合には無視 さ れます) 自動的に算出 さ れた外接枠 (パスオブ ジ ェ ク ト を囲む最小の長方形) の拡張を示す 1 個か 2 個の float。 デ フ ォ ル ト : {0 0} boundingbox (長方形) パスオブ ジ ェ ク ト をはめ込み枠内へはめ込むための外接枠 と し て用い ら れる、 パスオブ ジ ェ ク ト の長方形を座標系で表 し た もの。 デ フ ォ ル ト : パスオブ ジ ェ ク ト を囲む最小の長方形、 ただ し bboxexpand オプ シ ョ ンに従っ て拡張 さ れている可能性も あ り ます clip (論理値) true にする と 、 パスは閉 じ られ、 ク リ ッ ピ ン グパス と し て用い ら れます。 デ フ ォ ル ト : false close (論理値) true にする と 、 各サブパスが直線で閉 じ られます。 デ フ ォ ル ト : パスが構築 さ れた際に 指定 さ れた値、 あるいは値が何も 指定 さ れなか っ たな ら false fill (論理値。 clip を オーバラ イ ド し ます) true にする と 、 各パスが塗 られます。 デ フ ォル ト : パス が構築 さ れた際に指定 さ れた値、 あるいは値が何も指定 さ れなかっ たな ら false round (float) 各サブパスについて、 隣 り あ う 線の頂点が、 それらの接合点で、 指定 し た半径を持ち、 そ れらの線分を接線 と する円弧に よ っ て丸め られます。 半径を負にする と 、 角が円形にへこ むよ う に弧が切 り 取 られます。 close=true と する と 、 終了点から開始点への線を指定 し ていないな ら ば、 最初の線 と 閉 じ る線 も丸め られます。 round=0 と する と 丸めは行われません。 デ フ ォ ル ト : パスが 構築 さ れた際に指定 さ れた値、 あ るいは値が何 も指定 さ れなかっ たな ら 0 stroke (論理値。 clip を オーバラ イ ド し ます) true にする と 、 パスは描線 さ れます。 デ フ ォル ト : false subpaths (整数の リ ス ト 、 またはキーワー ド 1 個) 描き たいサブパスの番号の リ ス ト 。 最初のサブパスは番 号 1 です。 キーワー ド all ですべてのサブパスが指定 さ れます。 デ フ ォル ト : all C++ Java C# double info_path(int path, String keyword, String optlist) Perl PHP float info_path(int path, string keyword, string optlist) C double PDF_info_path(PDF *p, int path, const char *keyword, const char *optlist) パ ス オブジ ェ ク ト を描いた結果を、 実際にそれを描 く こ と な く 取得 し ます。 path PDF_add_path_point( ) を、 ま たはパ スハン ド ルを返すその他の関数 (例 : PDF_info_ image( ) で boundingbox キーワ ー ド を指定) を呼び出 し て返 さ れた有効なパ スハン ド ル。 keyword 求め る 情報を指定 し た キー ワー ド : > 表 6.3 に従っ た、 オブジ ェ ク ト はめ込みの結果を ク エ リ す る ためのキーワ ー ド : boundingbox ・ fitscalex ・ fitscaley ・ height ・ objectheight ・ objectwidth ・ width ・ x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 ・ x4 ・ y4 > 表 7.8 に従っ た さ ら な る キーワ ー ド : bboxwidth ・ bboxheight ・ numpoints ・ px ・ py optlist パス描画オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 表 7.7 に従っ た PDF_draw_path( ) のすべてのオプシ ョ ン > お よ び、 表 6.1 に従っ たはめ込みオプシ ョ ン : refpoint 164 第 7 章 : グ ラ フ ィ ッ ク 関数 表 7.8 PDF_info_path( ) のキーワー ド キーワー ド 説明 bboxwidth ・ パスに対する外接枠の幅 と 高 さ bboxheight numpoints 与え られた点の数。 subpaths オプ シ ョ ンは無視 さ れます。 px ・ py name オプ シ ョ ン で指定 し たパス点の x ・ y 座標 (ユーザー座標系における)。 subpaths オプ シ ョ ン は無視 さ れます。 > お よ び、 表 7.9 に従っ たオプシ ョ ン : name 戻り値 詳細 キーワー ド で求め ら れた何 ら かのパ ス特性の値。 こ の関数は、 PDF_add_path_point( ) と 同 じ 計算を実行 し ますが、 ページ上に目に見え る 出 力を一切生成 し ません。 スコープ 任意 表 7.9 PDF_info_path( ) のオプ シ ョ ン オプ シ ョ ン 説明 name px ま たは py に対するパス点の名前。 PDF_add_path_point( ) で明示的な名前を指定 し てあ っ て も 、 デ フ ォル ト 名 (p1 等) も用いる こ と がで き ます。 C++ void delete_path(int path) Perl PHP delete_path(int path) C void PDF_delete_path(PDF *p, int path) パ ス オブジ ェ ク ト を削除 し ます。 path PDF_add_path_point( ) を、 ま たはパ スハン ド ルを返すその他の関数 (例 : PDF_info_ image( ) で boundingbox キー ワー ド を指定) を呼び出 し て返 さ れた有効なパ スハン ド ル。 詳細 パ ス オブ ジ ェ ク ト と 、 それに関連 し たすべての内部デー タ 構造を削除 し ま す。 パ ス オブ ジ ェ ク ト は、 PDF_end_document( ) で自動的に削除 さ れ る わけではない こ と に留意 し て く だ さ い。 スコープ 任意 7.6 パスオブ ジ ェ ク ト 165 166 第 7 章 : グ ラ フ ィ ッ ク 関数 8 色関数 8.1 色を設定 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの color/starter_color ト ピ ッ ク にあ り ます。 こ の節に関連す る グ ロ ーバルオプシ ョ ン を表 8.1 に挙げます (25 ページ 「2.3 グ ロ ーバル オプシ ョ ン」 参照)。 表 8.1 PDF_set_option( ) の色関連キー オプ シ ョ ン 説明 preserveoldpantonenames (論理値) false な ら 、 旧形式の Pantone スポ ッ ト カ ラ ー名は、 照応する新 し い カ ラ ー名に 変換 さ れます。 そ う で ないな ら、 そのま まにな り ます。 デ フ ォル ト : false spotcolorlookup (論理値) false な ら 、 PDFlib は、 スポ ッ ト カ ラ ー名の内蔵デー タ ベース を使いません。 そ の場合は、 既知のスポ ッ ト カ ラ ーに カ ス タ ムの定義を与え る こ と がで き ます。 カ ス タ ム定 義は、 他のア プ リ ケーシ ョ ン で使われる定義 と の整合を と る手段 と し て必要にな る こ と が あ り ます。 こ の機能は、 使用には注意が必要であ り 、 推奨 し ません。 デ フ ォル ト : true C++ Java C# void setcolor(String fstype, String colorspace, double c1, double c2, double c3, double c4) Perl PHP setcolor(string fstype, string colorspace, float c1, float c2, float c3, float c4) C void PDF_setcolor(PDF *p, const char *fstype, const char *colorspace, double c1, double c2, double c3, double c4) グ ラ フ ィ ッ ク ・ テ キ ス ト ス テー ト のためのカ レ ン ト 色空間 と 色を設定 し ます。 fstype fill ・ stroke ・ fillstroke のいずれかで、 塗 り ・ 描線 ・ 両方のいずれに色を設定 し た いのか を指定 し ます。 colorspace 指定す る カ ラ ー値群に対 し て用いたい色空間を指定す る か、 ま たは RGB カ ラ ー値を名前か 16 進値で指定 し ます。 1 番目の形式:gray・rgb・cmyk・spot・pattern・iccbasedgray・iccbasedrgb・iccbasedcmyk・ lab のいずれか 1 つで、 色空間を指定 し ます。 2 番目の形式 : RGB カ ラ ー名 (例 : pink) か、 ま たはハ ッ シ ュ キ ャ ラ ク タ の後に 6 桁の 16 進数 (例 : #FFC0CB)。 c1 ・ c2 ・ c3 ・ c4 選んでい る 色空間におけ る 色要素。 こ れ ら の値の解釈は、 colorspace 引 数に よ っ て異な り ます。 > gray : c1 でグ レー値を指定 し ます。 > rgb : c1 ・ c2 ・ c3 で赤 ・ 緑 ・ 青の値を指定 し ます。 > cmyk : c1 ・ c2 ・ c3 ・ c4 でシ ア ン ・ マゼン タ ・ イ エ ロ ー ・ 黒の値を指定 し ます。 > iccbasedgray : c1 でグ レー値を指定 し ます。 > iccbasedrgb : c1 ・ c2 ・ c3 で赤 ・ 緑 ・ 青の値を指定 し ます。 > iccbasedcmyk : c1 ・ c2 ・ c3 ・ c4 でシ ア ン ・ マゼン タ ・ イ エ ロ ー ・ 黒の値を指定 し ます。 > spot : c1 で、PDF_makespotcolor( ) に よ っ て返 さ れた ス ポ ッ ト カ ラ ーハン ド ルを指定 し 、 c2 で、 0 か ら 1 ま での濃度値を指定 し ます。 8.1 色を設定 167 > lab : c1 ・ c2 ・ c3 で、 D50 光源に よ る CIE L*a*b* 色空間内のカ ラ ー値を指定 し ます。 c1 で L*(輝度)を範囲0~100で指定 し 、c2・c3でa*・b*(色度)値を範囲-128~127で指定 し ます。 > pattern : c1 で、 PDF_begin_pattern_ext( ) か PDF_shading_pattern( ) に よ っ て返 さ れたパ タ ーンハン ド ルを指定 し ます。 painttype=uncolored を用いたパ タ ーン を使っ て塗 り や 描線を行 う と き は、 カ レ ン ト の塗 り 色や描線色が適用 さ れ ます。 カ レ ン ト 色空間は他 のパ タ ーン色空間であ っ てはいけ ません。 詳細 gray ・ rgb ・ cmyk 色空間におけ る すべてのカ ラ ー値 と 、 spot 色空間におけ る 濃度値は、 0 以上 1 以下の数値にす る 必要があ り ます。 使わない引数は、 0 に設定する べき です。 色空 間 と カ ラ ー値に関 し て さ ら に詳 し い情報は 14 ページ 「色オプシ ョ ン」 にあ り ます。 gray ・ rgb ・ cmyk 色空間におけ る 描線 ・ 塗 り 色の値は、 ページの始ま り ご と に、 デフ ォ ル ト 値であ る 黒に設定 さ れます。 ス ポ ッ ト ・ パ タ ーン カ ラ ーの場合はデフ ォ ル ト はあ り ま せん。 iccbasedgray/rgb/cmyk 色空間を使 う 場合には、 iccprofilegray/rgb/cmyk オプシ ョ ンの う ちのいずれか 1 つを使 う 前に、 適切な ICC プ ロ フ ァ イ ルを設定 し てお く 必要があ り ます。 こ の関数は、fillcolorお よ び/ ま たはstrokecolorオプシ ョ ン を伴 う PDF_set_text_option( )・ PDF_set_graphics_option( ) と 等価です。PDF_setcolor( ) は こ れ ら のオプシ ョ ンの値を オーバ ラ イ ド し ます。 PDF/A colorspace=gray は、出力 イ ン テ ン ト (任意の種類) か、PDF_begin_page_ext( ) で defaultgray オプシ ョ ン を必要 と し ます。 colorspace=rgb は、 RGB 出力 イ ン テ ン ト か、 PDF_begin_page_ext( ) で defaultrgb オプ シ ョ ン を必要 と し ます。 colorspace=cmyk は、 CMYK 出力 イ ン テ ン ト か、 PDF_begin_page_ext( ) で defaultcmyk オプシ ョ ン を必要 と し ます。 PDF/X PDF/X-1a : colorspace=rgb ・ iccbasedgray/rgb/cmyk ・ lab は許 さ れません。 PDF/X-3 : iccbasedgray/rgb/cmyk ・ lab カ ラ ーは、 出力 イ ン テ ン ト の中に ICC プ ロ フ ァ イ ルを必要 と し ます ( こ の場合、 標準名では不十分です)。 PDF/X-3/4/5 : colorspace=gray は、 グ レース ケールか CMYK デバ イ ス イ ン テ ン ト か、 PDF_begin_page_ext( ) で defaultgray オプシ ョ ン を必要 と し ます。 colorspace=rgb は、 RGB 出力 イ ン テ ン ト か、 PDF_begin_page_ext( ) で defaultrgb オプ シ ョ ン を必要 と し ます。 colorspace=cmykは、CMYK出力 イ ン テ ン ト か、PDF_PDF_begin_page_ext( )でdefaultcmyk オプシ ョ ン を必要 と し ます。 PDF/UA 情報を色か コ ン ト ラ ス ト だけで伝達す る べ き ではあ り ません。 スコープ ページ ・ パ タ ーン (painttype=colored の場合のみ) ・ テ ン プ レー ト ・ グ リ フ (Type 3 フ ォ ン ト の colorized オプシ ョ ンが true の場合のみ) ・ 文書。 パ タ ーン カ ラ ーは、 それ自身の定 義の中では使え ません。 文書ス コ ープ内での色の設定は、 PDF_makespotcolor( ) で ス ポ ッ ト カ ラ ーを定義す る 際に有用です。 168 第 8 章 : 色関数 C++ Java C# int makespotcolor(String spotname) Perl PHP int makespotcolor(string spotname) C int PDF_makespotcolor(PDF *p, const char *spotname, int reserved) 組み込み ス ポ ッ ト カ ラ ーの名前を検索す る か、 ま たは、 カ レ ン ト 塗 り 色か ら 名前付 き ス ポ ッ ト カ ラ ーを作 り ます。 spotname 組み込みス ポ ッ ト カ ラ ーの名前か、 ま たは、 定義 し たい ス ポ ッ ト カ ラ ーにつ けたい任意の名前。 こ の名前は最長 126 バ イ ト に制限 さ れてい ます。 特殊な ス ポ ッ ト カ ラ ー名 All を使 う と 、色をすべての色分版に適用す る こ と がで き ます ので、 ト ン ボに色をつけ る 際に便利です。 ス ポ ッ ト カ ラ ー名 None を指定する と 、 ど の色 分版に も 目に見え る 出力が ま っ た く 生成 さ れな く な り ます。 reserved 戻り値 (C 言語バ イ ンデ ィ ン グのみ) 予約済。 0 にする 必要があ り ます。 カ ラ ーハン ド ル。 以後の PDF_setcolor( ) への呼び出 し で、 ま た、 PDF_set_graphics_option( ) な ど の関数の fillcolor ・ strokecolor オプシ ョ ンに対 し て使え ます。 ス ポ ッ ト カ ラ ーハン ド ルは、 すべてのページにわた っ て再利用で き ますが、 文書を越え た再利用はで き ません。 1 文書内の ス ポ ッ ト カ ラ ーの数に制限はあ り ません。 詳細 spotname が、 PANTONE ・ HKS カ ラ ー群を持つ内蔵のカ ラ ーテーブルで既知であ り 、 か つ、 spotcolorlookup オプシ ョ ンが true ( こ れがデフ ォ ル ト です) の場合には、 指定 さ れた ス ポ ッ ト カ ラ ー名 と 、 照応す る 内部代替カ ラ ー値群が使われます。 それ以外な ら 、 カ レ ン ト 塗 り 色のカ ラ ー値を使っ て、 新規ス ポ ッ ト カ ラ ーの視覚表現が定義 さ れます。 こ の代替 色は、 画面プ レ ビ ュ ー と 低品位印刷でのみ使われます。 色分版製版の際は、 こ の代替値で はな く 、 ス ポ ッ ト カ ラ ー名が使われます。 spotname が、 以前に PDF_makespotcolor( ) を呼び出 し た時に も う 使っ ていた も のな ら ば、 戻 り 値は前回の呼び出 し と 同 じ にな り 、 カ レ ン ト カ ラ ーの反映 も さ れません。 こ の関数は通常、 色型のオプシ ョ ン群を与え る こ と に よ っ て、 使わずに済みます。 こ の方法であれば、 ス ポ ッ ト カ ラ ー名ま たは定義 と ス ポ ッ ト カ ラ ーの利用 と を、 ス ポ ッ ト カ ラ ーハン ド ルを受け渡す必要な し に、 ただ 1 つのオプシ ョ ン リ ス ト の中で実現で き ます : 表 1.2 に例があ り ますので参照 し て く だ さ い。 PDF/X PANTONE® カ ラ ーは PDF/X-1a モー ド では対応 し てい ません。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ (Type 3 フ ォ ン ト の colorized オプシ ョ ンが true の場合のみ) ・ document。 カ ス タ ム カ ラ ーを定義 し たい と き は、 カ レ ン ト 塗 り 色は ス ポ ッ ト カ ラ ーかパ タ ーンであ っ てはいけ ません。 8.1 色を設定 169 8.2 ICC プ ロ フ ァ イ ル C++ Java C# int load_iccprofile(String profilename, String optlist) Perl PHP int load_iccprofile(string profilename, string optlist) C int PDF_load_iccprofile(PDF *p, const char *profilename, int len, const char *optlist) ICC プ ロ フ ァ イ ルを検索 し て、 以後の使用に備え ます。 profilename (名前文字列) ICCProfile リ ソ ース の名前か、 ま たはデ ィ ス ク ベース の フ ァ イ ルか仮想フ ァ イ ルの名前。 len (C 言語バ イ ンデ ィ ン グのみ) profilename の長 さ (バ イ ト 単位)。 len=0 にする と null 終了文字列を与え る 必要があ り ます。 optlist プ ロ フ ァ イ ル処理の諸特性を記述 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 8.2 に従っ たプ ロ フ ァ イ ル処理オプシ ョ ン群 : description ・ embedprofile ・ metadata ・ urls ・ usage 表 8.2 PDF_load_iccprofile( ) のオプ シ ョ ン キー 説明 ・ と り う る値 description (文字列。 usage=outputintent かつ非標準出力条件の場合のみ) 出力イ ン テ ン ト と と も に用い られ る ICC プ ロ フ ァ イルに関する人間向けの説明。 embedprofile (論理値。 PDF/X-1a/3 かつ usage=outputintent の場合のみ。 PDF/X-4 と PDF/X-5g では true を 強制 さ れます) PDF/X-1a/3 で標準出力イ ン テ ン ト を profilename と し て与えている と き に も 、 ICC プ ロ フ ァ イルを埋め込みます。 デ フ ォル ト : false metadata (オプ シ ョ ン リ ス ト 。 PDF/X-4p ・ PDF/X-5pg で usage=outputintent の場合には無視 さ れます) プ ロ フ ァ イルに対する メ タ デー タ を与え ます (281 ページ 「14.2 XMP メ タ デー タ 」 参照) urls (文字列 1 個ない し 複数の リ ス ト 。 PDF/X-4p と PDF/X-5pg, の場合のみ。 かつその場合には必須) 参照 さ れている出力イ ン テ ン ト ICC プ ロ フ ァ イルを入手で き る場所を示 し た URL 群の リ ス ト 。 送 り 手 と 受け手が、 適切な URL 項目を ア レ ン ジする必要があ り ます。 こ の文字列は自由に選ぶ こ と がで き ますが、 有効な URL 文法を内容 と する必要があ り ます。 usage (キーワー ド ) ICC プ ロ フ ァ イルの想定用途。 使え るキーワー ド (デ フ ォ ル ト : iccbased) : ICC プ ロ フ ァ イルは、 テキス ト かグ ラ フ ィ ッ クのための ICC ベース色空間 と し て使われ るか、 画像に適用 さ れるか、 デ フ ォ ル ト 色空間 と し て使われるか、 透過グループのため のブ レ ンデ ィ ング色空間 と し て使われます。 outputintent ICC プ ロ フ ァ イルは、 PDF/A か PDF/X 出力イ ン テ ン ト を指定 し ます。 iccbased 戻り値 プ ロ フ ァ イ ルハン ド ル。 以後の PDF_load_image( ) への呼び出 し か、 ま たはプ ロ フ ァ イ ル 関連のオプシ ョ ンの設定で使え ます。 errorpolicy=return の場合、 戻 り 値 -1 (PHP では 0) はエ ラ ーを示 し ますので、 そ う でないか を呼び出 し 側で検査す る 必要があ り ます。 返 さ れ たプ ロ フ ァ イ ルハン ド ルは、 複数の PDF 文書にわた っ て再利用する こ と はで き ません。 1 文書内の ICC プ ロ フ ァ イ ルの数に制限はあ り ません。 関数の呼び出 し が失敗 し た と き は、 その失敗の原因は、 PDF_get_errmsg( ) を使っ て取得す る こ と がで き ます。 詳細 usage=iccbased にす る と 、 プ ロ フ ァ イ ル検索戦略に従っ て、 名前付 き プ ロ フ ァ イ ルが検索 さ れます。 使用目的に応 じ て、 ICC プ ロ フ ァ イ ルは、 PDFlib チ ュ ー ト リ アルに挙げ る 条件 170 第 8 章 : 色関数 を満たす必要があ り ます。 sRGB プ ロ フ ァ イ ルは、 つねに内部的に得 ら れ る ので、 構成 し てはいけ ません。 PDF/A 出力 イ ン テ ン ト は、 こ の関数を使 う か、 ま たは、 PDF_process_pdi( ) を使っ て取 り 込み文書 の出力 イ ン テ ン ト を コ ピー し て、 設定す る こ と がで き ます。 デバ イ ス独立な色だけ を文書 で使っ てい る と き は、 出力 イ ン テ ン ト は必要あ り ません。 PDF/X 出力 イ ン テ ン ト は、 こ の関数を使 う か、 ま たは、 PDF_process_pdi( ) を使っ て取 り 込み文書 の出力 イ ン テ ン ト を コ ピー し て、 設定す る 必要があ り ます。 PDF/X-1/3 : 以下の標準出力条件名の う ちの 1 つを、 照応す る ICC プ ロ フ ァ イ ルを埋 め込まずに使用で き ます : CGATS TR 001・CGATS TR 002・CGATS TR 003・CGATS TR 005・CGATS TR 006・ FOGRA30・FOGRA31・FOGRA32・FOGRA33・FOGRA34・FOGRA35・FOGRA36・FOGRA38・FOGRA39・ FOGRA40・FOGRA41・FOGRA42・FOGRA43・FOGRA44・FOGRA45・FOGRA46・FOGRA47・ IFRA26・IFRA30・ EUROSB104・EUROSB204・ JC200103・JC200104・JCN2002・JCW2003 PDF/X-4 : 出力 イ ン テ ン ト プ ロ フ ァ イ ルが、 PDF を生成す る 際に得 ら れ る 必要があ り 、 埋め込ま れます。 PDF/X-4/5 : CMYK 出力 イ ン テ ン ト プ ロ フ ァ イ ル (すなわち usage=outputintent を用 いて読み込ま れた も の) を、 同一文書内で ICC ベース色空間 (すなわち usage=iccbased を 用いて読み込ま れた も の) のために使 う こ と はで き ません。 こ の必要条件は、 PDF/X 規 格に よ っ て義務付け ら れてい る も のであ り 、 CMYK プ ロ フ ァ イ ルにのみ適用 さ れ、 グ レー ス ケール ・ RGB プ ロ フ ァ イ ルには適用 さ れません。 出力 イ ン テ ン ト 内 と 同 じ CMYK ICC プ ロ フ ァ イ ルを ICC ベース カ ラ ー と し て も 用いたい (画像に タ グ付けする ため等) と い う 必要があ る 場合には、 単にその ICC プ ロ フ ァ イ ルを省略すれば足 り ます。 なぜな ら PDF/ X では、 その出力 イ ン テ ン ト プ ロ フ ァ イ ルがいずれにせ よ 用い ら れ る こ と を暗黙に前提 し てい る か ら です。 PDF/X-4p/5pg : プ ロ フ ァ イ ルは埋め込まれませんが、 外部プ ロ フ ァ イ ルへの参照が作 成 さ れます。 こ のプ ロ フ ァ イ ルは、 PDF を生成す る 際に得 ら れ る 必要があ り 、 かつ、 PDF 消費者がその文書を閲覧ま たは印刷す る 際に得 ら れ る 必要があ り ます。PDFlib チ ュ ー ト リ アルに、 参照 ICC プ ロ フ ァ イ ルでの Acrobat での諸問題に関する 重要な注記があ り ます。 上に挙げた標準出力 イ ン テ ン ト の う ちの 1 つを PDF/X-4 か PDF/X-5 で使いたい場合 には、照応す る ICC プ ロ フ ァ イ ルを、ICCProfile リ ソ ース と 同様に構成す る 必要があ り ます。 スコープ 文書。出力 イ ン テ ン ト は、PDF_begin_document( ) の直後に設定す る 必要があ り ます。usage オプシ ョ ン を iccbased に し てい る と き は、 次の ス コ ープ も 許 さ れ ます : ページ ・ パ タ ー ン ・ テ ン プ レー ト ・ グ リ フ。 8.2 ICC プ ロ フ ァ イル 171 8.3 パ タ ー ン と シ ェ ーデ ィ ン グ C++ Java C# int begin_pattern_ext(double width, double height, string optlist) Perl PHP int begin_pattern_ext(float width, float height, string optlist) C int PDF_begin_pattern_ext(PDF *p, double width, double height, const char *optlist) パ タ ーン定義を オプシ ョ ン群を用いて開始 し ます。 width, height こ のパ タ ーンの外接枠の寸法をパ タ ーン座標系で表 し た も の。 optlist パ タ ーンの詳細を記述 し たオプシ ョ ン リ ス ト : > 表 8.3 に従っ た、 以下のテ ンプ レー ト 独自オプシ ョ ン を使え ます : boundingbox ・ painttype ・ tilingtype ・ topdown ・ xstep ・ ystep > 以下の共通 XObject オプシ ョ ン を使え ます (表 9.11 参照) : transform 戻り値 パ タ ーンハン ド ル。 こ のハン ド ルは、 以後の PDF_setcolor( ) への呼び出 し で、 お よ び、 こ れを囲 う 文書ス コ ープの間にオプシ ョ ン fillcolor ・ strokecolor に対 し て、 使 う こ と がで き ます。 詳細 こ の関数は、 すべてのテ キ ス ト ・ グ ラ フ ィ ッ ク ・ カ ラ ー ス テー ト パ ラ メ タ 群を、 そのデ フ ォ ル ト 値へ リ セ ッ ト し ます。transform オプシ ョ ンは、パ タ ーン座標系か ら 、 そのパ タ ー ン が使用 さ れ る ページかテ ン プ レ ー ト か グ リ フ定義の座標系へのマ ッ ピ ン グ を定義 し ま す。 パ タ ーン定義上では、 すべてのテ キ ス ト ・ グ ラ フ ィ ッ ク 操作を使用で き ますが、 ハ イ パーテ キ ス ト 関数群、 お よ び画像か PDF ページかグ ラ フ ィ ッ ク を開 く ための関数群は避 け る 必要があ り ます。 色操作は、 painttype オプシ ョ ンに従っ て使用で き ます。 スコープ オブ ジ ェ ク ト 以外任意。 こ の関数は、 パ タ ーン ス コ ープ を開始 さ せます。 マ ッ チす る PDF_ end_pattern( ) 呼び出 し と 必ずペアにす る 必要があ り ます。 C++ Java C# void end_pattern( ) Perl PHP end_pattern( ) C void PDF_end_pattern(PDF *p) パ タ ーン定義を完了 し ます。 スコープ パ タ ーン。 こ の関数はパ タ ーン ス コ ープを終了 さ せます。 照応する ext( ) と 必ずペアに し て呼び出す必要があ り ます。 172 第 8 章 : 色関数 PDF_begin_pattern_ 表 8.3 PDF_begin_pattern_ext( ) のオプ シ ョ ン : い く つかのオプ シ ョ ンは PDF_begin_template_ext( ) で も 使え ます。 オプ シ ョ ン 説明 boundingbox (四角形) そのパ タ ーン セルの外接枠の左 ・ 下 ・ 右 ・ 上辺の座標。 こ の外接枠は、 パ タ ーン セルま たはテ ン プ レー ト を切 り 抜 く ために、 あ るいは、 パ タ ーン セルまたはテ ン プ レー ト の周 り に余白 を作る ために用いる こ と がで き ます。 デ フ ォル ト : {0 0 width height} painttype (キーワー ド ) このパ タ ーンが、 自身の色指定を内容 と し て持っ ているか、 それ と も こ のパ タ ーン が塗 り か描線のために使用 さ れる際に カ レ ン ト の塗 り または描線色を用いて着色 さ れる ス テ ン シ ル と し て使われるかを示 し ます (デ フ ォ ル ト : colored) : colored (非推奨の関数 PDF_begin_pattern( ) における painttype=1 と 等価) こ のパ タ ーンは、PDF_ setcolor( ) への 1 回ない し 複数回の呼び出 し を用いて、 またはオプ シ ョ ン fillcolor/ strokecolor を用いて、 着色 さ れる。 そのパ タ ーン記述は、 画像か PDF ページかグ ラ フ ィ ッ ク を配置する こ と がで き ます。 uncolored (非推奨の関数 PDF_begin_pattern( ) における painttype=2 と 等価) こ のパ タ ーンは、 色指 定を一切内容 と し て持 っ ていない。 こ のパ タ ーンが塗 り か描線のために使用 さ れる際に カ レ ン ト の塗 り または描線色が適用 さ れます。 画像マス ク を使 う こ と がで き ますが、 画 像、 配置 さ れた PDF ページ、 グ ラ フ ィ ッ ク は一切使え ません。 こ のパ タ ーン を使用す る前には、 PDF_setcolor( ) かオプ シ ョ ン fillcolor/strokecolor を呼び出 し て、 パ タ ー ン に基づかない色空間を持っ た カ レ ン ト カ ラ ーを設定する必要があ り ます。 tilingtype (キーワー ド ) パ タ ーン タ イル群のスペーシ ングへの調整を制御 し ます (デ フ ォ ル ト : constantspacing) : constantspacing パ タ ーン セル群を、 一貫性を も っ て、 すなわち 1 つのデバイ ス ピ ク セルの倍数に よ っ て スペーシ ング。 PDF 消費 ソ フ ト ウ ェ アは、 xstep ・ ystep ・ 変換行列に微細な調整を行 う こ と によ っ てパ タ ーン セルをわずかに変形 さ せなければな ら ない可能性があ り ます。 nodistortion パ タ ーン セルを歪めない。 し か し 、 こ のパ タ ーンが描かれる際に、 パ タ ーン セル群の間 のスペーシ ングが、 最大 1 デバイ ス ピ ク セルだけ、 縦横 と も に変動する可能性があ り ま す。 こ れは平均 と し て、 求め られる スペーシ ング を実現 し ますが、 個別のパ タ ーン セル についてはこ の限 り ではあ り ません。 fastertiling パ タ ーン セル群を、 constanttiling と 同様に一貫性を持 っ て スペーシ ングするが、 た だ し 、 よ り 効率的な実装を実現する ために さ ら な る変形を許容する。 topdown (論理値) true の場合、 そのパ タ ーン またはテ ン プ レー ト 定義の開始時における座標系の原点はそ の外接枠の左上隅にあ る と 見な さ れ、 y 座標は下方増加する と 見な さ れます。 そ う でない場合、 そ の座標系が直接用い ら れます。 デ フ ォル ト : false xstep (float) パ タ ーン セル群の間の横スペーシ ング をパ タ ーン座標で表 し た もの。 デ フ ォ ル ト : width ystep (float) パ タ ーン セル群の間の縦スペーシ ング をパ タ ーン座標で表 し た もの。 デ フ ォ ル ト : height 8.3 パ タ ーン と シ ェ ーデ ィ ング 173 C++ Java C# int begin_pattern(double width, double height, double xstep, double ystep, int painttype) Perl PHP int begin_pattern(float width, float height, float xstep, float ystep, int painttype) C int PDF_begin_pattern(PDF *p, double width, double height, double xstep, double ystep, int painttype) 非推奨。 PDF_begin_pattern_ext( ) を使用 し て く だ さ い C++ Java C# int shading_pattern(int shading, String optlist) Perl PHP int shading_pattern(int shading, string optlist) C int PDF_shading_pattern(PDF *p, int shading, const char *optlist) シ ェ ーデ ィ ン グパ タ ーン を、 シ ェ ーデ ィ ン グオブジ ェ ク ト を使っ て定義 し ます。 shading PDF_shading( ) に よ っ て返 さ れたシ ェ ーデ ィ ン グハン ド ル。 optlist シ ェ ーデ ィ ン グパ タ ーンのグ ラ フ ィ ッ ク 書式を表 7.1 に従っ て記述 し たオプシ ョ ン リ ス ト : gstate 戻り値 パ タ ーンハン ド ル。 以後の PDF_setcolor( ) への呼び出 し で、 ま た、 オプシ ョ ン fillcolor ・ strokecolor のために、 文書ス コ ープが終わ る ま で使え ます。 詳細 こ の関数を使 う と 、 任意のオブジ ェ ク ト を シ ェーデ ィ ン グで塗 る こ と がで き ます。 そのた めには、 PDF_shading( ) を使っ てシ ェーデ ィ ン グハン ド ルを取得す る 必要があ り 、 それか ら 、 こ のシ ェ ーデ ィ ン グに も と づいて PDF_shading_pattern( ) を使っ てパ タ ーン を定義す る 必要があ り ます。 そ し て最終的に、 こ のパ タ ーンハン ド ルを PDF_setcolor( ) に、 ま たは オプシ ョ ン fillcolor ・ strokecolor に与えれば、 カ レ ン ト カ ラ ーを シ ェーデ ィ ン グパ タ ーン に設定す る こ と がで き ます。 スコープ オブ ジ ェ ク ト 以外任意 C++ Java C# void shfill(int shading) Perl PHP shfill(int shading) C void PDF_shfill(PDF *p, int shading) 領域を シ ェ ーデ ィ ン グで、 シ ェ ーデ ィ ン グオブジ ェ ク ト に も と づいて塗 り ます。 shading 詳細 PDF_shading( ) に よ っ て返 さ れたシ ェ ーデ ィ ン グハン ド ル。 こ の関数を使えば、 PDF_shading_pattern( ) ・ PDF_setcolor( ) ま たはオプシ ョ ン fillcolor ・ strokecolor を使わな く て も 、 シ ェ ーデ ィ ン グ を使 う こ と がで き ます。 ただ し こ れは、 塗 る べ き オブジ ェ ク ト の形がシ ェ ーデ ィ ン グ自体の形 と 同 じ と い う 、単純な形に対 し てのみ動 作 し ま す。 カ レ ン ト 切 り 抜 き 領域がシ ェ ーデ ィ ン グ で塗 ら れ る ので (シ ェ ーデ ィ ン グ の extend0 ・ extend1 オプシ ョ ンに従っ て)、 一般に こ の関数は、 PDF_clip( ) と 組み合わせて使 い ます。 スコープ ページ ・ パ タ ーン (painttype=colored の場合のみ) ・ テ ン プ レー ト ・ グ リ フ (Type 3 フ ォ ン ト の colorized オプシ ョ ンが true の場合のみ) 174 第 8 章 : 色関数 C++ Java C# int shading(String shtype, double x0, double y0, double x1, double y1, double c1, double c2, double c3, double c4, String optlist) Perl PHP int shading(string shtype, float x0, float y0, float x1, float y1, float c1, float c2, float c3, float c4, string optlist) C int PDF_shading(PDF *p, const char *shtype, double x0, double y0, double x1, double y1, double c1, double c2, double c3, double c4, const char *optlist) カ レ ン ト 塗 り 色か ら 別の色へのブ レ ン ド を定義 し ます。 shtype シ ェ ーデ ィ ン グの種類。 線形シ ェ ーデ ィ ン グ を表す axial か、 ま たは円形の放射 シ ェーデ ィ ン グ を表す radial にす る 必要があ り ます。 x0 ・ y0 ・ x1 ・ y1 線形シ ェーデ ィ ン グの場合、 (x0, y0) と (x1, y1) はシ ェーデ ィ ン グの始点 と 終点の座標。 放射シ ェ ーデ ィ ン グの場合、 こ れ ら の点は開始円 と 終了円の中心を指定 し ます。 c1 ・ c2 ・ c3 ・ c4 シ ェーデ ィ ン グの終点のカ ラ ー値であ り 。PDF_setcolor( ) の色引数 と オプ シ ョ ン fillcolor ・ strokecolor と 同様にカ レ ン ト 塗 り 色空間で解釈 さ れます。 カ レ ン ト 塗 り 色空間が ス ポ ッ ト カ ラ ーの と き は c1 は無視 さ れ、 c2 で色の濃 さ を指定 し ます。 optlist シ ェ ーデ ィ ン グの諸特性を表 8.4 に従っ て記述 し たオプシ ョ ン リ ス ト 。 次のオプ シ ョ ンが使え ます : antialias ・ boundingbox ・ domain ・ extend0 ・ extend1 ・ N ・ r0 ・ r1 ・ startcolor 戻り値 シ ェーデ ィ ン グハン ド ル。 以後の PDF_shading_pattern( ) ・ PDF_shfill( ) への呼び出 し で、 カ レ ン ト の文書ス コ ープ を終え る ま で使え ます。 詳細 カ レ ン ト 塗 り 色が開始色 と し て使われます。それはパ タ ーンに も と づいた色であ っ てはい け ません。 スコープ オブ ジ ェ ク ト 以外任意 表 8.4 PDF_shading( ) のオプ シ ョ ン オプ シ ョ ン 説明 ・ と り う る値 antialias (論理値) シ ェ ーデ ィ ングにおいて ア ン チエ イ リ アシ ングを有効にするかど う かを指定 し ます。 デ フ ォ ル ト : false boundingbox (長方形) シ ェ ーデ ィ ングの外接枠をユーザー座標で定義 し た長方形。 こ の外接枠は、 シ ェ ーデ ィ ングが塗 られる際に一時的な ク リ ッ ピ ングパス と し て適用 さ れます (カ レ ン ト ク リ ッ ピ ングパス が効力を持っ ている と きはそれに加え て)。 こ のオプ シ ョ ンは、 PDF_clip( ) を適用せずにシ ェ ー デ ィ ング を切 り 抜 く のに有用で し ょ う 。 domain (float 2 個の リ ス ト ) 媒介変数 t の限界値を指定 し た 2 個の数値。 こ の変数は、 色勾配が軸の始点 と 終点の間を変動するにつれて、 こ の 2 値の間を線形的に変動する と 考え られます。 デ フ ォル ト : {0 1} extend0 (論理値) シ ェ ーデ ィ ング を始点よ り 先へ拡げるかど う かを指定 し ます。 デ フ ォ ル ト : false extend1 (論理値) シ ェ ーデ ィ ング を終点よ り 先へ拡げるかど う かを指定 し ます。 デ フ ォ ル ト : false N (float) 色遷移関数に対する累乗指数。 > 0 にする必要があ り ます。 デ フ ォ ル ト : 1 r0 (float。 放射シ ェ ーデ ィ ングのみ。 その場合は必須) 開始円の半径 r1 (float。 放射シ ェ ーデ ィ ングのみ。 その場合は必須) 終了円の半径 8.3 パ タ ーン と シ ェ ーデ ィ ング 175 表 8.4 PDF_shading( ) のオプ シ ョ ン オプ シ ョ ン 説明 ・ と り う る値 startcolor (色) 開始点の色。 このオプ シ ョ ンは、 この関数を カ レ ン ト カ ラ ーから 独立にするのに有用で し ょ う 。 デ フ ォル ト : カ レ ン ト 塗 り 色 176 第 8 章 : 色関数 9 画像 ・ SVG ・ テ ン プ レー ト 関数 9.1 画像 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの images/starter_image ト ピ ッ ク にあ り ます。 C++ Java C# int load_image(String imagetype, String filename, String optlist) Perl PHP int load_image(string imagetype, string filename, string optlist) C int PDF_load_image(PDF *p, const char *imagetype, const char *filename, int len, const char *optlist) デ ィ ス ク ベース か仮想の画像フ ァ イ ルを、 さ ま ざ ま なオプシ ョ ンに従っ て開 き ます。 imagetype 文字列 auto にす る と 、 PDFlib に画像フ ァ イ ル形式を自動検出す る よ う 指示 し ます (CCITT ・ raw 画像では不可能です)。 画像形式を明示的に文字列 bmp ・ ccitt ・ gif ・ jbig2 ・ jpeg ・ jpeg2000 (PDF 1.5 以上) ・ png ・ raw ・ tiff のいずれかで指定する と 、 若干速 度が向上 し ます。 すべての画像形式の詳細は PDFlib チ ュ ー ト リ アルで説明 し てい ます。 filename (名前文字列。グ ロ ーバル filenamehandling オプシ ョ ンに従っ て解釈 さ れます、 表 2.3 参照) 一般に、 開 き たい画像フ ァ イ ルの名前。 こ れは、 ロ ーカル フ ァ イ ルか仮想 フ ァ イ ルの名前にす る 必要があ り ます。 PDFlib は、 URL か ら は画像デー タ を取 り 寄せま せん。 指定 し た フ ァ イ ル名の フ ァ イ ルが見つか ら ず、 かつ imagetype=auto に し てい る と き は、 PDFlib は自動的に適切な フ ァ イ ル名拡張子を決定 し よ う と し ます。 PDFlib は、 与え ら れた filename に以下の一覧の拡張子をすべてつけ てみて (小文字 と 大文字の両方で) 、 searchpath で指定 し てい る デ ィ レ ク ト リ の中にその名前の フ ァ イ ルを見つけ よ う と し ま す: .bmp・.ccitt・.g3・.g4・.fax・.gif・.jbig2・.jb2・.jpg・.jpeg・.jpx・.jp2・.jpf・.j2k・ .png・.raw・.tif・.tiff len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位)。 len=0 にする と null 終 了文字列を与え る 必要があ り ます。 optlist 画像関連の特性を表 9.1 に従っ て指定 し たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ン が使え ます : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照) > 色関連オプシ ョ ン群 : colorize ・ honoriccprofile ・ iccprofile ・ invert ・ renderingintent > ク リ ッ ピ ン グ ・ マ ス ク ・ 等価オプシ ョ ン群 : alphachannelname ・ clippingpathname ・ downsamplemask ・ honorclippingpath ・ ignoremask ・ mask ・ masked > 画像を使 う ための特殊な PDF 機能群 : createtemplate ・ interpolate > 以下の共通 XObject オプシ ョ ン を使え ます (表 9.11 参照) : associatedfiles・georeference・iconname・layer・metadata・OPI-1.3・OPI-2.0・pdfvt・reference > PDF 出力を書かずに画像を分析す る ためのオプシ ョ ン : infomode 9.1 画像 177 > 画像デー タ を処理す る ためのオプシ ョ ン : cascadedflate ・ ignoreorientation ・ page ・ passthrough > 表 9.2 に従っ た、 CCITT ・ JBIG2 ・ raw 画像のためのオプシ ョ ン : bitreverse ・ bpc ・ components ・ copyglobals ・ height ・ imagehandle ・ inline ・ K ・ width 戻り値 画像ハン ド ル (ま たは createtemplate=true の場合にはテ ンプ レー ト ハン ド ル)。 以後の画 像関連の呼び出 し で使え ます。 errorpolicy=return の場合、 戻 り 値 -1 (PHP では 0) はエ ラ ーを示すので、 そ う でないか を呼び出 し 側で検査す る 必要があ り ます。 返 さ れた画像ハ ン ド ルは、 複数の PDF 文書にわた っ て再利用す る こ と はで き ません。 関数の呼び出 し が 失敗 し た と き は、 その失敗の原因を PDF_get_errmsg( ) で取得する こ と がで き ます。 詳細 こ の関数は、 imagetype 引数で決定 さ れ る 、 対応形式のいずれかの ラ ス タ グ ラ フ ィ ッ ク フ ァ イ ルを開いて分析 し 、 その画像デー タ を出力文書へコ ピー し ます。 こ の関数は、 出力 上にいかな る 視覚効果を も 与え ません。 取 り 込んだ画像を、 生成す る 出力文書の ど こ かに 実際に配置す る には、 PDF_fit_image( ) を使 う 必要があ り ます。 同 じ 画像を、 1 つの生成文 書内で複数回開 く こ と は推奨 し ません。 なぜな ら 、 画像デー タ 本体が出力文書へい く つ も コ ピ ー さ れて し ま う か ら です。 ア プ リ ケーシ ョ ン が こ の状況 を 回避で き な い場合には、 PDF_begin_document( ) の optimize オプシ ョ ン を用いて冗長な画像デー タ を除去す る こ と も で き ます。 PDFlib は、 与え ら れた filename の画像フ ァ イ ルを開き 、 内容を処理 し て、 呼び出 し か ら 戻 る 前に フ ァ イ ルを閉 じ ます。 画像は 1 つの文書内に何回で も 貼 る こ と がで き ますが (PDF_fit_image( ) を用いて) 、 画像フ ァ イ ル自体は、 こ の呼び出 し の後 も 開かれた ま ま に な っ てい る のではあ り ません。 PDF/A い く つかのオプシ ョ ンは制約 さ れます。 グ レース ケール画像は、 出力 イ ン テ ン ト (任意の種類) か、 PDF_begin_page_ext( ) で defaultgray オプシ ョ ン を必要 と し ます。 RGB 画像は、 RGB 出力 イ ン テ ン ト か、 PDF_begin_page_ext( ) で defaultrgb オプシ ョ ン を必要 と し ます。 CMYK 画像は、 CMYK 出力 イ ン テ ン ト か、 PDF_begin_page_ext( ) で defaultcmyk オプ シ ョ ン を必要 と し ます。 PDF/A-2/3 : JPEG 2000 画像は、 一定の条件を満たす必要があ り ます。 詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 PDF/X い く つかのオプシ ョ ンは制約 さ れます。 PDF/X-1a : RGB 画像は許 さ れません。 PDF/X-1a/3 : JBIG2 画像は許 さ れません。 PDF/X-3・4・5: グ レース ケール画像の場合は、出力 イ ン テ ン ト がグ レース ケールか CMYK のデバ イ ス でない と き は、 PDF_begin_page_ext( ) で defaultgray オプシ ョ ン を設定 し てお く 必要があ り ます。 RGB 画像の場合は、 出力 イ ン テ ン ト が RGB デバ イ ス でない と き は、 PDF_begin_page_ ext( ) で defaultrgb オプシ ョ ン を設定 し てお く 必要があ り ます。 CMYK 画像の場合は、 出力 イ ン テ ン ト が CMYK デバ イ ス でない と き は、 PDF_begin_ page_ext( ) で defaultcmyk オプシ ョ ン を設定 し てお く 必要があ り ます。 JBIG2 画像は許 さ れません。 JPEG 2000 画像は、 一定の条件を満たす必要があ り ます。 詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 178 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 PDF/VT こ の呼び出 し は、 PDF_begin_document( ) で usestransparency=false オプシ ョ ンが指定 さ れ たに も かかわ ら ず、 取 り 込まれた画像が透過を含んでいた場合には、 失敗 し ます。 PDF/UA 画像は、 Figure か Artifact と し て タ グ付けする べき です。 スコープ オブ ジ ェ ク ト 以外任意。 照応す る PDF_close_image( ) と ペアに し て呼び出すべ き です。 表 9.1 PDF_load_image( ) のオプ シ ョ ン キー 説明 alphachannel- (名前文字列。 TIFF 画像では不可。 ignoremask=true にする と 無視 さ れます) 指定 し た名前のアル name フ ァ チ ャ ン ネルを画像 フ ァ イルか ら読み取 り 、 それを ソ フ ト マス ク と し て画像に適用 し ます。 そ の名前のチ ャ ンネルが画像フ ァ イル内に存在 し ている必要があ り ます。 デ フ ォル ト : 画像内の最 初のアル フ ァ チ ャ ン ネル cascadedflate (論理値。 imagetype=jpeg のみ) true にする と 、 JPEG 圧縮 さ れた画像デー タ に、 Flate 圧縮の追 加のレ イ ヤーが適用 さ れます。 こ れは、 同色の広い領域を持つ画像等、 特定の場合には、 出力 フ ァ イルサイ ズを減ら す可能性があ り ます。 ただ し 、 多 く の タ イ プの画像内容について、 このオ プ シ ョ ンはフ ァ イルサイ ズを減ら さ ず、 む し ろ出力が大き く な る可能性も あ り ます。 デ フ ォル ト : false clippingpathname (文字列。 imagetype=tiff ・ jpeg のみ。 honorclippingpath=false にする と 無視 さ れます) 指定 し た名前のパス を画像フ ァ イルから 読み込んで、 それを ク リ ッ ピ ングパス と し て使います。 その名 前のパスが画像 フ ァ イル内に存在 し ている必要があ り ます。 特別な名前 Work Path を使 う と 、 Photoshop で作成 さ れた一時パス を指定する こ と がで き ます。 デ フ ォ ル ト : 画像フ ァ イル内で ク リ ッ ピ ングパス と し て与え ら れているパスの名前 colorize (カ ラ ーま たはスポ ッ ト カ ラ ーハン ド ル。 iccprofile オプ シ ョ ン を与え る と 無視 さ れます) スポ ッ ト カ ラ ーで画像に着色 し ます。 画像は、 白黒かグ レースケールの画像で なければな り ません。 createtemplate (論理値) true の場合、 プ レーン な画像 XObject ではな く フ ォ ーム XObject (PDFlib ではテ ン プ レー ト と 呼びます) の中に埋め込まれた PDF 画像 XObject を生成 し ます。 こ れは、 画像のみから 成る フ ォ ーム フ ィ ール ド ア イ コ ンのためのテ ン プ レー ト を作成する ために有用な場合があ り ます。 生成 さ れた テ ン プ レー ト に対するハン ド ルが返 さ れます。 デ フ ォル ト : false downsamplemask (論理値。 type=TIFF ・ PNG のみ) true の場合、 16 ビ ッ ト アルフ ァ チ ャ ン ネルを 8 ビ ッ ト へダウン サン プル し ます。 このオプ シ ョ ン を true に設定する こ と は、 Acrobat 9 で 16 ビ ッ ト マ ス ク が正 し く 表示 さ れないのを直すために使 う こ と がで き ます。 デ フ ォ ル ト : false honorclippingpath (論理値。 imagetype=tiff ・ jpeg のみ) 画像フ ァ イルから、 も し あればク リ ッ ピ ングパス を読み込 んで、 それを画像に適用 し ます。 デ フ ォ ル ト : true honoriccprofile (論理値。 imagetype=jpeg ・ png ・ tiff のみ。 colorize オプ シ ョ ンが指定 さ れている と きは強制的 に false にな り ます) 画像に よ っ て ICC プ ロ フ ァ イルが要求 さ れた場合には、 それが埋め込みに よ っ て直接であれ、 あ るいは間接的に (例 : Exif マー カ内の参照を通 じ て) であれ、 それに従い、 そ し てそれを その画像に適用 し ます。 デ フ ォル ト : true iccprofile (ICC ハン ド ルかキーワー ド ) 画像に適用 さ れる ICC プ ロ フ ァ イルのハン ド ル。 キーワー ド srgb は sRGB 色空間を選択 し ます。 デ フ ォル ト : プ ロ フ ァ イルが画像内に存在 し 、 かつ honoriccprofile=true に し ている と きは、 その埋め込まれた プ ロ フ ァ イル (またはその画像フ ァ イル内の等価な Exif 情報)。 ignoremask (論理値。 PDF/X-1/3 ・ PDF/A-1 では、 アルフ ァ チ ャ ン ネルを持つ画像では true に設定する必要 があ り ます) 画像内の透過情報 と アルフ ァ チ ャ ン ネルを無視 し ます。 デ フ ォ ル ト : false ignoreorientation (論理値。 imagetype=tiff・jpeg のみ) 画像内の向き情報をすべて無視 し ます。 こ れは、 画像デー タ 内の誤 っ た向き情報を補正 し たい と き に有用です。 デ フ ォ ル ト : false 9.1 画像 179 表 9.1 PDF_load_image( ) のオプ シ ョ ン キー 説明 infomode (論理値) true の場合、 画像は読み込まれますが、 そのピ ク セルデー タ は一切出力へ書き出 さ れま せん。 画像特性群を PDF_info_image( ) を用いて ク エ リ する こ と はで き ますが、 画像を PDF_fit_ image( ) やその他の関数を用いてページ上に配置する こ と はで き ません。 こ のオプ シ ョ ンは、 画像 を、 PDF 出力に副作用を一切及ぼ さ ずにチ ェ ッ ク する ために有用で し ょ う 。 false の場合、 そのピ ク セルデー タ は PDF 出力へただ ちに書き だ さ れます。 デ フ ォ ル ト : false interpolate (論理値。 PDF/A では false にする必要があ り ます) 画像の内挿を有効に し て、 画面や紙の上での 見ばえ を向上 さ せます。 こ れは、 Type 3 フ ォ ン ト 内のグ リ フ記述のためのビ ッ ト マ ッ プ画像の場 合に有用です。 デ フ ォ ル ト : false invert (論理値。 imagetype=jpeg2000 では mask=true に し ていなければ不可) 画像を反転 さ せます (明る い色 と 暗い色を入れ換え)。 こ れを使 う と 、 ア プ リ ケーシ ョ ンに よ っ て異な っ て解釈 さ れる画像 を、 適切に扱 う こ と がで き ます。 デ フ ォ ル ト : false mask (論理値。 イ ンデ ッ ク ス カ ラ ーを含め、 色要素が 1 個の画像のみ) 画像はマス ク と し て使われま す。 こ れは 1 ビ ッ ト のマス ク では必須ですが、 ピ ク セルあた り のビ ッ ト 数が 1 よ り 大き いマス ク では必須ではあ り ません。 デ フ ォ ル ト : false。 マス ク には 2 通 り の使い方があ り ます : > 他の画像を マス ク : 返 さ れた画像ハン ド ルは、 以後の呼び出 し で他の画像を開 く と き に使 う こ と がで き、 masked オプ シ ョ ンに与え る こ と がで き ます。 > 着色 さ れた透過画像を配置 : 画像内の、 0 のビ ッ ト のピ ク セルを透過 と し て扱い、 1 のビ ッ ト のピ ク セルを カ レ ン ト 塗 り 色で着色 し ます。 こ のオプ シ ョ ンは ignoremask=true を強制 し ます。 なぜな ら、 マス ク と し て用い ら れる画像は、 それ自身が内部マス ク を持つ こ と はで き ないか ら です。 masked (画像ハン ド ル。 画像がアルフ ァ チ ャ ン ネルを含んでお り 、 かつ ignoremask=false の場合には無 視 さ れます) カ レ ン ト 画像に対 し て マス ク と し て適用 し たい画像の画像ハン ド ル。 こ の画像ハン ド ルは、 あ ら か じ め PDF_load_image( ) を呼び出 し て返 さ れ、 ま だ閉 じ ていない ものです。 PDF 1.3 互換モー ド では、 マス クハン ド ルは 1 ビ ッ ト 画像を参照 し ている必要があ り 、 かつ、 mask オプ シ ョ ン を指定 し て読み込んであ る必要があ り ます。 PDF/A-1 ・ PDF/X-1/3 では、 こ のオプ シ ョ ン は 1 ビ ッ ト マス クの場合のみ許 さ れます。 page (整数。 imagetype=gif ・ jbig2 ・ tiff のみ。 それ以外の形式で使 う と きは 1 にする必要があ り ま す) 複数ページ画像 フ ァ イルから 、 指定番号の画像を取 り 出 し ます。 最初の画像の番号は 1 です。 要求 し たページが画像フ ァ イル内に見つから ない と きは、 その呼び出 し は失敗 し ます。 デ フ ォ ル ト :1 passthrough (論理値。 imagetype=tiff ・ jpeg のみ) TIFF ・ JPEG 画像デー タ の処理を制御 し ます。 TIFF 画像 (デ フ ォル ト : true) : true にする と 、 圧縮 さ れた TIFF 画像デー タ は、 可能な ら ば PDF 出力へ直接パス スルー さ れます。 こ のオプ シ ョ ン を false に設定する と 、 TIFF 画像が損傷 し た デー タ や不完全なデー タ を含む と き に役立つ場合があ り ます。 JPEG 画像 (デ フ ォ ル ト : false) : false にする と 、 PDFlib は、 Acrobat と の互換性のために JPEG 画像デー タ を変換 し ます。 true にする と 、 JPEG 画像デー タ は PDF 出力へ直接 コ ピー さ れます。 マルチスキ ャ ンおよびある種の CMYK JPEG 画像では、 こ のオプ シ ョ ンは無視 さ れます。 こ のオプ シ ョ ン を true に設定する と 、 処理は若干速 く な る こ と があ り ますが、 ある種のまれな種類の JPEG 画像が Acrobat 上で正 し く 表示 さ れな く な り ます。 180 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 表 9.1 PDF_load_image( ) のオプ シ ョ ン キー renderingintent 説明 (キーワー ド ) 画像に対する レ ン ダ リ ング イ ン テ ン ト (デ フ ォル ト : Auto) : PDF フ ァ イル内のレ ン ダ リ ング イ ン テ ン ト を指定せず、 デバイ スのデ フ ォ ル ト イ ン テ ン ト を使用 し ます。 典型的用途 : 未知の場合 AbsoluteColorimetric デバイ スの白色点 (紙色な ど) の補正が行われません。 色域外の色は、 デバイ スの色域 内の最も 近い値へマ ッ プ さ れます。 典型的用途 : 特色の正確な再現。 他の用途には推奨 し ません。 RelativeColorimetric 色デー タ がデバイ スの色域内へスケール さ れます。 この際、 白色点を互いにマ ッ プ し て、 色をわずかに偏移 さ せます。 典型的用途 : ベ ク ト ルグ ラ フ ィ ッ ク Saturation 色の彩度が温存 さ れます。 こ の際、 カ ラ ー値は偏移 さ れる可能性があ り ます。 典型的用 途 : ビ ジネスグ ラ フ ィ ッ ク Auto Perceptual 美 し い見た目を提供する ために色域内外両方の色を変更する こ と に よ っ て色の関係が温 存 さ れます。 典型的用途 : スキ ャ ン画像 template 非推奨。 createtemplate を使用 し て く だ さ い 表 9.2 PDF_load_image( ) で imagetype=ccitt か jbig2 か raw の場合のオプ シ ョ ン キー 説明 bitreverse (論理値。 imagetype=ccitt のみ) true にする と 、 圧縮デー タ 内のすべてのバイ ト のビ ッ ト 反転を し ます。 デ フ ォ ル ト : false bpc (整数。 imagetype=raw のみ。 その場合は必須) 色要素あた り のビ ッ ト 数。 1 ・ 2 ・ 4 ・ 8 ・ 16 のいず れかにする必要があ り ます (PDF 1.4 では値 16 は許容 さ れません) components (整数。 imagetype=raw のみ。 その場合は必須) 画像要素 (チ ャ ン ネル) の数。 1 ・ 3 ・ 4 のいずれ かにする必要があ り ます。 copyglobals (キーワー ド 。 imagetype=jbig2 のみ) JBIG2 ス ト リ ーム内のどのグローバルセグ メ ン ト が PDF へ 複製 さ れるかを指定 し ます。 JBIG2 ス ト リ ーム内にグローバルセグ メ ン ト が全然ない と きは、 こ の オプ シ ョ ンは全 く 効力を持ち ません (デ フ ォル ト : current) : height all JBIG2 ス ト リ ーム内のすべてのページに対するグローバルセグ メ ン ト を PDF へ複製 し ます。 こ れは、 同 じ JBIG2 ス ト リ ームから 複数のページが取 り 込まれる場合には、 用い る必要があ り ます。 同 じ JBIG2 ス ト リ ームから さ ら な るページ群が後で取 り 込まれる場 合には、 imagehandle オプ シ ョ ン を用いる必要があ り ます。 current JBIG2 ス ト リ ーム内のカ レ ン ト ページ (すなわち、 page オプ シ ョ ン で指定 し たページ) に対 し て必要なグローバルセグ メ ン ト のみを PDF へ複製 し ます。 これは、 同 じ JBIG ス ト リ ーム内から さ ら な るページが取 り 込まれない場合には、 用いる必要があ り ます。 (整数。 imagetype=raw ・ ccitt のみ。 その場合は必須) 画像の高 さ を、 ピ ク セル単位で指定 し ま す。 imagehandle (画像ハン ド ル。 imagetype=jbig2 のみ) 同 じ JBIG2 ス ト リ ームから作成 さ れた別の画像に付け ら れた既存のグ ローバルセグ メ ン ト への参照を追加 し ます。 こ の画像は、 以前に copyglobals=all オプ シ ョ ン で読み込まれている必要があ り ます。 カ レ ン ト JBIG2 ス ト リ ーム以外のフ ァ イルか ら 作成 さ れている画像を参照する こ と はエ ラ ーです。 指定 し た画像ハン ド ルは、 閉 じ られていては いけません。 デ フ ォル ト : 画像ハン ド ルな し 、 すなわち、 新規 PDF オブ ジ ェ ク ト が、 カ レ ン ト ページのみに対するすべての必要なグローバルセグ メ ン ト を持っ て生成 さ れます 9.1 画像 181 表 9.2 PDF_load_image( ) で imagetype=ccitt か jbig2 か raw の場合のオプ シ ョ ン キー 説明 inline (論理値。 imagetype=ccitt ・ jpeg ・ raw のみ。 オプ シ ョ ン iccprofile か colorize のいずれか 1 つ が与え られている場合には不可) true にする と 、 画像は直接、 ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フのいずれかの記述の内容ス ト リ ーム内へ書き込まれます。 このオプ シ ョ ンは暗黙的に、 PDF_fit_image( ) と PDF_close _image( ) を呼び出 し ます (PDFlib チ ュ ー ト リ アル参照)。 こ のオプ シ ョ ン を用いる こ と は、 Type 3 フ ォ ン ト のビ ッ ト マ ッ プグ リ フ に対 し て推奨 さ れますが、 それ以 外の場面では用いるべき ではあ り ません。 このオプ シ ョ ン を与えた場合には PDF_close_image( ) を 呼び出 し てはいけません。 デ フ ォ ル ト : false K (整数。 imagetype=ccitt のみ) 圧縮方式選択のための CCITT のパラ メ ー タ 。 デ フ ォ ル ト : 0 width -1 G4 圧縮 0 一次元 G3 圧縮 (G3-1D) 1 一 ・ 二次元混合圧縮 (G3, 2-D) (整数。 imagetype=raw ・ ccitt のみ。 その場合は必須) 画像の幅を、 ピ ク セル単位で指定 し ます C++ Java C# void close_image(int image) Perl PHP close_image(int image) C void PDF_close_image(PDF *p, int image) 画像かテ ンプ レー ト を閉 じ ます。 image PDF_load_image( ) か PDF_begin_template_ext( ) で取得 し た有効な画像かテ ンプ レー ト ハン ド ル。 詳細 こ の関数は、 PDFlib 内部の関連す る 画像構造に対 し てのみ効力を持ち ます。 画像を フ ァ イ ルか ら 開いていた と し て も 、 画像フ ァ イ ル本体は、 その PDF_load_image( ) への呼び出 し が完了 し た時点ですでに閉 じ ら れてい る ため、 こ の呼び出 し には影響 さ れません。 画像ハ ン ド ルは、 こ の関数で閉 じ た後は も う 使え ません。 スコープ オブ ジ ェ ク ト 以外任意。 照応す る PDF_load_image( ) (inline オプシ ョ ンが用い ら れてい る 場合を除き ) か PDF_begin_template_ext( ) と 必ずペアに し て呼び出す必要があ り ます。 C++ Java C# void fit_image(int image, double x, double y, String optlist) Perl PHP fit_image(int image, float x, float y, string optlist) C void PDF_fit_image(PDF *p, int image, double x, double y, const char *optlist) 画像ま たはテ ンプ レー ト をページ上に、 さ ま ざ ま なオプシ ョ ンに従っ て配置 し ます。 image PDF_load_image( ) ま たは PDF_begin_template_ext( ) で取得 し た有効な画像ま たは テ ンプ レー ト ハン ド ル。 こ の画像は、 infomode=true を用いて読み込まれていてはいけ ま せん。 x ・ y 画像ま たはテ ンプ レー ト を、さ ま ざ ま なオプシ ョ ンに従っ て貼 り たい参照点の座標 を、 ユーザー座標系で指定 し ます。 optlist 画像はめ込み ・ 処理オプシ ョ ン群を指定 し たプシ ョ ン リ ス ト 。 以下のオプシ ョ ン が使え ます : 182 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 > 表 6.1 に従っ たはめ込みオプシ ョ ン群 : boxsize・blind・dpi・fitmethod・matchbox・orientate・position・rotate・scale・showborder > 表 9.3 に従っ た、 画像処理のためのオプシ ョ ン群 : adjustpage ・ gstate ・ ignoreclippingpath ・ ignoreorientation > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag 詳細 画像ま たはテ ンプ レー ト (以下、 ま と めてオブジ ェ ク ト と いい ます) は、 参照点 (x, y) に 合わせて配置 さ れ ま す。 デフ ォ ル ト では、 オブジ ェ ク ト の左下隅が参照点に配置 さ れ ま す。 し か し こ の動作は、 orientate ・ boxsize ・ position ・ fitmethod オプシ ョ ン で変え る こ と も で き ま す。 デ フ ォ ル ト では、 画像はその解像度の値に従っ て拡縮 さ れ ま す。 こ の動作 は、 dpi ・ scale ・ fitmethod オプシ ョ ンで変え る こ と も で き ます。 PDF/UA すべての ラ ス タ 画像は、 tag オプシ ョ ン を用いて、 あ る いは事前の PDF_begin_item( ) への 呼び出 し を用いて、 Artifact か Figure と し て タ グ付け さ れ る 必要があ り ます。 スコープ ページ ・ パ タ ーン (パ タ ーンの painttype が colored であ る か、 ま たは画像がマ ス ク であ る 場合のみ) ・ テ ン プ レー ト ・ グ リ フ (Type 3 フ ォ ン ト の colorized オプシ ョ ンが true であ る か、 ま たは画像がマ ス ク の場合のみ)。 こ の関数は、 画像ハン ド ルを PDF_close_image( ) で閉 じ ない限 り 、 任意のページ上で任意の回数呼び出す こ と がで き ます。 . 表 9.3 PDF_fit_image( ) ・ PDF_fit_graphics( ) ・ PDF_fit_pdi_page( ) ・ PDF_fill_imageblock( ) ・ PDF_fill_graphicsblock( ) ・ PDF_ fill_pdfblock( ) を用いた画像 ・ グ ラ フ ィ ッ ク ・ PDF ページ ・ テ ン プ レー ト 処理のためのオプ シ ョ ン オプ シ ョ ン 説明 adjustpage (論理値。 ページス コ ープ でのみ効力を持ち ます。 PDF_begin_page_ext( ) で topdown オプ シ ョ ン を与 えている と きは不可。 PDF_fill_*block( ) では不可) カ レ ン ト ページの寸法を、 オブ ジ ェ ク ト に合わ せて調整 し 、 ページの右上隅がオブ ジ ェ ク ト の右上隅プ ラ ス (x, y) と 一致する よ う に し ます。 こ こ で x ・ y は関数の引数です。 MediaBox が調整 さ れ、 それ以外の枠項目はすべてデ フ ォ ル ト に リ セ ッ ト さ れます。 position オプ シ ョ ン を値 0 に し て、 以下のよ う な使い方がで き ます : x ≧ 0 かつ y ≧ 0 オブ ジ ェ ク ト は余白で囲まれます。 こ の余白は、 横方向の厚 さ が y、 縦方向の厚 さ が x にな り ます。 x < 0 かつ y < 0 画像から 横 と 縦の帯が切 り 取 られます。 デ フ ォル ト : false gstate (グ ラ フ ィ ッ ク ス テー タ スハン ド ル) PDF_create_gstate( ) で取得 し たグ ラ フ ィ ッ ク ス テー タ スのハ ン ド ル。 こ のグ ラ フ ィ ッ ク ス テー タ スは、 こ の関数で作成 さ れるすべてのグ ラ フ ィ ッ ク 要素に対 し て効力を持ち ます。 デ フ ォ ル ト : グ ラ フ ィ ッ ク ス テー タ スな し (すなわち、 カ レ ン ト ス テー タ スが用い られます) ignoreclippingpath (論理値。 TIFF ・ JPEG 画像のみ) 画像フ ァ イルの中に ク リ ッ ピ ングパスがあ っ て も無視 さ れます。 デ フ ォル ト : false、 すなわち ク リ ッ ピ ングパスは適用 さ れます ignoreorientation (論理値。 TIFF ・ JPEG 画像のみ) 画像内の向き情報をすべて無視 し ます。 こ れは、 誤 っ た向き情 報を補正 し たい と き に有用です。 デ フ ォ ル ト : PDF_load_image( ) の ignoreorientation オプ シ ョ ン の値 9.1 画像 183 C++ Java C# double info_image(int image, String keyword, String optlist) Perl PHP float info_image(int image, string keyword, string optlist) C double PDF_info_image(PDF *p, int image, const char *keyword, const char *optlist) 画像かテ ンプ レー ト を組版す る 際の、 寸法な ど の特性群を取得 し ます。 image 関数 PDF_load_image( ) か PDF_begin_template_ext( ) で取得 し た有効な画像かテ ンプ レー ト ハン ド ル。 keyword 求め る 情報を指定 し た キー ワー ド : > 表 6.3 に従っ た、 オブジ ェ ク ト はめ込みの結果を ク エ リ す る ためのキーワ ー ド : boundingbox ・ fitscalex ・ fitscaley ・ height ・ objectheight ・ objectwidth ・ width ・ x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 ・ x4 ・ y4 > 表 9.4 に従っ た さ ら な る キーワ ー ド : clippingpath・checkcolorspace・filename・iccprofile・imageheight・imagemask・imagetype・ imagewidth・infomode・mirroringx・mirroringy・orientation・resx・resy・strips・transparent・ xid optlist 以下のオプ シ ョ ン を使え ます : > PDF_fit_image( ) に対す る オプシ ョ ン群。 求め ら れた キー ワー ド の値を決定す る のに関 係のないオプシ ョ ンは無視 さ れます。 > 基礎を なす画像 と テ ンプ レー ト の間を切 り 替え る ためのオプシ ョ ン : useembeddedimage 戻り値 キーワ ー ド で要求 し た何 ら かの画像特性の値。要求 し た特性が画像フ ァ イ ル内で得 ら れな い と き は、こ の関数は 0 を返 し ます。オブジ ェ ク ト ハン ド ルを要求 し た と き は(clippingpath 等) 、 こ の関数はそのオブジ ェ ク ト のハン ド ルを返すか、 あ る いはそのオブジ ェ ク ト が得 ら れない と き は -1 (PHP では 0) を返 し ます。 要求 さ れた キーワー ド がテ キ ス ト を生み出 す場合には、 文字列番号が返 さ れ、 照応す る 文字列を、 PDF_get_string( ) を用いて取得す る 必要があ り ます。 詳細 こ の関数は、与えたオプシ ョ ン群に従っ て画像を配置す る ために必要なすべての計算を実 行 し ますが、 ページ上には実際の出力を一切生成 し ません。 画像の参照点は {0 0} と 見な さ れます。 スコープ オブ ジ ェ ク ト 以外任意 表 9.4 PDF_info_image( ) のキーワー ド キーワー ド 説明 clippingpath 画像のク リ ッ ピ ン グパスのパスハン ド ルか、 あるいはク リ ッ ピ ン グパスが存在 し ない と き は -1 (PHP では 0) checkcolorspace その画像かテ ン プ レ ー ト が、 カ レ ン ト ページ上に、 PDF/A か PDF/X の色関係の違反の リ ス ク を冒 さ ずに安全に配置で き る な ら 1、 そ う でないな ら 0。 こ のチ ェ ッ クは、 そのページの デ フ ォ ル ト 色空間を考慮に入れます。 こ のデ フ ォル ト 色空間は、 その画像を読み込む際に はチ ェ ッ ク さ れません。 filename 画像 フ ァ イル (あてはま る場合は searchpath デ ィ レ ク ト リ を含む) の名前に対する文字列 番号、 あるいはテ ン プ レー ト の場合には -1 iccprofile 画像内に埋め込まれている ICC プ ロ フ ァ イルのハン ド ルか、 あるいはプ ロ フ ァ イルが全然 存在 し ない と きは -1 (PHP では 0) 184 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 表 9.4 PDF_info_image( ) のキーワー ド キーワー ド 説明 imageheight 画像 : 高 さ を ピ ク セル単位で表 し た もの テ ン プ レー ト : ユーザーが与えた高 さ 、 あるいは reference オプ シ ョ ンの場合には自動的 に決定 さ れた高 さ imagemask 画像に関連付け られたマス クの画像ハン ド ルか、 あ るいはマス クが付け ら れていないな ら -1 (PHP では 0) imagetype 画像の種別 (形式) に対する文字列番号 : ラ ス タ 画像の場合には bmp ・ ccitt ・ gif ・ jbig2 ・ jpeg ・ jpeg2000 ・ png ・ raw ・ tiff。 与え られたハン ド ルに関連付け られたオブ ジ ェ ク ト が PDF_begin_template_ext( ) を用いて作成 さ れている場合には、 文字列 template が返 さ れます。 imagewidth 画像 : 幅を ピ ク セル単位で表 し た もの テ ン プ レー ト : ユーザーが与えた幅、 あ るいは reference オプ シ ョ ンの場合には自動的に 決定 さ れた幅 infomode その画像が infomode オプ シ ョ ン を用いて読み込まれている場合には 1、 そ う でないな ら 0 mirroringx ・ mirroringy 指定 し たオプ シ ョ ン群に従 っ た画像の横反転 ・ 縦反転 (1 か -1 かで表 さ れます) orientation 画像の向きの値。 orientation タ グ を含む TIFF 画像については この タ グの値が返 さ れ、 それ 以外の場合にはすべて -1 が返 さ れます。 PDFlib は、 1 以外の向きの値を自動的に補償 し ま す。 resx ・ resy 画像の横解像度 ・ 縦解像度。 正の値は、 画像の解像度を イ ン チあた り ピ ク セル数 (dpi) で 表 し ます。 値 0 は、 解像度が未知である こ と を意味 し ます。 負の値は、 非正方ピ ク セルの 縦横比を決定する ために縦横相伴 っ て用い られる こ と があ り ますが、 絶対的な意味は一切 持ち ません。 strips 画像ページの数 (あ る種の複数ページ TIFF 画像の場合のみ 1 以外にな る こ と があ り ます) transparent 画像が透過 (> 1 ビ ッ ト のアルフ ァ チ ャ ン ネル) を含んでいる な ら 1、 そ う でないな ら 0。 アルフ ァ チ ャ ン ネルが元画像フ ァ イルか ら読み込まれた場合、 ま たは画像が mask オプ シ ョ ン を用いて読み込まれている場合には、 透過が存在する と 見な さ れます。 xid (PDF/VT のみ) 画像かテ ン プ レー ト の GTS_XID エ ン ト リ に対する文字列番号、 あ るいは GTS_XID 値が割 り 当て ら れていない場合には -1。こ の文字列は、DPI のための CIP4/Summary/ Content/Referenced メ タ デー タ プ ロパテ ィ で使用で き ます。 表 9.5 PDF_info_image( ) のオプ シ ョ ン キー 説明 useembedded- (論理値。 createtemplate=false の場合は無視 さ れます) true の場合、 テ ン プ レー ト 内に埋め込 image まれている画像の情報がク エ リ さ れ、 そ う で ないな ら テ ン プ レ ー ト の情報がク エ リ さ れます。 useembeddedimage=true の場合には、 い く つかのキーワー ド (dpi な ど) は、 元画像に対 し てのみ 意味を持ち、 生成 さ れた テ ン プ レー ト では意味を持ち ません。 と り わけ、 こ れら の値を、 その画 像のために作成 さ れたテ ン プ レー ト をはめ込むために使用するべき ではあ り ません。 デ フ ォル ト : false 9.1 画像 185 9.2 SVG グ ラ フ ィ ッ ク ク ッ ク ブ ッ ク フ ル コ ー ド サン プルが、 ク ッ ク ブ ッ ク ト ピ ッ ク graphics/starter_svg にあ り ます。 C++ Java C# int load_graphics(String type, String filename, String optlist) Perl PHP int load_graphics(string type, string filename, string optlist) C int PDF_load_graphics(PDF *p, const char *type, const char *filename, int len, const char *optlist) さ ま ざ ま なオプシ ョ ンに従っ て、デ ィ ス ク ベース か仮想ベ ク ト ルグ ラ フ ィ ッ ク フ ァ イ ルを 開 き ます。 type ベ ク ト ルグ ラ フ ィ ッ ク フ ァ イ ルの種別。 キーワー ド auto は、 自動的に フ ァ イ ル種 別を決定 し ます。 こ れは、 SVG グ ラ フ ィ ッ ク を指定する svg と 等価です。 filename (名前文字列。グ ロ ーバル filenamehandling オプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) 開 き たいグ ラ フ ィ ッ ク フ ァ イ ルの名前。 こ れは、 デ ィ ス ク ベース か仮想フ ァ イ ルの名前であ る 必要があ り ます。 PDFlib は、 URL か ら グ ラ フ ィ ッ ク を引っ張っ て き ま せん。 指定 さ れた フ ァ イ ル名を持つフ ァ イ ルが見つか ら ない と き は、 PDFlib は、 適切な フ ァ イ ル名接尾辞を自動的に決定 し よ う と 試みます。 こ れは、 以下の リ ス ト か ら すべての接頭 辞を (小文字 と 大文字の両方で)、 指定 さ れた filename に付加 し て、 その名前を持つフ ァ イ ルを、 検索パ ス で指定 さ れたデ ィ レ ク ト リ 群の中で見つけ よ う と 試みます : .svg・.svgz len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位で)。 len = 0 の場合は、 ヌ ル終端文字列を与え る 必要があ り ます。 optlist グ ラ フ ィ ッ ク 関連特性群を指定 し たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ン を使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照) > 表 9.6 に従っ た フ ォ ン ト 関連オプシ ョ ン : defaultfontfamily ・ defaultfontoptions ・ fallbackfontfamily ・ fallbackfontoptions > 表 9.6 に従っ たサ イ ズオプシ ョ ン : fallbackheight ・ fallbackwidth ・ forcedheight ・ forcedwidth > 表 9.6 に従っ た画像関連オプシ ョ ン : defaultimageoptions ・ fallbackimage > 表 9.6 に従っ たその他の SVG 処理オプシ ョ ン : errorconditions ・ lang > 表 9.6 に従っ た特殊 PDF 機能 : devicergb ・ templateoptions 戻り値 以後のグ ラ フ ィ ッ ク 関連呼び出 し で使用で き る グ ラ フ ィ ッ ク ハン ド ル。errorpolicy= return の場合には、 戻 り 値 -1 (PHP では 0) がエ ラ ーを知 ら せますので、 呼び出 し 側は こ れを チ ェ ッ ク する 必要があ り ます。 返 さ れた グ ラ フ ィ ッ ク ハン ド ルは、 複数の PDF 文書にわ た っ て再利用す る こ と が可能です。 こ の関数呼び出 し が失敗 し た場合には、 その失敗の原 因を、 PDF_get_errmsg( ) を用いて要求す る こ と も で き ます。 詳細 186 こ の関数は、 type 引数に よ っ て決定 さ れた通 り の、 対応フ ォーマ ッ ト 群の う ちの 1 つのベ ク ト ルグ ラ フ ィ ッ ク フ ァ イ ルを、 開いて分析 し ます。 そのグ ラ フ ィ ッ ク デー タ は、 こ のグ ラ フ ィ ッ ク が PDF_close_graphics( ) を用いて閉 じ ら れ る か、 あ る いは PDFlib オブジ ェ ク ト の継続期間の終了ま で格納 さ れます。 こ の関数は、 PDF 出力上に何の視覚的影響 も 与え ま せん。 取 り 込まれた グ ラ フ ィ ッ ク を、 生成 さ れ る 文書内の ど こ かに実際に配置す る ために 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 は、 PDF_fit_graphics( ) を使 う 必要があ り ます。 同一生成文書上で同一グ ラ フ ィ ッ ク を複 数回開 く こ と は、そのグ ラ フ ィ ッ ク デー タ がその出力文書へ複数回複製 さ れ る こ と にな り ますので、 推奨 し ません。 PDFlib は、 与え ら れた filename を持つグ ラ フ ィ ッ ク フ ァ イ ルを開き 、 その内容を処理 し て、 こ の呼び出 し か ら 返 る 前にその フ ァ イ ルを閉 じ ます。 フ ォ ン ト 埋め込み ( と り わけ PDF/A ・ PDF/X ・ PDF/UA の場合に意味を持ち ます) : そ のグ ラ フ ィ ッ ク の中で使われてい る すべての フ ォ ン ト (ま たは然 る べ き デフ ォ ル ト フ ォ ン ト 群) に対す る フ ォ ン ト ア ウ ト ラ イ ン フ ァ イ ル を 構成す る 必要が あ り ま す。 こ れは、 enumeratefonts オプシ ョ ン を用いて実現で き ます (25 ページ 「2.3 グ ロ ーバルオプシ ョ ン」 参照)。 PDF/A すべての必要な フ ォ ン ト を埋め込む必要があ り ます(上述)。devicergb オプシ ョ ンは、PDF_ begin_page_ext( ) で defaultrgb オプシ ョ ンが設定 さ れてい る か、 ま たは出力 イ ン テ ン ト が RGB デバ イ ス であ る 場合にのみ許容 さ れます。 PDF/A-1 : 透過を持つグ ラ フ ィ ッ ク は許容 さ れません。 PDF/A-2a/3a : グ ラ フ ィ ッ ク が、 PUA キ ャ ラ ク タ を 持つ テ キ ス ト を 含む場合 に は、 ActualText サブオプシ ョ ン を伴 う tag オプシ ョ ン を与え る 必要があ り ます。 PDF/X すべての必要な フ ォ ン ト を埋め込む必要があ り ます (上述)。 PDF/X-1a : こ の関数を呼び出 し てはいけ ません。 PDF/X-3 : 透過を持つグ ラ フ ィ ッ ク は許容 さ れません。 PDF/X-3/4/5 : devicergb オプシ ョ ンは、 PDF_begin_page_ext( ) で defaultrgb オプシ ョ ン が設定 さ れてい る か、 ま たは出力 イ ン テ ン ト が RGB デバ イ ス であ る 場合にのみ許容 さ れ ます。 PDF/VT PDF_begin_document( )でusestransparency=false オプシ ョ ンが指定 さ れたに も かかわ ら ず、 取 り 込ま れた グ ラ フ ィ ッ ク が透過を含んでい る 場合、 こ の呼び出 し は失敗す る おそれがあ り ます。 PDF/UA グ ラ フ ィ ッ ク を、 Figure か Artifact と し て タ グ付けす る べ き です。 すべての必要な フ ォ ン ト を埋め込む必要があ り ます (上述)。 グ ラ フ ィ ッ ク が、 PUA キ ャ ラ ク タ を持つテ キ ス ト を含む場合には、 ActualText サブオプシ ョ ン を伴 う tag オプシ ョ ン を与え る 必要があ り ま す。 スコープ 任意。 templateoptions が指定 さ れてい る 場合には、 オブ ジ ェ ク ト ス コ ープは許容 さ れま せん。 表 9.6 PDF_load_graphics( ) のオプ シ ョ ン キー 説明 defaultfontfamily (名前文字列) そのグ ラ フ ィ ッ ク フ ァ イルの中のいずれかのテキス ト に対する フ ォ ン ト が指定 さ れ ていないか得ら れない と き に用い られる フ ォ ン ト フ ァ ミ リ の名前。 デ フ ォ ル ト : Arial Unicode MS が得 られる な ら それ、 得 られないな ら Helvetica defaultfontoptions (オプ シ ョ ン リ ス ト ) 表 4.2 に従っ た フ ォ ン ト 読み込みオプ シ ョ ン群。 グ ラ フ ィ ッ ク フ ァ イル内の テキス ト に対 し て フ ォ ン ト が必要な際に、 こ の フ ォ ン ト がそれま でにまだ読み込まれていなか っ た場合には、 こ こ で指定 さ れたオプ シ ョ ン群が PDF_load_font( ) に与え られます。 デ フ ォ ル ト : {subsetting embedding skipembedding={latincore standardcjk} } defaultimageoptions (オプ シ ョ ン リ ス ト ) 表 9.1 に従っ た画像読み込みオプ シ ョ ン群。 埋め込まれた、 または外部の画 像が処理 さ れる際には、 こ こ で指定 さ れたオプ シ ョ ン群が PDF_load_image( ) に与え ら れます。 デ フ ォル ト : { } 9.2 SVG グ ラ フ ィ ッ ク 187 表 9.6 PDF_load_graphics( ) のオプ シ ョ ン キー 説明 devicergb (論理値。 PDF/A と PDF/X-3/4/5 では、 こ のオプ シ ョ ンは、 PDF_begin_page_ext( ) に defaultrgb オプ シ ョ ンが与え ら れているか、 または出力イ ン テ ン ト が RGB デバイ ス である場合にのみ許容 さ れます) true の場合、 SVG 内のグ ラ フ ィ ッ ク ・ テキス ト 色は sRGB で な く DeviceRGB 色空間で解 釈 さ れ、 ま た、 埋め込まれた ラ ス タ 画像は honoriccprofile=false を用いて処理 さ れます。 デ フ ォル ト : false errorconditions (オプ シ ョ ン リ ス ト ) エ ラ ーを引き起 こ す条件の リ ス ト (デ フ ォ ル ト : 空) : attributes (文字列の リ ス ト ) 指定 さ れた SVG 属性群の う ちの 1 つが存在 し 、 し か し PDFlib がそ れに対応 し ていない場合に、 エ ラ ーが発生 し ます (非対応属性の一覧については PDFlib チ ュ ー ト リ アルを参照)。 デ フ ォ ル ト では、 非対応属性は無視 さ れます。 elements (文字列の リ ス ト )指定 さ れた SVG エ レ メ ン ト 群の う ちの 1 つが存在 し 、し か し PDFlib が それに対応 し ていない場合に、 エ ラ ーが発生 し ます (非対応エ レ メ ン ト の一覧について は PDFlib チ ュ ー ト リ アルを参照)。 デ フ ォル ト では、 非対応エ レ メ ン ト は無視 さ れま す。 references (キーワー ド の リ ス ト ) 以下の種別の参照の う ちの 1 つが解決または実行で き ない場合に エ ラ ーが発生 し ます (デ フ ォ ル ト では、 image 以外のすべての種別が黙 っ て無視 さ れ、 警告が出力 さ れます) : image 画像ま たはグ ラ フ ィ ッ ク フ ァ イルへの参照。 デ フ ォ ル ト 動作についてはオプ シ ョ ン fallbackimage を参照 internal SVG エ レ メ ン ト への内部参照 external 画像かグ ラ フ ィ ッ ク以外のフ ァ イルへの参照 fontfamily フ ォ ン ト フ ァ ミ リ への参照 font フ ォ ン ト フ ァ ミ リ ・ ウ ェ イ ト ・ ス タ イルを通 じ て指定 さ れた フ ルフ ォ ン ト 名 への参照 fallbackfontfamily (名前文字列) 各 フ ォ ン ト のための予備フ ォ ン ト を作成する ために用い られる フ ォ ン ト フ ァ ミ リ の 名前。 そのグ ラ フ ィ ッ ク フ ァ イル内で予備フ ォ ン ト 群がすでに指定 さ れている場合にはそれに付 加 さ れます。 デ フ ォ ル ト : 空 fallbackfontoptions (オプ シ ョ ン リ ス ト ) fallbackfontfamily オプ シ ョ ン を通 じ て作成 さ れた予備 フ ォ ン ト 群に適用 さ れる オプ シ ョ ン群。 表 4.3 (74 ページ) に従 っ た、 以下のオプ シ ョ ン を使え ます : fontsize・ forcechars・textrise。 デ フ ォ ル ト : 空 fallbackheight (float。 forcedheight が与え られている場合には無視 さ れます) はめ込み処理のための SVG グ ラ フ ィ ッ クの高 さ (ユーザー座標で)。 デ フ ォ ル ト : SVG の viewBox 属性で与え ら れている高 さ が存 在する な ら それ、 ないな ら 1000 188 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 表 9.6 PDF_load_graphics( ) のオプ シ ョ ン キー 説明 fallbackimage (オプ シ ョ ン リ ス ト ) グ ラ フ ィ ッ クか画像要素のはめ込み枠のために確保 さ れている スペース を、 その要素が得ら れない と き にどのよ う に視覚化するかを指定 し ます (色は、 devicergb=false の場 合には sRGB で解釈 さ れ、 そ う でない場合には RGB で解釈 さ れます)。 こ のオプ シ ョ ン を何も サブ オプ シ ョ ン な し で与え る と 、 グ レーの半透明の市松模様が描かれます (デ フ ォル ト : 代替表示な し) : fillcolor (RGB カ ラ ーかキーワー ド ) その領域を市松模様で塗る ために用い ら れる色 (gridsize > 0 の場合)。 こ の場合、 半数の正方形はこ の指定 し た色で描かれ、 残 り 半 数の正方形は透明にな り ます。 あるいは gridsize=0 の場合には、 その領域を無地で塗 る ために用い ら れる色。 キーワー ド none と する と 、 その領域は塗 られません。 デ フ ォ ル ト : LightGrey gridsize (float かパーセ ン ト 値) 市松模様の中の正方形の幅を、 デ フ ォ ル ト 座標で、 またはその はめ込み枠の幅に対するパーセ ン ト 値 と し て表 し た もの。 パーセ ン ト 値は、 その領域内 に整数個の正方形が収ま る よ う に丸め られます。 gridsize=0 と する と 、 その領域は、 市松模様でな く 無地で塗られます。 デ フ ォル ト : 10 image (画像またはテ ン プ レ ー ト ハン ド ル) そのはめ込み枠の中へ fitmethod=entire を用いて 配置 さ れる画像かテ ン プ レー ト 。 デ フ ォル ト ; 画像ま たはテ ン プ レー ト な し opacity (範囲 0 ~ 1 の float、またはパーセ ン ト 値)市松模様の正方形かその領域内部の不透明度。 デ フ ォル ト : 0.5 strokecolor (RGB カ ラ ーかキーワー ド ) その境界領域 と その領域内部の十字を描線する ために用い ら れる色。 キーワー ド none と する と 、 境界 と 十字は描線 さ れません。 デ フ ォル ト : Red fallbackwidth (float。 forcedwidth が与え られている場合には無視 さ れます) はめ込み処理のための SVG グ ラ フ ィ ッ ク の幅 (ユーザー座標で)。 デ フ ォル ト : SVG の viewBox 属性で与え られている幅が存在す る な ら それ、 ないな ら 1000 forcedheight (float) その SVG グ ラ フ ィ ッ クの高 さ (も し あれば) が無視 さ れ、 そのかわ り に、 指定 さ れた値が デ フ ォル ト 座標系で適用 さ れます。 デ フ ォ ル ト : そのグ ラ フ ィ ッ ク の高 さ forcedwidth (float) その SVG グ ラ フ ィ ッ クの幅 ( も し あれば) が無視 さ れ、 そのかわ り に、 指定 さ れた値がデ フ ォ ル ト 座標系で適用 さ れます。 デ フ ォ ル ト : そのグ ラ フ ィ ッ クの幅 lang (文字列) そのグ ラ フ ィ ッ ク フ ァ イルに対する自然言語。 こ れはた と えば、 SVG の switch エ レ メ ン ト で使用で き ます。 こ の言語指定の形式は、 PDF_begin_document( ) の lang オプ シ ョ ン と 同 じ で す (表 3.3 参照)。 デ フ ォル ト : LANG 環境変数で見つか っ た言語識別子。 templateoptions (オプ シ ョ ン リ ス ト ) この与え ら れたオプ シ ョ ン リ ス ト に従っ て テ ン プ レ ー ト (PDF フ ォ ーム XObject) を作成 し ます。 このオプ シ ョ ンは、 このグ ラ フ ィ ッ ク が複数回配置 さ れる場合、 または 特定のテ ン プ レー ト 機能群が必要な場合 (例 : PDF/VT のために) に推奨 さ れます。 こ の与え られたオプ シ ョ ン リ ス ト (空で も よい) は、 PDF_begin_template_ext( ) に対 し て用い ら れ ます。 以下の共通 XObject オプ シ ョ ン群を使え ます (表 9.11 参照) : associatedfiles ・ iconname ・ layer ・ metadata ・ pdfvt ・ transparencygroup。 そのテ ン プ レー ト の幅 と 高 さ は、 そのグ ラ フ ィ ッ クのサイ ズに基づいて決定 さ れます。 そのテ ン プ レー ト は、 PDF 出力へ、 PDF_close_graphics( ) で、 ま たはその文書の終了で書き だ さ れます (後 者は、 こ のグ ラ フ ィ ッ ク フ ァ イルに対 し て PDF_fit_graphics( ) が少な く と も 1 回呼び出 さ れた場合 のみ)。 9.2 SVG グ ラ フ ィ ッ ク 189 C++ Java C# void close_graphics(int graphics) Perl PHP close_graphics(int graphics) C void PDF_close_graphics(PDF *p, int graphics) ベ ク ト ルグ ラ フ ィ ッ ク を閉 じ ます。 graphics PDF_load_graphics( ) を用いて取得 さ れた有効な グ ラ フ ィ ッ ク ハン ド ル。 詳細 PDFlib の関連付いた内部グ ラ フ ィ ッ ク 構造は削除 さ れます。 PDF_load_graphics( ) で templateoptions オプシ ョ ンが指定 さ れた場合には、そのグ ラ フ ィ ッ ク を閉 じ る 前に、それ に照応す る PDF テ ンプ レー ト が作成 さ れます。 そのグ ラ フ ィ ッ ク が フ ァ イ ルか ら 開かれ ていた場合には、そのグ ラ フ ィ ッ ク フ ァ イ ル自体は こ の呼び出 し に よ っ て影響を受け ませ ん。 なぜな ら それはすでに、 それに照応す る PDF_load_graphics( ) 呼び出 し の終了で閉 じ ら れてい る か ら です。 グ ラ フ ィ ッ ク ハン ド ルは、 こ の関数を用いて閉 じ ら れた後は、 も う 使 う こ と がで き ません。 スコープ 任意。 照応す る PDF_load_graphics( ) への呼び出 し でが指定 さ れ、 かつそのグ ラ フ ィ ッ ク が少な く と も 1 回配置 さ れた場合には、 オブ ジ ェ ク ト ス コ ープは許容 さ れません。 組にな る PDF_load_graphics( ) への呼び出 し と 必ずペアにする 必要があ り ます。 C++ Java C# void fit_graphics(int graphics, double x, double y, String optlist) Perl PHP fit_graphics(int graphics, float x, float y, string optlist) C void PDF_fit_graphics(PDF *p, int graphics, double x, double y, const char *optlist) ベ ク ト ルグ ラ フ ィ ッ ク を内容 ス ト リ ーム上に、 さ ま ざ ま なオプシ ョ ン に従っ て配置 し ま す。 graphics x・y PDF_load_graphics( ) を用いて取得 さ れた有効な グ ラ フ ィ ッ ク ハン ド ル。 グ ラ フ ィ ッ ク が配置 さ れ る 参照点の座標をユーザー座標系で表 し た も の。 optlist グ ラ フ ィ ッ ク はめ込み ・ 処理オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下の オプシ ョ ンが使え ます : > 表 6.1 に従っ たはめ込みオプシ ョ ン : blind ・ boxsize ・ fitmethod ・ matchbox ・ orientate ・ position ・ refpoint ・ rotate ・ scale ・ showborder > 表 9.3 に従っ た、 グ ラ フ ィ ッ ク 処理のためのオプシ ョ ン : adjustpage ・ gstate > 表 9.7 に従っ た、 グ ラ フ ィ ッ ク 内の イ ン タ ラ ク テ ィ ブ リ ン ク 群を処理す る ためのオプ ション: convertlinks > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag 詳細 190 グ ラ フ ィ ッ ク は、参照点 (x, y) を基準 と し て配置 さ れます。デフ ォ ル ト では、そのオブジ ェ ク ト の左下隅が参照点に配置 さ れます。 ただ し 、 orientate ・ boxsize ・ position ・ fitmethod オプシ ョ ンで こ の動作を変更す る こ と も で き ます。 デフ ォ ル ト では、 グ ラ フ ィ ッ ク はその 内部で指定 さ れたサ イ ズに従っ て拡縮 さ れます。 こ の動作は、 scale ・ fitmethod オプシ ョ ンで変更す る こ と も で き ます。 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 PDF_fit_graphics( ) を呼び出す前に、 PDF_fit_graphics( ) が成功す る か ど う か をチ ェ ッ ク す る ために (そ し て失敗 し て例外が発生す る こ と を避け る ために) 、 PDF_info_graphics( ) で fittingpossible キーワー ド を用い る こ と を推奨 し ます。 PDF/UA グ ラ フ ィ ッ ク か ラ ス タ 画像を含むグ ラ フ ィ ッ ク は、 Figure か Artifact と し て タ グ付けす る 必要があ り ます。 スコープ ページ ・ パ タ ーン (そのパ タ ーンの painttype が 1 の場合のみ) ・ テ ン プ レー ト ・ グ リ フ (Type 3 フ ォ ン ト の colorized オプシ ョ ンが true の場合のみ)。こ の関数は、そのグ ラ フ ィ ッ ク ハン ド ルが PDF_close_graphics( ) を用いて閉 じ ら れない限 り 、 任意の回数、 任意のペー ジ上で呼び出す こ と がで き ます。 表 9.7 PDF_fit_graphics( ) の さ ら な るオプ シ ョ ン キー 説明 convertlinks (論理値) true の場合、 グ ラ フ ィ ッ ク フ ァ イル内のイ ン タ ラ ク テ ィ ブ リ ン クが PDF 内のイ ン タ ラ ク テ ィ ブ Link 注釈へ変換 さ れます。 こ の設定にかかわら ず、 リ ン クは以下の状況では作成 さ れま せん (デ フ ォル ト : true) : > こ の関数がページ以外のス コ ープ で呼び出 さ れている。 > PDF_load_graphics( ) で templateoptions オプ シ ョ ンが与え られている。 > タ グ付き PDF モー ド : カ レ ン ト でア ク テ ィ ブ な構造ア イ テムが Artifact であ る。 > PDF/X : その リ ン ク注釈が BleedBox (あ るいは BleedBox が存在 し ない場合には TrimBox/ArtBox) 内に置かれている。 C++ Java C# double info_graphics(int graphics, String keyword, String optlist) Perl PHP float info_graphics(int graphics, string keyword, string optlist) C double PDF_info_graphics(PDF *p, int graphics, const char *keyword, const char *optlist) ベ ク ト ルグ ラ フ ィ ッ ク を整形 し 、 メ ト リ ッ ク その他特性群を ク エ リ し ます。 graphics PDF_load_graphics( ) を用いて取得 さ れた有効な グ ラ フ ィ ッ ク ま たはテ ンプ レー ト ハン ド ル。 keyword 求め る 情報を指定す る キーワ ー ド : > 表 6.3 に従っ た、 オブジ ェ ク ト はめ込みの結果を ク エ リ す る ためのキーワ ー ド : boundingbox ・ fitscalex ・ fitscaley ・ height ・ objectheight ・ objectwidth ・ width ・ x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 ・ x4 ・ y4 > 表 9.8 に従っ た さ ら な る キー ワー ド : description ・ filename ・ fittingpossible ・ graphicswidth ・ graphicsheight ・ istemplate ・ metadata ・ title ・ type ・ xid optlist PDF_fit_graphics( ) に対す る オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。求め ら れ た キー ワー ド の値を決め る のに関係のないオプシ ョ ン群は無視 さ れます。 戻り値 keyword に よ っ て求め ら れた通 り の何 ら かのグ ラ フ ィ ッ ク 特性の値。 視覚的な特性がペー ジの外で求め ら れた と き は、 こ の関数は -1 (PHP では 0) を返 し ます。 オブジ ェ ク ト ハン ド ルが求め ら れた と き は、 こ の関数はそのオブジ ェ ク ト へのハン ド ルを返 し ますが、 も し そのオブジ ェ ク ト が得 ら れない場合には -1 (PHP では 0) を返 し ます。 求め ら れた キー ワ ー ド がテ キ ス ト を生み出す場合には、 文字列番号が返 さ れ、 それに照応す る 文字列を、 PDF_get_string( ) を用いて取得す る 必要があ り ます。 9.2 SVG グ ラ フ ィ ッ ク 191 詳細 こ の関数は、与え ら れたオプシ ョ ン群に従っ てそのグ ラ フ ィ ッ ク を配置す る ために必要な すべての計算を行い ますが、 し か し ページ上に実際に出力を作成 し ません。 グ ラ フ ィ ッ ク 参照点は {0 0} であ る と 見な さ れます。 スコープ 任意 表 9.8 PDF_info_graphics( ) のキーワー ド キーワー ド 説明 description 一番外側の svg エ レ メ ン ト が存在する な らばそれの、 あるいは一番外側の g エ レ メ ン ト が 存在する な らばそれの desc エ レ メ ン ト の内容に対する文字列番号、 それ以外の場合には 1。 こ の文字列はマー ク ア ッ プ を含む場合があ り ます。 filename そのグ ラ フ ィ ッ ク フ ァ イルの名前に対する文字列番号 (あてはま る場合には検索パスデ ィ レ ク ト リ を含みます) fittingpossible そのグ ラ フ ィ ッ ク がカ レ ン ト の コ ン テキス ト で PDF_fit_graphics( ) を用いて配置で き るかど う かを チ ェ ッ ク し ます。 そのグ ラ フ ィ ッ クが配置で き る な ら値 1 が返 さ れます。 以下のい ずれかの理由ではめ込みが失敗する (すなわち PDF_fit_graphics( ) が例外を発生 さ せる であ ろ う ) な ら 値 0 が返 さ れます : > そのグ ラ フ ィ ッ ク フ ァ イル内の内部的問題。 > カ レ ン ト の規格の必要条件群 と の衝突 (透過が許 さ れていない、 フ ォ ン ト を埋め込む必 要があるのに フ ォ ン ト フ ァ イルが得ら れないな ど) 0 が返 さ れた場合には、 その問題の性質を、 PDF_get_errmsg( ) を用いて ク エ リ する こ と も で き ます。 こ の結果はカ レ ン ト の コ ン テキス ト に対 し てのみ有効ですので、 このチ ェ ッ クは ページ上への配置を試みる直前に行 う べき です。 graphicswidth ・ graphicsheight そのグ ラ フ ィ ッ ク の、 そのグ ラ フ ィ ッ ク フ ァ イル内の情報に従っ た幅 と 高 さ を、 デ フ ォ ル ト 座標系で表 し た もの。 そのグ ラ フ ィ ッ ク フ ァ イル内で値が得ら れない場合には 0 が返 さ れます。 istemplate templateoptions オプ シ ョ ンが与え ら れている場合には 1、 そ う でないな ら 0 metadata 最も 外の svg エ レ メ ン ト の metadata エ レ メ ン ト の内容に対する文字列番号、 あるいはその エ レ メ ン ト が存在 し ない場合には -1。 こ の文字列はマー ク ア ッ プ を含む場合があ り ます。 title 最も 外の svg エ レ メ ン ト の title エ レ メ ン ト の内容に対する文字列番号、 あるいはそのエ レ メ ン ト が存在 し ない場合には -1。 こ の文字列はマー ク ア ッ プ を含む場合があ り ます。 type そのグ ラ フ ィ ッ ク の種別 (形式) に対する文字列イ ンデ ッ ク ス : つねに svg xid (PDF/VT のみ) グ ラ フ ィ ッ ク のために作成 さ れた テ ン プ レ ー ト の GTS_XID エ ン ト リ に対す る文字列番号、 あ るいはテ ン プ レ ー ト が作成 さ れなかっ たか GTS_XID 値がそのテ ン プ レー ト に割 り 当て られていない場合には -1。 こ の文字列は、 DPM のための CIP4/Summary/ Content/Referenced メ タ デー タ プ ロパテ ィ 内で使用する こ と がで き ます。 192 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 9.3 テ ン プ レ ー ト 注 「テ ン プ レー ト 」 と い う 言葉を こ こ では PDF フ ォ ーム XObject と 同義に用います。 こ の節 で解説する テ ン プ レー ト 関数は、 PDFlib ブ ロ ッ ク によ る可変デー タ 処理 と は無関係です。 PDFlib Block Plugin で作成 し たブ ロ ッ クへの流 し 込みを行 う には PDF_fill_*block( ) を使いま す (221 ページ 「11 章 ブ ロ ッ ク 流 し 込み関数 (PPS)」 参照)。 C++ Java C# int begin_template_ext(double width, double height, String optlist) Perl PHP int begin_template_ext(float width, float height, string optlist) C int PDF_begin_template_ext(PDF *p, double width, double height, const char *optlist) テ ンプ レー ト 定義を開始 し ます。 width ・ height テ ンプ レー ト の外接枠の寸法を、ポ イ ン ト 単位で指定 し ます。こ の width・ height 引数は 0 にす る こ と も で き ます。 こ の場合、 それ ら は PDF_end_template_ext( ) 内 で、 あ る いは boundingbox オプシ ョ ン を用いて与え る 必要があ り ます。 結局ど ち ら の値 も 0 以外 と す る 必要があ り ます。 ただ し postscript ま たは watermark オプシ ョ ンが指定 さ れ てい る 場合を除 き ます。 optlist テ ンプ レー ト 関連の特性群を指定 し たオプシ ョ ン リ ス ト 。 > 以下の共通 XObject オプシ ョ ン を使え ます (表 9.11 参照) : associatedfiles・iconname・layer・metadata・ OPI-1.3・ OPI-2.0・pdfvt ・reference・transform・ transparencygroup > PDF_begin_page_ext( ) の以下の図形オプシ ョ ン を使え ます (表 8.3 参照) :boundingbox・ topdown > 特殊テ ンプ レー ト 機能群のための以下のオプシ ョ ン を使え ます (表 9.9 参照) : postscript ・ watermark 戻り値 以後の PDF_fit_image( ) ・ PDF_info_image( ) お よ び PDF_end_template_ext( ) への呼び出 し で使え る テ ンプ レー ト ハン ド ル、 あ る いはエ ラ ーの場合には -1 (PHP では 0)。 詳細 こ の関数は、 テ キ ス ト ・ グ ラ フ ィ ッ ク ・ 色 ス テー タ ス パ ラ メ ー タ 群をすべて それ ら のデ フ ォ ル ト 値に リ セ ッ ト し て、 topdown オプシ ョ ン に従っ て座標系を定義 し ます。 テ ン プ レー ト 定義の最中は、 ハ イ パーテ キ ス ト 関数は使っ てはいけ ませんが、 テ キ ス ト ・ 画像 ・ グ ラ フ ィ ッ ク ・ 色関数はすべて使え ます。 テ ンプ レー ト サ イ ズ : 最 も 単純な場合では、 幅 と 高 さ は PDF_begin_template_ext( ) で 与え ら れます。 し か し 、 も し それ ら が未知の場合には、 それ ら を 0 と し て指定す る こ と も で き ます。 こ の場合にはそれ ら を、 それに照応す る PDF_end_template_ext( ) への呼び出 し で与え る 必要があ り ます。 referenceオプシ ョ ンが与え ら れてい る 場合には、サ イ ズはその タ ーゲ ッ ト PDFページの サ イ ズか ら 自動的に決定 さ れますので、 値を指定する こ と は不要です。 ただ し 、 も し それ で も width と height が指定 さ れた場合には、 それ ら は用い ら れますが、 タ ーゲ ッ ト ペー ジ と 同 じ ア スペ ク ト 比に自動的に調整 さ れます。 watermark オプシ ョ ンが与え ら れてい る 場合には、 こ のテ ンプ レー ト は、 Acrobat で編 集 ま たは削除が可能な透か し を定義 し ま す。 こ の場合 こ のテ ン プ レ ー ト の中では、 PDF_ fit_textline( ) と 、 文書ま たはオブ ジ ェ ク ト ス コ ープ内で許 さ れ る 関数のみを用い る こ と が で き ます。そのテ キ ス ト 行の外接枠が、こ のテ ンプ レー ト の幅 と 高 さ を定義 し ます:width・ height 引数 と オプシ ョ ン boundingbox ・ transform は無視 さ れます。 透か し のテ キ ス ト 行 9.3 テ ン プ レー ト 193 の外接枠は、 その回転角 と 寸法、 と り わけオプシ ョ ン boxheight か ら 算出 さ れます。 透か し に使われ る テ キ ス ト 行では、boxheightのデフ ォ ル ト 値が{capheight 0}ではな く {ascender descender} にな り ます (表 6.4 (139 ページ) 参照)。 PDF_fit_textline( ) の引数 x ・ y は無視 さ れます。 こ の透か し テ ンプ レー ト は、 サブオプシ ョ ン startpage/endpage/pagesubset で指定 さ れたすべてのページに自動的に配置 さ れ ます。 それはページ装飾 と し てマー ク さ れ ます。 透か し テ ンプ レー ト を作成 し て使用す る 際には、 以下の規則に従 う 必要があ り ます : > 透か し テ ン プ レー ト は、 それが使用 さ れ る 最初のページ よ り 前に作成 さ れ る 必要があ り ます。 > watermark オプシ ョ ンは、 文書ご と に 1 回 し か用い る こ と がで き ません。 > 透か し テ ンプ レー ト のハン ド ルを、 PDF_fit_image( ) への呼び出 し の中で、 ま たは画像 ハン ド ルを持つオプシ ョ ン リ ス ト の中で (PDF_add_table_cell( ) の中な ど) 、 一切用い てはいけ ません。 なぜな ら 透か し は自動的に配置 さ れ る か ら です。 透か し テ ンプ レー ト の内容について、 以下の規則に従 う 必要があ り ます : > PDF_fit_textline( ) を ち ょ う ど 1 回呼び出す必要があ り ます。かつ、その text 引数を空に し てはいけ ません。 > fillcolor ・ strokecolor オプシ ョ ンに対 し ては、 以下の色空間のみを使用で き ます : gray、 iccbasedgray、 グ レース ケールま たは RGB プ ロ フ ァ イ ルを持つ iccbased、 rgb (ま たは HTML カ ラ ー名か 16 進 RGB 値)、 iccbasedrgb PDF/A postscript オプシ ョ ン を使用 し てはいけ ません。 PDF/X postscript オプシ ョ ン を使用 し てはいけ ません。 スコープ オブ ジ ェ ク ト 以外任意。 こ の関数はテ ン プ レー ト ス コ ープ を開始 さ せます。照応す る PDF_ end_template( ) と 必ずペアに し て呼び出す必要があ り ます。 表 9.9 PDF_begin_template_ext( ) のオプ シ ョ ン キー 説明 postscript (オプ シ ョ ン リ ス ト 。 PDF/A ・ PDF/X では不可) PDF フ ォ ーム XObject ではな く PostScript XObject を作成 し ます。 こ のオプ シ ョ ンは、 生成 さ れる PDF 文書の後処理に対 し て厳格な制御を 行 う シナ リ オでのみ使用するべき です。 EPS グ ラ フ ィ ッ ク を取 り 込む こ と は適切ではあ り ません。 こ の PostScript XObject はただ ちに書き込まれます。 ス コ ープは template へ変わ り ますが、 グ ラ フ ィ カルな出力を生み出すための API 関数呼び出 し は、 照応する PDF_end_template_ext( ) への呼び 出 し ま で許容 さ れません。 こ のオプ シ ョ ンが与え られている場合には、 他のオプ シ ョ ンは一切許 容 さ れません。 使え るサブオプ シ ョ ン : filename watermark (名前文字列。 必須) PostScript を含んだデ ィ ス ク ベース または仮想フ ァ イルの名前。 こ の PostScript コ ー ド は、 空白キ ャ ラ ク タ 1 個で終了するべき です。 こ のコ ー ド は、 PostScript XObject 内へ、 検証な し で挿入 さ れます。 この PostScript の内容については ユーザー側の責任範囲です。 (オプ シ ョ ン リ ス ト 。 文書ご と に 1 回のみ使用可能) 表 9.10 のオプ シ ョ ンに し たがっ て、 編集可能 な透か し を作成 し ます。 表 9.10 PDF_begin_template_ext( ) の watermark オプ シ ョ ンのサブオプ シ ョ ン キー 説明 endpage (整数かキーワー ド ) その透か し を入れたい最後のページの番号、 ま たはキーワー ド last で末尾 ページ。 デ フ ォ ル ト : last 194 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 表 9.10 PDF_begin_template_ext( ) の watermark オプ シ ョ ンのサブオプ シ ョ ン キー 説明 fixedprint (論理値) 異な るページ寸法へ印字する際にその透か し の位置 と 寸法を一定に保ち ます。 デ フ ォル ト : false horizalign (キーワー ド ) その透か し の外接枠の、 ページ 1 上における相対横位置を指定する、 キーワー ド left/center/right の う ちのいずれか 1 つ。 デ フ ォル ト : center horizshift (float) 相対横位置から のず ら し をポ イ ン ト 単位で。 デ フ ォル ト : 0 location (キーワー ド ) その透か し を他のページ内容の後ろ に印字するか手前に印字するかを指定 し ます (デ フ ォル ト : ontop) : behind 透か し をページ内容の後ろ に印字 し ます。 location=behind を与えた場合には、 その同 一文書内でのその後の PDF_begin_page_ext( ) への呼び出 し はすべて、 width ・ height 引 数に対 し て 0 以外の値を与え る必要があ り ます。 ontop 透か し をページ内容の手前に印字 し ます。 onprint (論理値。 PDF 1.5 を必要 と し ます。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では値 false では不可) true の場合、 その透か し はページ を印刷する際に印字 さ れます。 デ フ ォル ト : true onscreen (論理値。 PDF 1.5 を必要 と し ます。 PDF/A-2/3 ・ PDF/X-4/5 ・ PDF/UA-1 では値 false では不可) true の場合、 その透か し はページ を画面に表示する際に印字 さ れます。 デ フ ォル ト : true opacity (float かパーセ ン ト 値。 PDF/A-1 ・ PDF/X-1/3 では値 1 にする必要があ り ます) その透か し をペー ジ上で塗る ための不透明度値。 デ フ ォル ト : 1 pagessubset (キーワー ド ) startpage と endpage で指定 し た範囲の中のページ群の部分集合を選択 し ます (デ フ ォ ル ト : all) : scale all その範囲の中のすべてのページ を選択 し ます。 even その範囲の中の偶数番号のページすべて を選択 し ます。 odd その範囲の中の奇数番号のページすべて を選択 し ます。 (float かパーセ ン ト 値かキーワー ド ) 対象ページに対する その透か し の外接枠の拡縮倍率。 拡縮は そのテキス ト 行の外接枠のア スペ ク ト 比を温存 し ます (デ フ ォ ル ト : 1)。 使え るキーワー ド : none 拡縮な し startpage (整数)。 透か し を入れたい最初のページの番号 (先頭ページの番号は 1 です)。 次のページ、 すな わち、 次に PDF_begin_page_ext( ) を呼び出 し た時に作成 さ れたページの番号が、 startpage で指定 さ れた も のよ り も大き い番号であ る場合には、 こ の値は次のページへ増加 さ せら れます。 デ フ ォ ル ト : 次のページ vertalign (キーワー ド ) その透か し の外接枠の、 ページ 1 上における相対縦位置を指定する、 キーワー ド bottom/center/top の う ちのいずれか 1 つ。 デ フ ォル ト : center vertshift (float) 相対縦位置から のず ら し をポ イ ン ト 単位で。 デ フ ォル ト : 0 1. ページ寸法は、 その CropBox があればそれに よ っ て、 なければその MediaBox に よ っ て定義 さ れます。 C++ Java C# void end_template_ext(double width, double height) Perl PHP end_template_ext(float width, float height) C void PDF_end_template_ext(PDF *p, double width, double height) テ ンプ レー ト 定義を完了 し ます。 width ・ height テ ン プ レ ー ト の外接枠の寸法 を ポ イ ン ト 単位で指定 し ま す。 width か height を 0 にす る と 、 PDF_begin_template_ext( ) で与え た値が用い ら れます。 そ う でない 9.3 テ ン プ レー ト 195 と き は、 PDF_begin_template_ext( ) の boundingbox オプシ ョ ン と width ・ height 引数で与 え た値はオーバ ラ イ ド さ れます。 ただ し 、 照応す る PDF_begin_template_ext( ) への呼び出 し でreference ま たはwatermarkオプシ ョ ンが与え ら れてい る 場合には、PDF_end_template_ ext( ) へ与え ら れた値は無視 さ れます。 スコープ 196 テ ン プ レー ト 。 こ の関数はテ ン プ レー ト ス コ ープを終了 さ せます。 照応する PDF_begin_ template_ext( ) と 必ずペアに し て呼び出す必要があ り ます。 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 9.4 共通 XObject オ プ シ ョ ン PDF XObject は、 取 り 込み画像 と 、 取 り 込みベ ク ト ルグ ラ フ ィ ッ ク (templateoptions リ ス ト が与え ら れた場合) と 、 取 り 込み PDF ページ と 、 テ ンプ レー ト のために作成 さ れます。 こ の節で挙げ る オプシ ョ ンは、 以下の、 XObject を作成で き る 関数で利用で き ます : > PDF_load_image( ) > PDF_load_graphics( ) with the templateoptions option > PDF_open_pdi_page( ) > PDF_begin_template_ext( ) 以下の XObject オプシ ョ ンが利用可能です (詳 し く は表 9.11 参照) : associatedfiles ・ georeference ・ iconname ・ layer ・ metadata ・ OPI-1.3 ・ OPI-2.0 ・ pdfvt ・ reference ・ transparencygroup PDF/A い く つかのオプシ ョ ンが制約 さ れてい ます。 PDF/X い く つかのオプシ ョ ンが制約 さ れてい ます。reference オプシ ョ ンは PDF/X-5g/5pg に関連 し ます。 PDF/VT pdfvt オプシ ョ ンは PDF/VT に関連 し ます。 表 9.11 PDF_load_image( ) ・ PDF_open_pdi_page( ) ・ PDF_begin_template_ext( ) と 、 templateoptions オプ シ ョ ン を持つ PDF_load_graphics( ) の、 共通 XObject オプ シ ョ ン オプ シ ョ ン 説明 associatedfiles (アセ ッ ト ハン ド ルの リ ス ト 。 PDF 2.0 ・ PDF/A-3 でのみ可) PDF/A-3 に従っ た連携 フ ァ イル群の ためのア セ ッ ト ハン ド ル群。 こ の フ ァ イル群は、 PDF_load_asset( ) と type=attachment を用いて読 み込まれている必要があ り ます。 georeference (オプ シ ョ ン リ ス ト 。 PDF 1.7ext3。 PDF_load_image( ) のみ) 地理空間測量に利用する ために XObject に関連づけ られる地球ベース座標系の記述。 詳 し く は 262 ページ 「12.7 地理空間機能」 を参照 し て く だ さ い。 iconname (ハイパーテキス ト 文字列) XObject に名前を付けて、 JavaScript で参照で き る よ う に し ます。 た と えば、 XObject を フ ォ ーム フ ィ ール ド のア イ コ ン と し て使いたい と き に有用です。 PDF_load_image( ) : このオプ シ ョ ンは、 inline=true の場合には無視 さ れます。 createtemplate=true を強制 し ます。 layer (レ イ ヤーハン ド ル。 PDF 1.5) XObject を属 さ せたい レ イ ヤー。 ただ し 、 こ の XObject を配置する 前に PDF_begin_layer( ) で別のレ イ ヤーが有効に さ れていない場合にかぎ り ます。 この XObject を配 置する前に PDF_begin_layer( ) を呼び出 し て レ イ ヤーを有効に さ せる と 、 こ の XObject の layer オプ シ ョ ンはオーバ ラ イ ド さ れます。 こ の XObject の layer オプ シ ョ ンがオーバラ イ ド さ れないよ う に するには、 この XObject を配置する前に PDF_end_layer( ) を呼び出 し て く だ さ い。 metadata (オプ シ ョ ン リ ス ト ) XObject に対する メ タ デー タ (281 ページ 「14.2 XMP メ タ デー タ 」 参照)。 OPI-1.3 (オプ シ ョ ン リ ス ト 。 PDF_open_pdi_page( ) では不可。 PDF/A ・ PDF/X では不可) OPI 1.3 の PostScript コ メ ン ト を オプ シ ョ ン名 と し て入れたオプ シ ョ ン リ ス ト 。 以下の項目は必須です : ALDImageFilename (文字列) ・ ALDImageDimensions (整数の リ ス ト ) ・ ALDImageCropRect (整数に よ る長方形) ・ ALDImagePosition (float の リ ス ト ) normalizefilename サブオプ シ ョ ンは、 フ ァ イル名の処理を制御 し ます。 true にする と 、 フ ァ イ ル名は PDF リ フ ァ レ ン スが義務付けている よ う に正規化 さ れます。 false にする と 、 フ ァ イル名 は何も変更 さ れずに出力へ コ ピー さ れます。 後者は、 正規化 さ れた フ ァ イル名を適切に処理 し な いい く つかの OPI サーバを扱 う 際に有用かも し れません。 デ フ ォル ト : false 9.4 共通 XObject オプ シ ョ ン 197 表 9.11 PDF_load_image( ) ・ PDF_open_pdi_page( ) ・ PDF_begin_template_ext( ) と 、 templateoptions オプ シ ョ ン を持つ PDF_load_graphics( ) の、 共通 XObject オプ シ ョ ン オプ シ ョ ン 説明 OPI-2.0 (オプ シ ョ ン リ ス ト 。 PDF_open_pdi_page( ) では不可。 PDF/A ・ PDF/X では不可) OPI 2.0 の PostScript コ メ ン ト を オプ シ ョ ン名 と し て入れたオプ シ ョ ン リ ス ト 。 以下の項目は必須です : ImageFilename (文字列) 以下の項目は、 両方入れるか、 またはど ち ら も 入れない必要があ り ます : ImageCropRect (長方形) ・ ImageDimensions (float の リ ス ト ) サブオプ シ ョ ン normalizefilename も 使え ます (OPI-1.3 参照)。 pdfvt (オプ シ ョ ン リ ス ト 。 PDF/VT のみ) 表 9.14 に従っ た、 XObject のための PDF/VT サブオプ シ ョ ン 群。 reference (オプ シ ョ ン リ ス ト 。 PDF_load_image( ) では不可。 PDF/A ・ PDF/X-1/2/3/4 ・ PDF/VT-1 ・ PDF/UA1 では不可。 PDFlib ソ ース コ ー ド パ ッ ケージ群では利用で き ません) 外部 PDF (「 タ ーゲ ッ ト 」 文 書) 内のページ を参照 し ます。 PDF_open_pdi_page( ) を用いて開かれたページか、 PDF_begin_ template_ext( ) を用いて作成 さ れた テ ン プ レー ト か、 PDF_load_graphics( ) を用いて読み込まれたグ ラ フ ィ ッ クが、 この参照のための代理 と し て使用 さ れます。 ビ ュ ーア構成 と 、 タ ーゲ ッ ト PDF が 得られるかど う かに応 じ て、 内部代理 と 外部 タ ーゲ ッ ト のど ち らが表示 ・ 印刷 さ れるかが決ま り ます。 使え るサブオプ シ ョ ン群については表 9.13 を参照 し て く だ さ い。 PDF_open_pdi_page( ) : タ ーゲ ッ ト PDF は、 ロー カルで得られる必要があ り 、 かつ、 pagelabel か pagenumber サブオプ シ ョ ン を用いて指定 さ れたページ を含んでいる必要があ り ます。 こ の タ ー ゲ ッ ト は、 ユーザーまたはマ ス タ ーパスワー ド を必要 と し てはいけません。 参照ページのサイ ズ は、 reference オプ シ ョ ンの pdiusebox サブオプ シ ョ ンに従 っ て決定 さ れます。 こ れは PDF_info_ image( ) の imagewidth/imageheight キーワー ド を用いて取得で き ます。 代理ページ と タ ーゲ ッ ト ページは互換なページ形状を持つ必要があ り ます。 すなわち、 両方のページがページ上の同一の 位置に配置で き る よ う 、 pdiusebox オプ シ ョ ン を用いて選択 さ れるページ枠が同一である必要があ り ます。 PDF_begin_template_ext( ) : width と height に値 0 が与え られている場合には、 テ ン プ レー ト サイ ズは PDF_info_image( ) の imagewidth/imageheight キーワー ド を用いて取得で き ます。 width と height に 0 以外の値が与え られている場合には、 以下のサブオプ シ ョ ン も 使え ます (表 6.1 参照) : fitmethod・position。 PDF_load_graphics( ) : グ ラ フ ィ ッ クは、 タ ーゲ ッ ト ページのサイ ズに合わせて調整 さ れます。 以下 のサブオプ シ ョ ン も 使え ます (表 6.1 参照) : fitmethod・position。 PDF/X-5g/5pg : タ ーゲ ッ ト は、 以下の規格のいずれか 1 つに準拠 し ている必要があ り ます : PDF/ X-1a:2003 ・ PDF/X-3:2003 ・ PDF/X-4 ・ PDF/X-4p ・ PDF/X-5g ・ PDF/X-5pg。 かつ、 同一の出力イ ン テ ン ト に対 し て用意 さ れている必要があ り ます。 PDF/VT-2 : タ ーゲ ッ ト は、 以下の規格のいずれか 1 つに準拠 し ている必要があ り ます : PDF/X1a:2003 ・ PDF/X-3:2003 ・ PDF/X-4 ・ PDF/X-4p ・ PDF/VT-1。 かつ、 同一の出力イ ン テ ン ト に対 し て用意 さ れている必要があ り ます。 参照ページ を閲覧する ために必要な Acrobat 構成については PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 198 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 表 9.11 PDF_load_image( ) ・ PDF_open_pdi_page( ) ・ PDF_begin_template_ext( ) と 、 templateoptions オプ シ ョ ン を持つ PDF_load_graphics( ) の、 共通 XObject オプ シ ョ ン オプ シ ョ ン 説明 transform (変換 リ ス ト 。 そのページに対 し て PDF_open_pdi_page( ) の cloneboxes オプ シ ョ ンが与え られてい る場合には無視 さ れます。 PDF_load_image( ) では不可) そのページ またはパ タ ーン またはテ ン プ レー ト 座標系を、 このページ/パ タ ーン/テ ン プ レー ト が使用 さ れる対象ページ またはテ ン プ レー ト またはグ リ フ記述のデ フ ォ ル ト 座標系へマ ッ プする変換を定義 し た リ ス ト 。 こ のページ ま たはパ タ ーン またはテ ン プ レー ト 行列を、 対象ページ またはテ ン プ レ ー ト またはグ リ フ 記述のそ れ と 結合 し て形成 さ れる座標系の中で、 こ のページ ま たはパ タ ーン またはテ ン プ レ ー ト の中のす べてのグ ラ フ ィ ッ ク オブ ジ ェ ク ト が解釈 さ れます。 こ の リ ス ト は、 表 9.12 に従っ たキーワー ド 1 個 と float リ ス ト 1 個 と のペア群を内容 と し ます。 こ こ で各ペアは 1 個の変換を定義 し ます。 こ の番号 リ ス ト の解釈 と 長 さ は変換によ っ て異な り ます。 こ の変換群は、 その指定 さ れた順に適用 さ れます。 ペア内の要素は、 等号 「=」 を用いて区切る こ と がで き ます。 デ フ ォ ル ト : 何の変換も 適用 し ない。 例 : transform={rotate=45 translate={100 0}} transparency (オプ シ ョ ン リ ス ト かキーワー ド 。 PDF_load_image( ) では不可。 PDF/A-1 ・ PDF/X-1/3 では不可。 group PDF/A-2/3 ・ PDF/X-4/5 には制約が適用 さ れます) 取 り 込まれたページかグ ラ フ ィ ッ ク または生 成 さ れたテ ン プ レー ト に対 し て透過グループ を作成 し ます。 以下のキーワー ド を使え ます (デ フ ォ ル ト : auto) : auto 取 り 込まれたページが透過グループ を含んでいる と き には、 それが、 生成 さ れる フ ォ ー ム XObject へ複製 さ れます。 ただ し 、 それが PDF/X-4 出力イ ン テ ン ト 内の CMYK ICC プ ロ フ ァ イル と 衝突する と き には、 それは無視 さ れます ( この場合には、 透過グループ はいずれにせよ必要あ り ません)。 グ ラ フ ィ ッ ク と テ ン プ レー ト に対 し ては、 透過グループは全 く 作成 さ れません。 none 取 り 込まれたページがすでに透過グループ を含んでいる場合で も、 透過グループ を一切 作成 し ません。 以下のサブオプ シ ョ ン を用いて明示的に透過グループ を作成する こ と も で き ます : colorspace (キーワー ド か ICC プ ロ フ ァ イルハン ド ル。 type=luminosity を指定 し た PDF_create_ gstate( ) の softmask オプ シ ョ ンに対 し て テ ン プ レー ト が用い られる場合には none 以外 の値を指定する こ と が必須) ブ レ ン ド する色空間 (デ フ ォ ル ト : none) : DeviceCMYK PDF/A-2/3 ・ PDF/X-4/5 : CMYK 出力イ ン テ ン ト でのみ可 DeviceGray PDF/A-2/3 ・ PDF/X-4/5 : グ レーま たは CMYK 出力イ ン テ ン ト での み可 DeviceRGB PDF/A-2/3 ・ PDF/X-4/5 : RGB 出力イ ン テ ン ト でのみ可 none 透過グループに対 し て色空間が出力 さ れません。 srgb sRGB 色空間を選択する ためのキーワー ド isolated (論理値) 透過グループが分離 し ているかど う かを指定 し ます。 デ フ ォル ト : false knockout (論理値) 透過グループが ノ ッ ク アウ ト グループかど う かを指定 し ます。 デ フ ォ ル ト : false 9.4 共通 XObject オプ シ ョ ン 199 表 9.12 PDF_begin_pattern_ext( ) ・ PDF_begin_template_ext( ) ・ PDF_open_pdi_page( ) の transform オプ シ ョ ンのキー ワー ド と float リ ス ト キーワー ド 説明 align 方向ベ ク ト ル {dx dy} だけ回転。 ベ ク ト ル {0 0} は回転な し を意味 し ます。 matrix 6 個の構成要素 {a b c d e f} を持つ non-degenerate 非縮退変換行列を指定。 rotate {phi} だけ回転。こ こ で角度 phi は、パ タ ーン またはページ またはテ ン プ レ ー ト 座標系の x 軸正の向 きから 反時計回 り の度単位で測 り ます。 scale {sx sy} だけ拡縮。 sy が与え られない場合、 それは sx に等 し い と 見な さ れます。 skew {alpha beta} だけ斜形化 (シ アー)。 こ こ で alpha はパ タ ーン座標系の x 軸正の向きから反時計回 り の度単位で測 り 、 beta は y 軸正の向きから 時計回 り で測 り ます。 ど ち らの角度も、 90° の奇数 倍に し てはいけません。 translate {tx ty} だけ平行移動。 平行移動はそのページ を配置する際に補正 さ れますので、 こ の平行移動は 取 り 込み PDF ページに対 し ては何の視覚的影響 も与え ません。 表 9.13 PDF_begin_template_ext( ) ・ PDF_open_pdi_page( ) と 、 templateoptions オプ シ ョ ン を持つ PDF_load_graphics( ) の、 reference オプ シ ョ ンのサブオプ シ ョ ン キー 説明 filename (名前文字列。 必須) タ ーゲ ッ ト PDF を内容 と し て持つ フ ァ イルの名前。 この名前は PDF 内に格 納 さ れ、 ビ ュ ーアに よ っ て使われます。 こ れは、 target オプ シ ョ ン を指定 し ない と きは、 タ ー ゲ ッ ト PDF を ロー カルで見つける ために も使われます (すなわち、 その PDF が存在 し ている必要 があ り ます)。 デ ィ レ ク ト リ を一切付けない素のベース名を用いる こ と を推奨 し ます。 hypertextencoding (キーワー ド ) pagelabel オプ シ ョ ンのエ ン コ ーデ ィ ング を指定 し ます。 空文字列は unicode と 等 価です。 デ フ ォ ル ト : グローバル hypertextencoding オプ シ ョ ンの値 pagelabel (ハイパーテキス ト 文字列。 pagenumber と 同時に指定 し てはいけません) 参照 し たいページのペー ジ ラ ベル pagenumber (整数) 参照 し たいページの番号。 先頭ページの番号は 1 です。 デ フ ォ ル ト : 1 (ただ し こ れは pagelabel によ っ てオーバラ イ ド さ れる可能性があ り ます) pdiusebox strongref 200 (キーワー ド 。 PDF/X-5g/5pg では media を強制 さ れます) タ ーゲ ッ ト ページの寸法を決定する た めにどの枠寸法を用いるかを指定 し ます。 デ フ ォ ル ト : PDF/X-5g/5pg モー ド では media、 それ以 外では crop。 media MediaBox を用います ( これは必ず存在 し ます) crop CropBox がある な ら それを、 ないな ら MediaBox を用います bleed BleedBox があ る な ら それを、 ないな ら CropBox を用います trim TrimBox があ る な ら それを、 ないな ら CropBox を用います art ArtBox がある な ら それを、 ないな ら CropBox を用います (論理値。 PDF/X-5g/5pg では true を強制 さ れます) true にする と 、 PDFlib は、 タ ーゲ ッ ト の ID 項目を用いて、 その タ ーゲ ッ ト への強い参照を作成 し ます。 タ ーゲ ッ ト が別の文書で置き換え ら れる と 、 この参照は切れます (すなわち、 ビ ュ ーアは代理を用います)。 タ ーゲ ッ ト を柔軟に取 り 替え る運用を し たい と きは、 このオプ シ ョ ンは false に設定する必要があ り 、 その場合、 ロー カ ルの タ ーゲ ッ ト と 、 文書が最終的に表示 さ れる際に用い られる タ ーゲ ッ ト と は、 等 し いページ枠 と 回転項目を持つ必要があ り ます。 デ フ ォ ル ト : true 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 表 9.13 PDF_begin_template_ext( ) ・ PDF_open_pdi_page( ) と 、 templateoptions オプ シ ョ ン を持つ PDF_load_graphics( ) の、 reference オプ シ ョ ンのサブオプ シ ョ ン キー 説明 target (PDF 文書ハン ド ル) PDF_open_pdi_document( ) で取得 し た タ ーゲ ッ ト 文書のハン ド ル。 こ の タ ー ゲ ッ ト PDF は、 repair=none オプ シ ョ ン を付けて、 かつ password オプ シ ョ ン を付けずに開いた も のであ る必要があ り ます。 文書ハン ド ルを フ ァ イル名に加えて与え る こ と は、 2 つの場合に有用で しょう : > 多数の生成文書が同 じ タ ーゲ ッ ト PDF を参照する と き、その タ ーゲ ッ ト は 1 回だけ開 く 必要があ り 、 その結果は内部的にキ ャ ッ シ ュ さ れる こ と がで き ます。 > ロー カルの タ ーゲ ッ ト のフ ァ イル名が、 PDF 内に格納 し たい タ ーゲ ッ ト フ ァ イル名 と 異な る と き。 表 9.14 PDF_load_image( ) ・ PDF_open_pdi_page( ) ・ PDF_begin_template_ext( ) と 、 templateoptions オプ シ ョ ン を持つ PDF_load_graphics( ) の、 pdfvt オプ シ ョ ンのサブオプ シ ョ ン キー 説明 environment (ハイパーテキス ト 文字列。 scope=stream か scope=global の場合には必須) PDF/VT 環境 コ ン テ キス ト を指定 し ます。 こ れは一種の識別子であ り 、 PDF/VT プ ロ セ ッ サは こ れを用いて、 関連 XObject 群を管理する ための管理イ ン タ フ ェ ース を提供する こ と がで き ます。 た と えば、 顧客名や ジ ョ ブ名を用いて環境を識別で き ます。 scope (キーワー ド ) その XObject の PDF/VT ス コ ープ (PDFlib の関数のス コ ープ と は関係あ り ません) (デ フ ォル ト : unknown) : unknown その XObject のス コ ープは未知です。 singleuse その XObject はその PDF/VT フ ァ イル内で 1 回だけ参照 さ れます。 record (PDF_begin_document( ) に対 し て recordlevel オプ シ ョ ンが指定 さ れている場合のみ可) その XObject は、 単一のレ コ ー ド に属するページ群の中で複数回参照 さ れますが、 他の レ コ ー ド 内では参照 さ れません。 file その XObject は、 その PDF/VT フ ァ イル内で複数回参照 さ れます。recordlevel オプ シ ョ ンが与え られている場合には、 scope=file は、 その XObject が複数のレ コ ー ド 内で使 用 さ れる場合にのみ用い られるべき です (そ う でないな ら scope=record を用いるべき です)。 stream (environment オプ シ ョ ン を必要 と し ます。PDF/VT-2s ス ト リ ーム内へ入れ込まれる文書 に対 し てのみ可) その XObject か等価な XObject は、 その PDF/VT フ ァ イルを含む PDF/VT-2s ス ト リ ーム内で複数回参照 さ れます。 (environment オプ シ ョ ン を必要 と し ます)その XObject か等価な XObject は、複数の PDF/ VT フ ァ イルか PDF/VT-2s ス ト リ ーム内で参照 さ れます。 global xid (文字列。 PDF_begin_template_ext( ) でのみ可。 なぜな ら こ れ以外の種類の XObject に対 し ては識別 子は自動的に作成 さ れるから です) そのテ ン プ レー ト に対 し て作成 さ れる フ ォ ーム XObject に対す る一意識別子。 こ の識別子を、 ISO 16612-2:2010 の 6.7.2 項で勧告 さ れている形式で、 すなわち uuid スキーム と RFC 4122 に従っ た 128 ビ ッ ト 数値を持っ た URI と し て与え る こ と を強 く 推奨 し ま す。 この識別子は、 PDF/VT に従っ て等価な PDF フ ォ ーム XObject を作成する テ ン プ レー ト 定義 群 (すなわち、 同一の視覚的出力を作成する テ ン プ レー ト 群) に対 し ては、 等 し く するべき です。 等価でないテ ン プ レー ト は、 異な る識別子を持つか、 あ るいは識別子を全 く 持たない必要があ り ます。 scope=stream か scope=global を用いた テ ン プ レー ト に対 し ては、 複数の文書にわた る フ ォ ーム XObject のキ ャ ッ シ ュ処理を可能にする ため、 こ の xid オプ シ ョ ン を与え る こ と を強 く 推奨 し ま す。 推奨 さ れる形式での xid の例 : uuid:1228c416-48f2-e817-ad69-8206e41dca2d 9.4 共通 XObject オプ シ ョ ン 201 202 第 9 章 : 画像 ・ SVG ・ テ ン プ レー ト 関数 10 PDF 取 り 込み (PDI) ・ pCOS 関数 注 こ の章で説明する関数はすべて、 PDF 取 り 込み ラ イ ブ ラ リ (PDI) を必要 と し ます。 PDI は、 PDFlib+PDI と PDFlib Personalization Server (PPS) には含まれていますが、 基本 PDFlib 製品には含まれていません。 PDI の入手についての詳 し い情報を得る には私達のウ ェ ブサ イ ト においで く だ さ い。 10.1 文書関数 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの pdf_import/starter_pdfmerge ト ピ ッ ク にあ り ま す。 C++ Java C# int open_pdi_document(String filename, String optlist) Perl PHP int open_pdi_document(string filename, string optlist) C int PDF_open_pdi_document(PDF *p, const char *filename, int len, const char *optlist) デ ィ ス ク ベース か仮想の PDF 文書を開 き 、 以後の使用に備え ます。 filename (名前文字列。グ ロ ーバル filenamehandling オプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) PDF フ ァ イ ルの名前。 optlist PDF の開 く オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 10.1 に従っ た PDF 文書オプシ ョ ン群 : checkoutputintentprofile ・ infomode ・ inmemory ・ password ・ repair ・ requiredmode > 表 10.1 に従っ た タ グ付 き PDF 処理オプシ ョ ン : checktags ・ usetags > 表 10.1 に従っ た レ イ ヤー処理オプシ ョ ン : parentlayer ・ parenttitle ・ uselayers len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位)。 len=0 にする と null 終 了文字列を与え る 必要があ り ます。 戻り値 PDI 文書ハン ド ル。 文書の個々のページの処理や、 文書のプ ロ パテ ィ の取得に使え ます。 戻 り 値 -1 (PHP では 0) は、 PDF 文書を開 く こ と がで き なか っ た こ と を示 し ます。 任意 の数の PDF 文書を同時に開いてお く こ と がで き ます。 戻 り 値は、 カ レ ン ト の文書ス コ ー プ を終え る ま で使え ます。関数の呼び出 し が失敗 し た と き は、その失敗の理由を PDF_get_ errmsg( ) で取得す る こ と がで き ます。 エ ラ ー動作は、 errorpolicy オプシ ョ ンで変更す る こ と がで き ます。 詳細 デフ ォ ル ト では、 以下の条件の う ち 1 つで も 真の と き は、 その文書は拒否 さ れます : > 文書が破損 し てお り 、 かつ修復で き なか っ た (ま たは repair=none が指定 さ れていた)。 > 文書が暗号化 さ れてい る のに、 そのマ ス タ ーパ ス ワー ド が password オプシ ョ ンで与え ら れていない。 shrug オプシ ョ ン を用い る と 、 特定の条件下での保護 さ れた文書か ら の ページ取 り 込みを可能にす る こ と がで き ます (PDFlib チ ュ ー ト リ アル参照)。 10.1 文書関数 203 1 番目の原因以外の と き は、 infomode オプシ ョ ン を使っ て文書を開 く こ と も で き ます。 こ れは、 PDF_pcos_get_*( ) 関数群を使っ て、 暗号化や文書情報フ ィ ール ド な ど、 その PDF に 関す る 情報を取得 し たい と き に有用で し ょ う 。 PDF の取 り 込みに関連 し た問題 (PDF フ ァ イ ル名の誤 り 、 不適切な PDF デー タ な ど) の性質について、 も っ と 詳 し い情報を得 る には、 PDF_get_errmsg( ) を使っ て、 よ り 詳 し い エ ラ ー メ ッ セージ を取得 し ます。 スコープ 任意。 オブ ジ ェ ク ト ス コ ープでは、 PDI 文書ハン ド ルは PDF_pcos_get_*( ) 関数群でだけ使 え ます。 表 10.1 PDF_open_pdi_document( ) のオプ シ ョ ン キー 説明 checktags (キーワー ド ) 取 り 込まれた構造エ レ メ ン ト 群に対 し て構造エ レ メ ン ト ネス ト 化規則群 (PDFlib チ ュ ー ト リ アル参照) が PDF_open_pdi_page( ) でチ ェ ッ ク さ れるかど う かを指定 し ます。 使え る キーワー ド (デ フ ォ ル ト : none) : none タ グネス ト 化規則は強制 さ れません。 こ の設定がデ フ ォ ル ト です。 なぜな ら、 世の中に 実在する文書の多 く は構造エ レ メ ン ト ネス ト 化規則群に違反 し てお り 、 こ う でなければ 取 り 込めないか ら です。 relaxed strict と 同様ですが、 ただ し い く つかの規則が強制 さ れません (PDFlib チ ュ ー ト リ アル 参照)。 strict 取 り 込まれた タ グがネス ト 化規則群に違反 し ている場合には PDF_open_pdi_page( ) への呼 び出 し が失敗 し ます。 checkoutput- (論理値。 PDF/A ・ PDF/X でのみ意味を持ち ます) true の場合、 出力イ ン テ ン ト の色要素の数が、 intentprofile その関連する ICC プ ロ フ ァ イル内の要素の数に対 し てチ ェ ッ ク さ れます。 こ のオプ シ ョ ン を false に設定する と 、 メ モ リ 必要量が減 り ますが、 入力文書群が一貫性のある出力イ ン テ ン ト プ ロ フ ァ イル群を内容 と し て持っ ている こ と がわかっ ている場合にのみ使用するべき です。 infomode (論理値) true にする と 、 pCOS イ ン タ フ ェ ースで情報は取得で き るけれど も、 PDF_open_pdi_ page( ) を用いてページ を カ レ ン ト 出力文書へ取 り 込む こ と はで き ないよ う に文書が開き ます。 以 下の文書を、 infomode=true では開 く こ と がで き ます : パスワー ド がわから ない暗号化 さ れた PDF (例外 : Distiller の設定 「オブ ジ ェ ク ト レ ベルの圧縮 : 最高」 を使っ て作成 さ れた PDF 1.6 以上の文 書)。 デ フ ォ ル ト : requiredmode=full に し ている と きは false、 そ う でなければ true inmemory (論理値) true にする と 、 PDI はフ ァ イル全体を メ モ リ 内に読み込んで、 そ こ から それを処理 し ま す。 こ れはシ ス テムによ っ ては非常な速度向上につなが り ますが (特に z/OS)、 そのかわ り メ モ リ 使用が増え ます。 false にする と 、 文書の個々の部分が必要に応 じ てそのつどデ ィ ス ク から読み 込まれます。 デ フ ォ ル ト : false parentlayer (レ イ ヤーハン ド ル。 その入力文書がレ イ ヤーを含んでいない場合か、 uselayers=false の場合に は無視 さ れます) その文書から取 り 込まれたすべてのレ イ ヤー定義を、 こ の指定 さ れた レ イ ヤー の子 と し て挿入 し ます。 も し この指定 さ れた レ イ ヤーが、 出力文書内のど こ かで ア ク テ ィ ブ化 さ れていた場合には、 それが親 と し て用い られ、 そ う でなかっ た場合には、 それは タ イ ト ル (区切 り ) と し てのみ用い られます。 デ フ ォル ト : 親レ イ ヤーな し parenttitle (ハイパーテキス ト 文字列。 その入力文書がレ イ ヤーを含んでいない場合か、 uselayers=false の 場合には無視 さ れます) タ イ ト ルレ イ ヤーを追加 し ます。 タ イ ト ルレ イ ヤーは、 ページの表示/ 非表示を直接制御せず、 取 り 込まれた レ イ ヤー定義群に対する ヒ エ ラルキー上の区切 り と し て働 き ます。 デ フ ォ ル ト : 親 タ イ ト ルな し 204 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 表 10.1 PDF_open_pdi_document( ) のオプ シ ョ ン キー 説明 password (文字列) 保護 さ れた PDF 文書を開いて取 り 込むために必要な マス タ ーパスワー ド 。 infomode=true に し ている と きは、 文書情報を取得するにはユーザーパスワー ド (空で もかまいま せん) で充分です。 暗号化 さ れた文書に対 し てパスワー ド を一切与えない と 、 その文書ハン ド ル は、 その暗号化ス テー タ ス を取得する ためだけに使え ます。 shrug オプ シ ョ ン を用いる と 、 特定の 条件下での保護 さ れた文書か らのページ取 り 込みを可能にする こ と がで き ます (PDFlib チ ュ ー ト リ アル参照)。 repair (キーワー ド ) 破損 し た PDF 入力文書の扱い方を指定 し ます。 文書を修復する と 、 通常の処理よ り も 時間がかか り ますが、 あ る種の破損 PDF の処理が可能にな るかも し れません。 ただ し 文書に よ っ ては、 修復不能なほど破損 し ている こ と も あ り ます。 と り う るキーワー ド (デ フ ォ ル ト : auto) : auto PDF を開き つつあ る と き に問題を検出 し た と き だけ文書を修復 し ます。 force 文書に問題があ るかないかにかかわ ら ず、 無条件に修復を試みます。 none 文書の修復を一切試みません。 PDF に問題がある と きは関数の呼び出 し は失敗 し ます。 requiredmode (キーワー ド ) 文書を開 く と き に受け入れる こ と ので き る最小の pcos モー ド (minimum/ restricted/full)。 要求 し ている モー ド よ り も結果の pcos モー ド のほ う が低い と きは、 呼び出 し は失敗 し ます。 呼び出 し が成功 し た と きは、 結果の pcos モー ド は最低で も こ のオプ シ ョ ン で指定 し ている ものである こ と が保証 さ れます。 ただ し 、 それよ り 高い こ と も あ り ます。 た と えば requiredmode=minimum に し ていて も、 暗号化 さ れていない文書では結果は full モー ド にな り ま す。 デ フ ォル ト : full shrug (論理値) true の場合、 特定の条件下での保護 さ れた文書からのページ取 り 込みを可能にする シ ュ ラ ッ グ機能がア ク テ ィ ブにな り ます (PDFlib チ ュ ー ト リ アル参照)。 こ の shrug オプ シ ョ ン を使用 する こ と によ っ てあなたは、 あなたが PDF 文書作成者の諸権利を遵守する こ と を宣明 し ます。 デ フ ォ ル ト : false uselayers (論理値。 入力がレ イヤーを含んでいる場合にのみ意味を持ち ます) true の場合、 取 り 込まれた ページ群で使用 さ れているすべてのレ イ ヤー定義が取 り 込まれます。 こ のオプ シ ョ ンは、 レ イ ヤー定義群にのみ影響を及ぼす も のであ り 、 レ イ ヤー定義自体には影響 し ません。 なぜな ら、 PDI はページ上のすべてのレ イ ヤーの内容をつねに取 り 込むから です。 デ フ ォ ル ト : true usetags (論理値。 タ グ付き PDF 入出力に対 し てのみ意味を持ち ます。 PDF/UA-1 モー ド では true にする 必要があ り ます) true の場合、 取 り 込まれた文書の構造 ヒ エ ラ ルキーが、 その構造エ レ メ ン ト タ グ群を後でそのページ群 と と も に取 り 込める よ う 、 読み込まれます。 デ フ ォ ル ト : true C int PDF_open_pdi_callback(PDF *p, void *opaque, size_t filesize, size_t (*readproc)(void *opaque, void *buffer, size_t size), int (*seekproc)(void *opaque, long offset), const char *optlist) PDF 文書を、 カ ス タ ムのデー タ 元か ら 開いて、 以後の使用に備え ます。 opaque 入力 PDF 文書に関連づけたい何 ら かのユーザデー タ へのポ イ ン タ 。 こ のポ イ ン タ は、 コ ールバ ッ ク 関数の 1 番目の引数 と し て渡 さ れ、 ど の よ う にで も 使え ます。 PDI は こ の不透明ポ イ ン タ を、 いかな る 形で も 使い ません。 filesize PDF 文書全体のサ イ ズ を、 バ イ ト 単位で指定 し ます。 readproc buffer で指 し 示 さ れ る メ モ リ へ size バ イ ト を コ ピーす る コ ールバ ッ ク 関数。 文 書の終わ り に達 し た と き は、 要求 よ り 少ないバ イ ト を コ ピーする こ と があ り ます。 こ の関 数は、 コ ピー し たバ イ ト 数を返す必要があ り ます。 10.1 文書関数 205 seekproc 文書内のカ レ ン ト の読み取 り 位置を設定する コ ールバ ッ ク 関数。 offset で、 文 書の先頭か ら の位置を指定 し ます (0 が先頭バ イ ト を意味 し ます) 。 こ の関数は、 成功 し た と き は 0 を返 し 、 そ う でなければ -1 を返す必要があ り ます。 optlist PDF を 開 く オ プ シ ョ ン 群 を 指定 し た オ プ シ ョ ン リ ス ト 。 PDF_open_pdi_ document( ) のすべてのオプシ ョ ン を使え ます。 戻り値 PDI 文書ハン ド ル。 文書の個々のページの処理や、 文書のプ ロ パテ ィ の取得に使え ます。 戻 り 値 -1 は、 PDF 文書を開 く こ と がで き なか っ た こ と を示 し ます。 任意の数の PDF 文書 を同時に開いてお く こ と がで き ます。 戻 り 値は、 カ レ ン ト の文書ス コ ープを終え る ま で使 え ます。 関数の呼び出 し が失敗 し た と き は、 その失敗の理由を PDF_get_errmsg( ) で取得 す る こ と がで き ます。 詳細 こ れは、 PDF 文書をデ ィ ス ク 上の フ ァ イ ルや メ モ リ 内か ら 与え る のではな く 、 何 ら かの デー タ 元か ら 任意の大 き さ ご と に PDF デー タ を取 り 出 し たい応用のための、 特殊な イ ン タ フ ェ ース です。 スコープ 任意。 オブ ジ ェ ク ト ス コ ープでは、 PDI 文書ハン ド ルは PDF 文書か ら 情報を取得す る ため にだけ使え ます。 バインディング C バ イ ンデ ィ ン グでのみ得 ら れます。 C++ Java C# void close_pdi_document(int doc) Perl PHP close_pdi_document(int doc) C void PDF_close_pdi_document(PDF *p, int doc) 開いてい る PDI ページハン ド ルをすべて閉 じ てか ら 、 入力 PDF 文書を閉 じ ます。 doc 詳細 PDF_open_pdi_document( ) で取得 し た有効な PDF 文書ハン ド ル。 こ の関数は、 PDF 取 り 込み文書を閉 じ て、 その文書に関連 し たすべての リ ソ ース を解放 し ます。 文書のページ を開いていたな ら 、 すべて自動的に閉 じ ら れます。 その文書ハン ド ル は、 こ の呼び出 し の後は使っ てはいけ ません。 さ ら に取 り 込みたいページがあ る と き は、 その PDF 文書は閉 じ る べき ではあ り ません。 PDF 取 り 込み文書は、 任意の回数開いた り 閉 じ た り で き ますが、 そ う す る と PDF 出力フ ァ イ ルが不必要に大 き く な る こ と があ り ま す。 スコープ 任意 206 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 10.2 ページ関数 C++ Java C# int open_pdi_page(int doc, int pagenumber, String optlist) Perl PHP int open_pdi_page(int doc, int pagenumber, string optlist) C int PDF_open_pdi_page(PDF *p, int doc, int pagenumber, const char* optlist) ページ を、 以後の PDF_fit_pdi_page( ) での使用のために準備 し ます。 doc PDF_open_pdi_document( ) で取得 し た有効な PDF 文書ハン ド ル。 pagenumber 開 き たいページの番号。 先頭ページの番号は 1 です。 optlist ページ関連オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照) > 表 10.2 に従っ た PDF ページオプシ ョ ン : boxexpand ・ checktransgroupprofile ・ clippingarea ・ cloneboxes ・ forcebox ・ pdiusebox ・ usetags > 共通 XObject オプシ ョ ン (表 9.11 参照) : associatedfiles・iconname・layer・metadata・pdfvt・reference・transform ・transparencygroup 戻り値 PDI ページハン ド ル。 PDF_fit_pdi_page( ) でページ を配置する ために使え ます。 戻 り 値 -1 (PHP では 0) は、 そのページが開けなか っ た こ と を示 し ます。 関数の呼び出 し が失敗 し た と き は、 その失敗の原因を PDF_get_errmsg( ) で取得す る こ と がで き ます。 返 さ れたハ ン ド ル は、 カ レ ン ト の 文 書 ス コ ー プ を 終 え る ま で 使 え ま す。 文 書 を PDF_open_pdi_ document( ) で開 く 際に infomode オプシ ョ ン を true に し ていた と き は、 そのハン ド ルは PDF_open_pdi_page( ) では使え ません。 エ ラ ー動作は、 errorpolicy オプシ ョ ンで変更す る こ と がで き ます。 詳細 こ の関数は、 取 り 込んだページ を構成す る すべてのデー タ を出力文書へ コ ピー し ますが、 出力上にいかな る 視覚効果を も 与え ません。 取 り 込んだページ を、 生成す る 出力文書の ど こ かに実際に配置す る には、 PDF_fit_pdi_page( ) を使 う 必要があ り ます。 こ の関数は以下 の場合には失敗 し ます : > 文書が、カ レ ン ト PDF 文書 と 非互換な PDF バージ ョ ン を使用 し てい る 。PDF 1.6 以下の PDF バージ ョ ン については、 同一バージ ョ ン以下のすべてのバージ ョ ン が互換です。 PDF 1.7 ・ PDF 1.7ext3 ・ PDF 1.7ext8 ・ PDF 2.0 は、 PDI を用いたページ取 り 込みに関す る 限 り はすべて互いに互換です。 し か し 、 PDF/A モー ド では入力 PDF バージ ョ ン番号 は無視 さ れます。 なぜな ら PDF/A では PDF バージ ョ ンヘ ッ ダ を無視す る 必要があ る か ら です。 > 文書が、カ レ ン ト のPDF/A ま たはPDF/X ま たはPDF/VT ま たはPDF/UA出力準拠レベル と 互換でないか、 ま たは非互換な出力 イ ン テ ン ト を使用 し てい る 。 > 文書が、矛盾する PDF/A ま たは PDF/X 出力 イ ン テ ン ト を含んでい る 場合には、ページ は一切取 り 込まれません。 PDF 取 り 込みに関連 し た問題 (不正な PDF デー タ な ど) に関す る 情報を よ り 詳 し く 知 り たい と き は、 PDF_get_errmsg( ) を呼び出す こ と がで き ます。 取 り 込むページの中に参照 XObject があ る と き は、 PDF_open_pdi_page( ) は、 代理 と 参 照の両方を タ ーゲ ッ ト へ複製 し ます。 任意の数のページ を同時に開 く こ と がで き ます。 同 じ ページ を複数回開 く と 、 別々の ハン ド ルが返 さ れ、 そ し て各ハン ド ルを 1 回ずつ閉 じ る 必要があ り ます。 10.2 ページ関数 207 PDF/A 取 り 込まれ る 文書は、 カ レ ン ト PDF/A 出力準拠レベル (PDFlib チ ュ ー ト リ アル参照) お よ び出力 イ ン テ ン ト に互換であ る 必要があ り ます。 PDF/X 取 り 込まれ る 文書は、 カ レ ン ト PDF/X 出力準拠レベル (詳 し く は PDFlib チ ュ ー ト リ アル 参照) に互換であ る 必要があ り 、 かつ、 生成 さ れ る 文書 と 同 じ 出力 イ ン テ ン ト を使用 し て い る 必要があ り ます。 PDF/X-4/5 : 取 り 込 ま れ る ページが、 生成 さ れ る 文書の出力 イ ン テ ン ト プ ロ フ ァ イ ル と 同一の CMYK ICC プ ロ フ ァ イ ルを使用 し てい る 場合には、 そのページは拒絶 さ れます。 PDF/VT 取 り 込まれ る 文書は、 カ レ ン ト PDF/VT 出力準拠レベル (詳 し く は PDFlib チ ュ ー ト リ ア ル参照) に互換であ る 必要があ り 、 かつ、 生成 さ れ る 文書 と 同 じ 出力 イ ン テ ン ト を使用 し てい る 必要があ り ます。 取 り 込まれ る 文書の中の文書部分 メ タ デー タ (DPM) は取 り 込ま れません。 PDF_begin_document( ) で usestransparency=false オプシ ョ ンが指定 さ れてい る に も かかわ ら ず、 取 り 込まれ る ページが透過を含んでい る 場合には、 こ の呼び出 し は失敗 し ます。 PDF/UA 取 り 込まれ る 文書は PDF/UA に準拠 し てい る 必要があ り ます。 取 り 込まれ る 文書の ロ ー ルマ ッ プは、 PDF_begin_document( ) の rolemap オプシ ョ ンに よ っ て与え ら れたマ ッ ピ ン グに互換であ る 必要があ り ます (詳 し く は PDFlib チ ュ ー ト リ アル参照)。 こ れはつま り 、 カ ス タ ム エ レ メ ン ト 種別群が、 こ の rolemap オプシ ョ ン と 、 取 り 込まれ る 文書の ロ ール マ ッ プ と で、 異な る 標準種別へマ ッ プ さ れていてはいけない と い う こ と を意味 し ます。 取 り 込ま れ る ページの見出 し 構造は、 生成 さ れ る 文書の構造種別に互換であ る 必要が あ り ます。 すなわち、 structuretype=weak な ら ば H1 ・ H2 な ど のみ (H は不可) がページ 上で使用 さ れてい る 必要があ り ます し 、 structuretype=strong な ら ば H のみ (H1 ・ H2 な ど は不可) が、 取 り 込まれ る ページ上で使用 さ れてい る 必要があ り ます。 番号付 き と 番号な し の両方の見出 し を持っ たページは拒否 さ れます。 スコープ オブ ジ ェ ク ト 以外任意 表 10.2 PDF_open_pdi_page( ) のオプ シ ョ ン キー 説明 boxexpand (float または float4 個の リ ス ト ) pdiusebox オプ シ ョ ン で選んだページ枠を、 4 辺すべて を同 じ 値 だけ (値 1 個を与えた場合)、 または左 / 右 / 下 / 上辺を個別に (値 4 個を与えた場合) 拡張 し ま す。 負の値でページサイ ズを小 さ く する こ と も で き ます。 こ のオプ シ ョ ン を利用すれば、 取 り 込 んだページのすべてのページ枠の外に位置する内容を配置 し た り 、 余白を加えた り する こ と がで き ます。 デ フ ォ ル ト : 0 checktransgroupprofile (論理値。 PDF/A ・ PDF/X に対 し てのみ意味を持ち ます) true の場合、 かつ取 り 込まれたページが 透過グループ を含んでいる場合には、 その色空間が、 生成 さ れる出力文書 と の整合性 と 互換性に ついてチ ェ ッ ク さ れます。 整合 し ない入力文書 と 、 色空間の衝突は、 準拠 し ない PDF/X または PDF/A 出力を生成するおそれがあ り ますので、 これによ っ てそれを防止 し ます。 このオプ シ ョ ン を false に設定する と 、 メ モ リ 必要量が低減 さ れますが、 こ の設定は、 取 り 込まれるページが、 準拠する透過グループ (も し あれば) を内容 と し ている こ と がわか っ ている場合にのみ用いるべ き です。 デ フ ォ ル ト : true 208 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 表 10.2 PDF_open_pdi_page( ) のオプ シ ョ ン キー 説明 clippingarea (キーワー ド ) 取 り 込んだページのページ枠群の う ちのどれを切 り 抜き に用いるかを指定 し ます。 指定 し た領域の外側の内容は、 こ の取 り 込んだページ を新 し いページ上に配置 し た後、 見え ませ ん。 使え るキーワー ド (デ フ ォル ト : pdiusebox) : art ArtBox が存在する な ら それを、 ないな ら CropBox を用います bleed BleedBox が存在する な ら それを、 ないな ら CropBox を用います crop CropBox が存在する な ら それを、 ないな ら MediaBox を用います media MediaBox を用います ( こ れは必ず存在 し ます) pdiusebox pdiusebox オプ シ ョ ン で指定 し た枠を用います trim TrimBox が存在する な ら それを、 ないな ら CropBox を用います cloneboxes (論理値。 boxexpand ・ forcebox ・ pdiusebox のいずれかを与えた と きは不可。 PDF_fit_pdi_page( ) の cloneboxes オプ シ ョ ン と 整合 さ せる必要があ り ます) にする と 、 ページは、 PDF_fit_pdi_page( ) の cloneboxes オプ シ ョ ンによ る枠複製のために用意 さ れます。 デ フ ォ ル ト : false forcebox (長方形) ページ枠を強制的に、 指定 し た値に し ます。 こ のオプ シ ョ ンは pdiusebox ・ boxexpand オプ シ ョ ン を オーバラ イ ド し ます。 こ れを利用すれば、 取 り 込んだページのすべてのページ枠の 外に位置する内容を配置する こ と がで き ます。 こ の値は、 取 り 込んだページが /Rotate キーを含 んでいる場合には、 注意深 く 選ぶ必要があ り ます。 boxexpand オプ シ ョ ンのほ う が、 /Rotate キー の有無にかかわ ら ず う ま く 働き ますので、 望ま し いで し ょ う 。 デ フ ォ ル ト : pdiusebox オプ シ ョ ン で選ばれた枠 ignorepdfversion (論理値) true の場合、 入力 PDF 文書の PDF バージ ョ ン番号は無視 さ れます。 すなわち、 カ レ ン ト PDF 出力文書よ り も 高い PDF バージ ョ ン を持 っ た文書から のページ を取 り 込める よ う にな り ま す。 よ り 高い PDF バージ ョ ン を持ち なが ら も PDF 1.7 に完全準拠 し ている PDF 文書に対 し て こ れ は有用で し ょ う 。 取 り 込むページが PDF 出力互換レ ベルを違反 し ていないよ う にするのはユー ザー側の役割です。 デ フ ォル ト : 一般に false、 ただ し PDF/A ・ PDF/X モー ド では true pdiusebox (キーワー ド 。 cloneboxes を与えた と きは不可) 取 り 込んだページの寸法を決定する ためにどの枠 寸法を用いるかを指定 し ます。 こ の枠寸法は、 PDF_fit_pdi_page( ) での拡縮操作のために用い られ ます。 こ の枠は、 ページの見え る内容も、 clippingarea オプ シ ョ ン で変更 さ れない限 り 、 決定 し ます。 デ フ ォル ト : crop。 usetags art ArtBox があればそれを、 なければ CropBox を用います bleed BleedBox があればそれを、 なければ CropBox を用います crop CropBox があればそれを、 なければ MediaBox を用います media MediaBox を用います ( こ れは必ず存在 し ます) trim TrimBox があればそれを、 なければ CropBox を用います (論理値。 タ グ付き PDF 入力および出力に対 し て、 かつ、 文書が usetags=true を用いて開かれて いる場合にのみ意味を持ち ます) true の場合、 取 り 込まれるページの構造 タ グ群が、 生成 さ れる 出力文書の構造 ヒ エ ラ ルキーへ複製 さ れます。 こ の場合、 PDF_fit_pdi_page( ) はページス コ ープ内 でのみ呼び出す こ と がで き ます。 デ フ ォ ル ト : true C++ Java C# void close_pdi_page(int page) Perl PHP close_pdi_page(int page) C void PDF_close_pdi_page(PDF *p, int page) ページハン ド ルを閉 じ て、 ページ関連の リ ソ ース をすべて解放 し ます。 page PDF_open_pdi_page( ) で取得 し た有効な PDF ページハン ド ル (ページ番号ではあ り ません!)。 10.2 ページ関数 209 詳細 こ の関数は、 page で指定す る ページハン ド ルに結びついたページ を閉 じ て、 関連す る リ ソ ース をすべて解放 し ます。 こ の呼び出 し の後に page を使っ てはいけ ません。 スコープ オブ ジ ェ ク ト 以外任意 C++ Java C# void fit_pdi_page(int page, double x, double y, String optlist) Perl PHP fit_pdi_page(int page, float x, float y, string optlist) C void PDF_fit_pdi_page(PDF *p, int page, double x, double y, const char *optlist) 取 り 込んだ PDF ページ を、 ページ上に、 さ ま ざ ま なオプシ ョ ンに従っ て配置 し ます。 page PDF_open_pdi_page( ) で取得 し た有効な PDF ページハン ド ル (ページ番号ではあ り ません!)。 文書を開 く 際に、 infomode オプシ ョ ン を false に し てお く 必要があ り ます。 ページハン ド ルは閉 じ て あ っ てはいけ ません。 x ・ y ページ を さ ま ざ ま なオプシ ョ ンに従っ て置き たい参照点の座標を、ユーザー座標系 で指定 し ます。 optlist ページオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 表 6.1 に従っ たはめ込みオプシ ョ ン群 : blind ・ boxsize ・ fitmethod ・ matchbox ・ orientate ・ position ・ rotate ・ scale ・ showborder > 表 9.3 に従っ たページ処理のためのオプシ ョ ン群 : adjustpage ・ gstate > 表 10.3 に従っ た cloneboxes オプシ ョ ン。 > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン (ページ ス コ ープ でのみ可) : tag 詳細 こ の関数は PDF_fit_image( ) に似てい ますが、 取 り 込み PDF ページに対 し て働 く 点が違い ます。 取 り 込んだページの中に ExtGState オブジ ェ ク ト があ る と き は、 出力品質を向上 さ せ る ために、 PDF_begin/end_page_ext( ) に以下のオプシ ョ ン を付け る こ と を推奨 し ます : transparencygroup={colorspace=DeviceRGB}。 タ グ 付 き ペ ー ジ (す な わ ち、 タ グ 付 き PDF が 作成 さ れ て、 か つ、 そ の ペー ジ が usetags=true を用いて タ グ付 き PDF か ら 取 り 込まれた)を複数回配置す る こ と はで き ませ ん。 タ グ付 き PDF モー ド では、 PDF_fit_pdi_page( ) を呼び出す前に、 PDF_fit_pdi_page( ) が 成功す る か ど う か を チ ェ ッ ク す る (そ し て失敗 し て例外が発生す る こ と を避け る ) ため に、 PDF_info_pdi_page( ) で fittingpossible キーワー ド を用い る こ と を推奨 し ます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 。 ただ し 、 タ グ付 き PDF 文書内のページが usetags=true で読み込まれてい る 場合には、 こ の関数はページ ス コ ープ内でのみ呼び出 し 可能です。 C++ Java C# double info_pdi_page(int page, String keyword, String optlist) Perl PHP float info_pdi_page(int page, string keyword, string optlist) C double PDF_info_pdi_page(PDF *p, int page, const char *keyword, const char *optlist) PDI ページに対す る 組版計算を実行 し 、 結果の メ ト リ ッ ク を取得 し ます。 page PDF_open_pdi_page( ) で取得 し た有効なページハン ド ル。 keyword 210 求め る 情報を指定 し た キー ワー ド : 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 表 10.3 PDF_fit_pdi_page( ) の追加オプ シ ョ ン キー 説明 cloneboxes (論理値。 PDF_begin_page_ext( ) で topdown オプ シ ョ ン を与えている と きは不可。 PDF_open_pdi_ page( ) の cloneboxes オプ シ ョ ン と 整合 さ せる必要があ り ます。 ページ ス コ ープ内のみ)。 こ のオプ シ ョ ン を true に設定する と 、 以下の結果にな り ます (デ フ ォル ト : false) : > 取 り 込んだページの中に存在する Rotate ・ MediaBox ・ TrimBox ・ ArtBox ・ BleedBox ・ CropBox 項目 がすべて、 カ レ ン ト 出力ページへ複製 さ れます。 > ページ内容が、 入力ページが転写 さ れる よ う に配置 さ れます。 ユーザーが、 配置 さ れるページの 位置や寸法を変え る こ と はで き ません。 よ っ て、 引数 x ・ y と 以下オプ シ ョ ンは無視 さ れます : adjustpage ・ boxsize ・ fitmethod ・ orientate ・ position ・ rotate ・ scale。 入力ページの転写 は、 PDF_fit_pdi_page( ) の呼び出 し の際にデ フ ォ ル ト 座標系が有効な場合にのみ可能です。 > cloneboxes オプ シ ョ ンによ っ て作成 さ れるページ枠が、 PDF_begin_page_ext( ) の artbox ・ bleedbox ・ cropbox ・ trimbox ・ mediabox ・ rotate オプ シ ョ ン と width ・ height 引数を オーバラ イ ド し ます。 > 表 6.3 に従っ た、 オブジ ェ ク ト はめ込みの結果を ク エ リ す る ためのキーワ ー ド : boundingbox ・ fitscalex ・ fitscaley ・ height ・ objectheight ・ objectwidth ・ width ・ x1 ・ y1 ・ x2 ・ y2 ・ x3 ・ y3 ・ x4 ・ y4 > 表 10.4 に従っ たページ関連キー ワー ド : mirroringx ・ mirroringy ・ pageheight, pagewidth ・ rotate ・ xid > 表 10.4 に従っ た タ グ付 き PDF 関連キーワ ー ド : fittingpossible ・ lang ・ topleveltag ・ topleveltagcount optlist 拡縮 と 配置の詳細を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 6.1 に従っ たはめ込みオプシ ョ ン群 (PDF ページ を、 PDF_open_pdi_page( ) の cloneboxes オプシ ョ ンで開いていた と き には、 こ れ ら のオプシ ョ ンは無視 さ れます) : boxsize ・ fitmethod ・ matchbox ・ orientate ・ position ・ rotate ・ scale > 表 9.3 に従っ たページ処理のためのオプシ ョ ン群は意味を持ち ません。ただ し それ ら を 与え る こ と はで き ますが、 PDF_fit_pdi_page( ) と PDF_info_pdi_page( ) に対 し て統一的 なオプシ ョ ン リ ス ト を実現す る ために無視 さ れます : adjustpage ・ gstate > 表 14.5 に従っ た、 短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン : tag > ページの最上位レベル構造エ レ メ ン ト 群の う ちの 1 つか ら 何 ら かの情報を取得す る た めにそれを選択す る ためのオプシ ョ ン : index 戻り値 keyword に よ っ て求め ら れた通 り の何 ら かのページ特性の値。 求め ら れた特性がそのペー ジについて得 ら れない と き には、 こ の関数は 0 を返 し ます。 オブジ ェ ク ト ハン ド ルが求め ら れてい る 場合には (例 : clippingpath) 、 こ の関数はそのオブジ ェ ク ト へのハン ド ルを、 あ る いはそのオブジ ェ ク ト が得 ら れない と き には -1 (PHP では 0) を返 し ます。 求め ら れ た キー ワー ド がテ キ ス ト を生み出す場合には、 文字列番号が返 さ れますので、 それに照応 す る 文字列を、 PDF_get_string( ) を用いて取得す る 必要があ り ます。 詳細 こ の関数は、指定 し たオプシ ョ ン群に従っ て取 り 込みページ を配置す る ために必要なすべ ての計算を実行 し ますが、 ページ上には実際の出力を一切生成 し ません。 ページ を配置す る ための参照点は {0 0} であ る と 見な さ れます。 PDF_open_pdi_page( ) の cloneboxes オプ シ ョ ン を与え てい る と き は、 ページは元のページ と 同 じ 位置に (ページ枠に対 し て相対的 に) 配置 さ れます。 10.2 ページ関数 211 PDF/UA fittingpossible に対す る チ ェ ッ ク が、 非 PDF/UA モー ド よ り も 厳格です。 スコープ オブ ジ ェ ク ト 以外任意 表 10.4 PDF_info_pdi_page( ) のキーワー ド キーワー ド 説明 fittingpossible ( タ グ付き PDF 出力の場合のみ意味を持ち ます) そのページ を、 以下のいずれかの理由に よ り 配置で き ない (すなわち PDF_fit_pdi_page( ) が例外を発生 さ せる であ ろ う ) 場合には 0 : > そのページの最上位レ ベル タ グ群のいずれかが、 構造エ レ メ ン ト 群に対する ネス ト 化規 則群によ っ て、 カ レ ン ト で ア ク テ ィ ブ な タ グの下では許容 さ れない。 > そのページは、 タ グ解除 さ れているか、 構造エ レ メ ン ト を含んでお ら ず、 かつ、 カ レ ン ト でア ク テ ィ ブ な タ グの子 と し て直接 コ ン テ ン ツが許容 さ れない。 > そのページはすでに配置 さ れている。 > 弱い文書構造を持 っ た PDF/UA-1 : カ レ ン ト の構造エ レ メ ン ト と その親群 と 、 取 り 込まれ る構造下位 ヒ エ ラ ルキー と の間に、 見出 し レ ベル番号のギ ャ ッ プがあ る。 そのページがカ レ ン ト の コ ン テキス ト に配置で き る場合には値 1 が返 さ れます。 PDF_fit_ pdi_page( ) の tag オプ シ ョ ン を与え る こ と も で き、 こ れは考慮に入れ られます。 こ の tag オ プ シ ョ ンの tagname サブオプ シ ョ ンのみが評価 さ れます。 他のサブオプ シ ョ ン を与え るべ き ではあ り ません。 こ の結果は、 カ レ ン ト の コ ン テキス ト に対 し てのみ有効な ものですので、 このキーワー ド は、 ページ を配置 し よ う と 試みる直前に使用するべき です。 lang 取 り 込まれるページの最上位レ ベル構造エ レ メ ン ト 群のいずれかの Lang 属性に対する文字 列番号、 あ るいは Lang 属性が全 く 決定で き ない場合には -1。 最上位レ ベルエ レ メ ン ト が 複数あ る場合には、 index オプ シ ョ ン を用いて 1 個を選ぶ こ と がで き ます。 mirroringx ・ mirroringy 与えたオプ シ ョ ン群に従 っ たページの横反転 ・ 縦反転 (1 か -1 かで表 さ れます) pageheight, pagewidth 元のページの高 さ と 幅をポ イ ン ト 単位で表 し た もの rotate cloneboxes=true の と き : 取 り 込んだページの回転角を度単位で表 し た もの、 すなわち、 そのページの Rotate キの値。 と り う る値は 0 ・ 90 ・ 180 ・ 270。 cloneboxes=false の と き : つねに 0 topleveltag 取 り 込まれるページが、 usetags=true を用いて開かれてお り 、 かつ、 構造エ レ メ ン ト に紐 付け られたマー ク 付き コ ン テ ン ツ を含んでいる場合には、 こ のページの最上位構造エ レ メ ン ト の う ちの 1 つの名前に対する文字列番号、 そ う でないな ら -1 (例 : Artifact を表す ページに対 し て)。 最上位エ レ メ ン ト が複数ある場合には、 index オプ シ ョ ン を用いて 1 つ を選ぶこ と がで き ます。 その タ グが、 取 り 込まれる文書のロールマ ッ プ内で ロールマ ッ プ さ れている カ ス タ ムエ レ メ ン ト である場合には、 そのカ ス タ ムエ レ メ ン ト 名ではな く 、 そ れに照応する標準エ レ メ ン ト 名が報告 さ れます。 topleveltagcount 取 り 込まれるページの構造 ヒ エ ラ ルキーの最上位レ ベルにある構造エ レ メ ン ト の数。 lang ・ topleveltag キーワー ド を用いて、 こ れらのエ レ メ ン ト に関する情報を、 index オプ シ ョ ン を用いて 1 つ選んで、 取得する こ と がで き ます。 そのページが タ グ解除 さ れている ために、 ま たは構造エ レ メ ン ト に照応する マー ク付き コ ン テ ン ツ を全 く 含んでいないため に、 構造エ レ メ ン ト が全 く 取 り 込まれない場合には、 0 が返 さ れます。 xid 212 (PDF/VT のみ) そのページの GTS_XID エ ン ト リ に対する文字列番号、 あ るいは GTS_XID 値 が何 も割 り 当て ら れていない場合には -1。 こ の GTS_XID 文字列は、 DPM に対する CIP4/ Summary/Content/Referenced メ タ デー タ プ ロパテ ィ 内で使用する こ と がで き ます。 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( Table 10.5 PDF_info_pdi_page( ) のオプ シ ョ ン オプ シ ョ ン 説明 index (整数。 lang ・ topleveltag キーワー ド に対 し てのみ意味を持ち ます) そのページの最上位構造エ レ メ ン ト 群の う ち、 属性が取得 さ れる も のを 1 つ選びます。 こ の値は範囲 0 ~ (toplevelcount-1) 内でなければな り ません。 デ フ ォル ト : 0 10.2 ページ関数 213 10.3 その他の PDI 処理 C++ Java C# int process_pdi(int doc, int page, String optlist) Perl PHP int process_pdi(int doc, int page, string optlist) C int PDF_process_pdi(PDF *p, int doc, int page, const char* optlist) 取 り 込んだ PDF 文書の、 あ る 種の要素を処理 し ます。 doc PDF_open_pdi_document( ) で取得 し た有効な PDF 文書ハン ド ル。 page optlist でページハン ド ルを必要 と し てい る と き は (表 10.6 参照)、 page は、 PDF_ open_pdi_page( ) で取得 し た有効な PDF ページハン ド ルにす る 必要があ り ます (ページ番 号ではあ り ません!)。 ページハン ド ルは閉 じ て あ っ てはいけ ません。 optlist でページハ ン ド ルを必要 と し ていない と き は、 page は -1 (PHP では 0) にす る 必要があ り ます。 optlist PDI 処理オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 10.6 に従っ た PDI 処理オプシ ョ ン群 : action ・ block 戻り値 関数が成功 し た と き は値 1、 関数が失敗 し た と き はエ ラ ーコ ー ド -1 (PHP では 0) 。 errorpolicy=exception に す る と 、 こ の 関 数 は エ ラ ー時 に 例 外 を 発 生 さ せ ま す。 action=copyallblocks に対 し て入力ページ上でブ ロ ッ ク が全 く 見つか ら なかっ た と き には、 こ の関数は 1 を返 し ます。 PDF/A 出力 イ ン テ ン ト は、 こ の関数で copyoutputintent オプシ ョ ン を指定す る か、 ま たは PDF_ load_iccprofile( ) を使っ て設定す る こ と がで き ます。 ただ し 、 デバ イ ス独立な色 し か文書 で使っ ていない と き は、 出力 イ ン テ ン ト は必要あ り ません。 PDF/X 出力 イ ン テ ン ト は、 こ の関数で copyoutputintent オプシ ョ ン を指定す る か、 ま たは PDF_ load_iccprofile( ) を使っ て設定す る 必要があ り ます。 スコープ action=copyoutputintent の場合は文書、 action=copyallblocks ・ action=copyblock の場合はページ 214 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 表 10.6 PDF_process_pdi( ) のオプ シ ョ ン キー 説明 action (キーワー ド 。 必須) PDF 処理の種類を指定 し ます : copyoutputintent (出力文書が PDF/X に も PDF/A に も準拠 し ていない場合には何も し ません) 取 り 込ん だ文書の PDF/X か PDF/A の出力イ ン テ ン ト ICC プ ロ フ ァ イルを、 出力文書へ複製 し ま す。 出力イ ン テ ン ト を複製 し よ う と する 2 回目およびそれ以降の試みは無視 さ れます。 文書に複数の出力イ ン テ ン ト が入っ ている と きは、 最初のものが使われます。 標準出力 イ ン テ ン ト (ICC プ ロ フ ァ イルが埋め込まれていない) を こ の方式で複製する こ と はで き ません。 入力文書 と 出力文書が PDF/X-4p/5pg に準拠 し ている と きは、 外部出力イ ン テ ン ト ICC プ ロ フ ァ イルへの参照が複製 さ れます。 こ のオプ シ ョ ン action=copyoutputintent は、 入力が PDF/X-4p/5pg に準拠 し ているのに出力が し ていない と き には許 さ れません。 copyallblocks (PPS でのみ利用可能) 入力文書のページか ら すべての PDFlib ブ ロ ッ ク を カ レ ン ト 出力 ページへ block オプ シ ョ ンに従 っ て複製 し ます。 copyblock (PPS でのみ利用可能)入力文書のページか ら PDFlib ブ ロ ッ ク 1 個を カ レ ン ト 出力ページ へ block オプ シ ョ ンに従 っ て複製 し ます。 block (オプ シ ョ ン リ ス ト 。 action=copyallblocks ・ action=copyblock では必須) ブ ロ ッ ク 複製処理の詳 細を指定 し ます。 以下のサブオプ シ ョ ン を使え ます : blockname (名前文字列。 action=copyblock でのみ、 かつその場合には必須) そのブ ロ ッ ク の名前 outputblockname (名前文字列。 action=copyblock でのみ) そのブ ロ ッ ク が出力ページ上で格納 さ れる名 前。 デ フ ォ ル ト : blockname オプ シ ョ ンの値 pagenumber (整数。 必須) 入力文書内の、 そのブ ロ ッ クが位置 し ているページの、 1 か ら始ま る番 号。 10.3 その他の PDI 処理 215 10.4 pCOS 関数 pCOS 関数はすべて、 PDF 文書内の目指すオブジ ェ ク ト を指 し 示すパ ス に よ っ て動作 し ま す。 pCOS パス について詳 し く は pCOS パ ス リ フ ァ レ ン ス で説明 し てい ます。 ク ッ ク ブ ッ ク PDFlib+PDI または PPS の中で pCOS を利用する ための完全な コ ー ド サン プルがク ッ ク ブ ッ ク の pdf_import/starter_pcos ト ピ ッ ク にあ り ます。pCOS ク ッ ク ブ ッ ク には pCOS プ ログ ラ ミ ングサン プルが多数あ り ます。 注 評価モー ド では、pCOS は最大 1 MB または 10 ページの入力文書を受け付けます。ただ し 、 次の要素はそれよ り 大き い文書か ら も 評価モー ド で取得で き ます : ページ数 ・ ページ寸 法 ・ ブ ロ ッ ク 詳細 ・ すべての汎用擬似オブ ジ ェ ク ト 。 C++ Java C# double pcos_get_number(int doc, string path) Perl PHP double pcos_get_number(long doc, string path) C double PDF_pcos_get_number(PDF *p, int doc, const char *path, ...) 数値ま たは論理値型の pCOS パ ス の値を得ます。 doc path PDF_open_pdi_document( ) で取得 し た有効な文書ハン ド ル。 数値ま たは論理値オブジ ェ ク ト への完全な pCOS パス。 追加引数 (C 言語バ イ ンデ ィ ン グのみ) key 引数にプ レース ホルダ を入れてい る と き は (%s な ら 文字列、 %d な ら 整数。 %% を使 う と 1 個のパーセ ン ト 記号)、 それに対応 し て可 変の数の追加引数を与え る こ と がで き ます。 こ れ ら の引数を使えば、 可変の数値や文字列 の値を入れて複雑なパ ス を明示的に構築す る 手間が省け ま す。 プ レ ー ス ホルダの数 と 型 を、 与え る 追加引数 と 確かに一致 さ せ る のは、 ク ラ イ ア ン ト 側の役割です。 戻り値 pCOS パス で同定 さ れたオブジ ェ ク ト の数値。 論理値の場合は、 true な ら 1、 そ う でなけ れば 0 が返 さ れます。 スコープ 任意 C++ Java C# string pcos_get_string(int doc, string path) Perl PHP string pcos_get_string(long doc, string path) C const char *PDF_pcos_get_string(PDF *p, int doc, const char *path, ...) 名前ま たは数値ま たは文字列ま たは論理値型の pCOS パ ス の値を得ます。 doc path PDF_open_pdi_document( ) で取得 し た有効な文書ハン ド ル。 名前ま たは文字列ま たは論理値オブジ ェ ク ト への完全な pCOS パス。 追加引数 (C 言語バ イ ンデ ィ ン グのみ) key 引数にプ レース ホルダ を入れてい る と き は (%s な ら 文字列、 %d な ら 整数。 %% を使 う と 1 個のパーセ ン ト 記号)、 それに対応 し て可 変の数の追加引数を与え る こ と がで き ます。 こ れ ら の引数を使えば、 可変の数値や文字列 の値を入れて複雑なパ ス を明示的に構築す る 手間が省け ま す。 プ レ ー ス ホルダの数 と 型 を、 与え る 追加引数 と 確かに一致 さ せ る のは、 ク ラ イ ア ン ト 側の役割です。 戻り値 pCOS パス で同定 さ れたオブジ ェ ク ト の値の文字列。論理値の場合は、文字列 true か false が返 さ れます。 216 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 詳細 こ の関数は、 pCOS が完全モー ド で動作 し ていない と き 、 オブジ ェ ク ト が文字列型だ と 例 外を発生 さ せます。 ただ し オブジ ェ ク ト に よ っ ては、 特定の条件下において限定モー ド で も 取得で き る も のがあ り ます。 詳 し く は pCOS パ ス リ フ ァ レ ン ス を参照 し て く だ さ い。 こ の関数は、 PDF 文書か ら 取得す る 文字列がテ キ ス ト 文字列であ る こ と を前提に し て い ます。 バ イ ナ リ デー タ の入っ た文字列オブジ ェ ク ト は、 デー タ を一切変更 し ない PDF_ pcos_get_stream( ) で取得す る 必要があ り ます。 スコープ 任意 バインディング C 言語バ イ ンデ ィ ン グ:文字列は BOM な し の UTF-8 形式(zSeries・i5/iSeries では EBCDICUTF-8) で返 さ れます。 返 さ れ る 文字列は、 最大 10 項目の円環バ ッ フ ァ 内に格納 さ れま す。 10 個を超え る 文字列が変換 さ れ る と き は、 バ ッ フ ァ は再利用 さ れ ますので、 ク ラ イ ア ン ト 側では、 も し 10 個を超え る 文字列に並列にア ク セ ス し たい と き には、 文字列を複 製す る 必要があ り ます。 た と えば、 1 つの printf( ) 文に対す る 引数群 と し て こ の関数への 呼び出 し を 10 個ま でな ら 使 う こ と がで き ます。 なぜな ら 、 同時に使われ る 文字列が 10 個 以下な ら ば、 返 さ れ る 文字列群は独立であ る こ と が保証 さ れてい る か ら です。 C++ 言語バ イ ンデ ィ ン グ:文字列は、C++ ラ ッ パのデフ ォ ル ト wstring 構成におけ る wstring と し て返 さ れ ま す。 zSeries ・ i5/iSeries の string 互換モー ド では、 結果は BOM な し の EBCDIC-UTF-8 で返 さ れます。 バインディング COM : 結果は UTF-16 形式の Unicode 文字列 と し て与え ら れます。 テ キ ス ト が全 く 得 ら れ ない と き は空文字列が返 さ れます。 Java ・ .NET ・ Python : 結果は Unicode 文字列 と し て与え ら れます。 テ キ ス ト が全 く 得 ら れ ない と き は null オブジ ェ ク ト が返 さ れます。 Perl ・ PHP 言語バ イ ンデ ィ ン グ : 結果は UTF-8 文字列 と し て与え ら れます。 テ キ ス ト が全 く 得 ら れない と き は null オブジ ェ ク ト が返 さ れます。 RPG 言語バ イ ンデ ィ ン グ : 結果は EBCDIC-UTF-8 文字列 と し て与え ら れます。 C++ Java C# const unsigned char *pcos_get_stream(int doc, int *length, string optlist, string path) Perl PHP string pcos_get_stream(long doc, string optlist, string path) C const unsigned char *PDF_pcos_get_stream(PDF *p, int doc, int *length, const char *optlist, const char *path, ...) stream ま たは fstream ま たは文字列型の pCOS パス の内容を得ます。 doc PDF_open_pdi_document( ) で取得 し た有効な文書ハン ド ル。 length (C ・ C++ 言語バ イ ンデ ィ ン グのみ) 返 さ れ る ス ト リ ームデー タ の長 さ をバ イ ト 単 位で格納 さ せたい変数へのポ イ ン タ 。 optlist path 表 10.7 に従っ た ス ト リ ーム取得オプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 ス ト リ ーム ま たは文字列オブジ ェ ク ト への完全な pCOS パ ス。 追加引数 (C 言語バ イ ンデ ィ ン グのみ) key 引数にプ レース ホルダ を入れてい る と き は (%s な ら 文字列、 %d な ら 整数。 %% を使 う と 1 個のパーセ ン ト 記号)、 それに対応 し て可 変の数の追加引数を与え る こ と がで き ます。 こ れ ら の引数を使えば、 可変の数値や文字列 の値を入れて複雑なパ ス を明示的に構築す る 手間が省け ま す。 プ レ ー ス ホルダの数 と 型 を、 与え る 追加引数 と 確かに一致 さ せ る のは、 ク ラ イ ア ン ト 側の役割です。 10.4 pCOS 関数 217 戻り値 ス ト リ ーム ま たは文字列に入っ ていたデー タ を復号 し た も の。 ス ト リ ームか文字列が空の と き 、 ま たは、 暗号化 さ れていない文書の中の暗号化 さ れてい る 添付の内容が ク エ リ さ れ てその添付パ ス ワ ー ド が与え ら れていない と き は、返 さ れ る デー タ は空 (C++ では NULL) にな り ます。 オブジ ェ ク ト が stream 型の と き は、 keepfilter=true でなければ、 すべての フ ィ ル タ が ス ト リ ームの内容か ら 除去 さ れます (すなわち、 生デー タ 本体が返 さ れます) 。 オブジ ェ ク ト が fstream ま たは文字列型の と き は、デー タ は PDF フ ァ イ ル内で見つかっ たその ま ま で返 さ れますが、 ただ し 例外 と し て ASCII85 ・ ASCIIHex フ ィ ル タ は除去 さ れます。 詳細 こ の関数は、 pCOS が完全モー ド で動作 し ていない と き は、 例外を発生 さ せます。 ただ し 例外 と し て、 オブジ ェ ク ト /Root/Metadata は、 nocopy=false か plainmetadata=true に し ていれば、 限定 pCOS モー ド で も 取得で き ます。 ま た、 path が stream か fstream か文字 列型のオブジ ェ ク ト を指 し 示 し ていない と き も 、 例外が発生 し ます。 こ の関数は、 その名に合わず、 文字列型のオブジ ェ ク ト を取得す る ために も 使え ます。 PDF_pcos_get_string( ) では、 オブ ジ ェ ク ト を テ キ ス ト 文字列 と し て扱い ま すが、 それ と 違っ て こ の関数は、 返 さ れ る デー タ にいかな る 変更 も 加え ません。 バ イ ナ リ 文字列デー タ は、 PDF 内で使われ る こ と は まれで、 自動的に正 し く 検出す る こ と はで き ません。 ですの で、 文字列オブジ ェ ク ト をバ イ ナ リ デー タ と テ キ ス ト の ど ち ら と し て取得す る か、 適切な 関数を選ぶのはユーザー側の役割です。 スコープ 任意 バインディング COM : 多 く の ク ラ イ ア ン ト プ ロ グ ラ ム では、 ス ト リ ーム内容を格納す る ために、 バ リ ア ン ト 型を使い ます。 JavaScript で COM を使 う 場合は、 返 さ れ る バ リ ア ン ト 配列の長 さ を 取得する こ と が許 さ れません ( し か し 他の言語 と COM ではそれは動作 し ます) C ・ C++ 言語バ イ ンデ ィ ン グ : 返 さ れたデー タ バ ッ フ ァ は、 次に こ の関数を呼び出すま で 使え ます。 Python : 結果は 8 ビ ッ ト 文字列 (Python 3 : bytes) と し て返 さ れます。 注 こ の関数を使 う と 、 PDF から 、 埋め込まれてい る フ ォ ン ト デー タ を取得する こ と がで き ま す。 ユーザーに注意を喚起 し たいのは、 フ ォ ン ト は各フ ォ ン ト ベン ダーのラ イ セ ン ス契約 に従属 し ているので、各知的所有権者の明示的許諾な し に再利用する こ と はで き ない と い う こ と です。 お使いの フ ォ ン ト のベン ダーに連絡を と り 、 関連する ラ イ セ ン ス契約を話 し 合 っ て く だ さ い。 表 10.7 PDF_pcos_get_stream( ) のオプ シ ョ ン オプ シ ョ ン 説明 convert (キーワー ド 。 非サポー ト のフ ィ ル タ で圧縮 さ れている ス ト リ ームでは無視 さ れます) 文字 列ま たはス ト リ ーム内容が変換 さ れるかど う かを制御 し ます (デ フ ォル ト : none) : 218 none 内容をバイ ナ リ デー タ と し て扱い、 何の変換も 行いません。 unicode 内容を テキス ト デー タ と し て (すなわち、 PDF_pcos_get_string( ) の場合 と 全 く 同 様に) 扱い、 こ れを Unicode に正規化 し ます。 Unicode 非対応言語バイ ンデ ィ ン グでは、 こ れは、 デー タ が BOM な し の UTF-8 形式へ変換 さ れる こ と を意味 し ま す。 こ のオプ シ ョ ンは、 PDF 内のまれに し か用い られないデー タ 型 「テキス ト ス ト リ ーム」 (た と えば、 こ れは JavaScript のために用い ら れる場合があ り ます。 し か し JavaScript の多数は、 文字列オブ ジ ェ ク ト 内に格納 さ れ、 ス ト リ ームオブ ジ ェ ク ト には格納 さ れません) のために必要です。 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 表 10.7 PDF_pcos_get_stream( ) のオプ シ ョ ン オプ シ ョ ン 説明 keepfilter (論理値。 画像デー タ ス ト リ ームに対 し てのみ推奨。 非サポー ト のフ ィ ル タ で圧縮 さ れてい る ス ト リ ームでは無視 さ れます) true にする と 、 ス ト リ ームデー タ は、 画像の filterinfo 擬似オブ ジ ェ ク ト 内で指定 さ れている フ ィ ル タ で圧縮 さ れます。 デ フ ォル ト : すべての非 サポー ト フ ィ ル タ では true、 そ う で ないな ら false 10.4 pCOS 関数 219 220 第 10 章 : PDF 取 り 込み (PDI) ・ pCOS 関数 ( 11 ブ ロ ッ ク流 し 込み関数 (PPS) PDFlib Personalization Server (PPS) は、 テキス ト ・ イ メ ージ ・ PDF 型の可変ブ ロ ッ ク を処 理す る ための関数を提供 し ます。 こ れ ら の PDFlib ブ ロ ッ ク は、 取 り 込む PDF ページに入 れてお く 必要があ り ますが、 生成す る 出力には残 り ません。 取 り 込んだページは、 ブ ロ ッ ク 流 し 込み関数を使 う 前に、 出力ページに PDF_fit_pdi_page( ) で配置 し てお く 必要があ り ます。 ブ ロ ッ ク 関数は、 ページ上でのブ ロ ッ ク の位置を算出する 際、 取 り 込んだページが PDF_fit_pdi_page( ) で配置 さ れた時に効いていた拡縮オプシ ョ ン を考慮 し ます。 注 こ の章で解説する ブ ロ ッ ク処理関数は、 PDFlib Personalization Server (PPS) が必要です。 PDF テ ン プ レー ト 内に PDFlib ブ ロ ッ ク を対話的に作成するには、 Adobe Acrobat 用 PDFlib Block Plugin が必要です。 あるいは、 ブ ロ ッ ク を PPS 自体で作成する こ と も で き ます。 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの blocks/starter_block ト ピ ッ ク にあ り ます。 11.1 ブ ロ ッ ク 流 し 込み関数の長方形オ プ シ ョ ン 表 11.1 に、 PDF_fill_textblock( ) ・ PDF_image_block( ) ・ PDF_fill_pdfblock( ) ・ PDF_graphics_ block( ) の長方形オプシ ョ ン を挙げます。 各ブ ロ ッ ク 種別 (テ キ ス ト ・ イ メ ージ ・ PDF ブ ロ ッ ク ) に特有のオプシ ョ ン は次節以降に挙げ ま す。 ほ と ん どすべてのブ ロ ッ ク プ ロ パ テ ィ は同名のオプシ ョ ンでオーバ ラ イ ド で き ますが、ただ し 以下のプ ロ パテ ィ だけはオプ シ ョ ンでオーバ ラ イ ド で き ません : Name・Description・Subtype・Type 表 11.1 PDF_fill_*block( ) 関数の長方形オプ シ ョ ン キー 説明 Rect (長方形) ブ ロ ッ ク の座標を ブ ロ ッ ク PDF の座標系で指定 し ます。 ブ ロ ッ ク長方形は refpoint ・ boxsize オプ シ ョ ン で指定で き ます (ユーザー座標系で)。 Status (キーワー ド ) ブ ロ ッ クがどのよ う に処理 さ れるかを記述 し ます (デ フ ォ ル ト : active) : active ブ ロ ッ ク はそのプ ロパテ ィ 群に従っ て完全に処理 さ れます。 ignore ブ ロ ッ ク は無視 さ れます。 ignoredefault active と 同様ですが、 ただ し 、 defaulttext/image/pdf プ ロパテ ィ は無視 さ れます。 す なわち、 内容が与え ら れていなければブ ロ ッ クは空のま まにな り ます。 これは、 ブ ロ ッ ク がた と え Block Plugin でのプ レ ビ ュ ーのためのデ フ ォ ル ト 内容を持っ ていた と し て も 、 そのブ ロ ッ クのデ フ ォ ル ト 内容がサーバ側で ブ ロ ッ クへの流 し 込みに使われないよ う に する ために有用で し ょ う 。 また、 こ れを利用すれば、 デ フ ォル ト 内容を表示 さ せずにブ ロ ッ ク を プ レ ビ ュ ー し たい場合に、 それを ブ ロ ッ クのプ ロパテ ィ から 削除 し な く て も済 みます。 static 可変内容が一切配置 さ れません。 ブ ロ ッ ク のデ フ ォ ル ト テキス ト ・ イ メ ージ ・ PDF 内容 が も し あればそれが用い られます。 background- (色) ブ ロ ッ クの塗 り 色。 こ の色は、 ブ ロ ッ クへの流 し 込みよ り 前に適用 さ れます。 こ れは、 既存 color のページ内容を隠すのに有用で し ょ う 。 デ フ ォ ル ト : none bordercolor (色) ブ ロ ッ クの境界色。 こ の色は、 ブ ロ ッ クへの流 し 込みよ り 前に適用 さ れます。 デ フ ォ ル ト : none linewidth (float。 0 よ り 大き く する必要があ り ます) ブ ロ ッ ク 長方形を描 く のに用いる線の描線幅。 bordercolor を設定 し ている と き にのみ用い ら れます。 デ フ ォル ト : 1 11.1 ブ ロ ッ ク流 し 込み関数の長方形オプ シ ョ ン 221 11.2 テ キス ト 行 ・ テ キス ト フ ロ ー ブ ロ ッ ク C++ Java C# int fill_textblock(int page, String blockname, String text, String optlist) Perl PHP int fill_textblock(int page, string blockname, string text, string optlist) C int PDF_fill_textblock(PDF *p, int page, const char *blockname, const char *text, int len, const char *optlist) テ キ ス ト 行ま たはテ キ ス ト フ ロ ーブ ロ ッ ク へ、 そのプ ロ パテ ィ に従っ て、 可変デー タ を流 し 込みます。 page PDFlib ブ ロ ッ ク を入れて あ る ページに対する 有効な PDF ページハン ド ル。 こ れ よ り 前に、 ブ ロ ッ ク を持っ た入力 PDF ページ を、 PDF_fit_pdi_page( ) で直接、 ま たは PDF_ fit_table( ) で表セル内へ間接的に、 あ る いは PDF_fill_pdfblock( ) で PDF ブ ロ ッ ク の内容 と し て、 ページ上に配置 し てお く 必要があ り ます。 blockname (名前文字列) ブ ロ ッ ク の名前。 text (内容文字列) ブ ロ ッ ク へ流 し 込みたいテ キ ス ト 。 空文字列にす る と 、 デフ ォ ル ト テ キ ス ト (ブ ロ ッ ク のプ ロ パテ ィ で定義 し て あ る ) を使え ます。 textflowhandle オプシ ョ ン を与え てい る と き は、 その中身が有効なテ キ ス ト フ ロ ーハン ド ルな ら ば、 こ の引数は無 視 さ れます。 len (C 言語バ イ ンデ ィ ン グのみ) text の長 さ (バ イ ト 単位)。 len=0 にす る と null 終了文 字列を与え る 必要があ り ます。 optlist テ キ ス ト ブ ロ ッ ク 流 し 込みオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下のオ プシ ョ ンが使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 11.1 に従っ たブ ロ ッ ク 流 し 込み関数のための長方形オプシ ョ ン群 : Rect ・ Status ・ backgroundcolor ・ bordercolor ・ linewidth > はめ込みオプシ ョ ン群 (131 ページ 「6.1 オブジ ェ ク ト のはめ込み」 参照) > テ キ ス ト 行ブ ロ ッ ク 、 すなわち textflow プ ロ パテ ィ ま たはオプシ ョ ンが false : すべてのテ キ ス ト 行オプシ ョ ン(95 ページ「5.1 テ キ ス ト 行に よ る 一行テ キ ス ト 」参照)。 > テ キ ス ト フ ロ ーブ ロ ッ ク 、 すなわち textflow プ ロ パテ ィ ま たはオプシ ョ ンが true : PDF_add/create_textflow( ) のすべてのオプシ ョ ン (102 ページ 「5.2 テ キ ス ト フ ロ ーに よ る 複数行テ キ ス ト 」 参照) と PDF_fit_textflow( ) のすべてのオプシ ョ ン (表 5.12 参照) > 表 11.2 に従っ たテ キ ス ト ブ ロ ッ ク オプシ ョ ン群 : textflow ・ textflowhandle > デフ ォ ル ト 内容のためのオプシ ョ ン : defaulttext (PDFlib チ ュ ー ト リ アル参照) 戻り値 指定 し た名前のブ ロ ッ ク がページ上にないか、 ま たはブ ロ ッ ク へ流 し 込めないか (フ ォ ン ト の問題な ど に よ り )、ま たはブ ロ ッ ク が誤っ た型を持っ てい る か、ま たはブ ロ ッ ク が も っ と 新 し い PPS バージ ョ ン を必要 と す る と き は -1 (PHP では 0)。 ブ ロ ッ ク の処理が成功 し た と き は 1。 textflowhandle オプシ ョ ン を与え てい る と き は、 有効なテ キ ス ト フ ロ ーハン ド ルが返 さ れ る ので、 以後の呼び出 し で使え ます。 PDF 文書が破損 し てい る こ と がわか っ た と き は、 こ の関数は errorpolicy オプシ ョ ンに 従っ て、 例外を発生 さ せ る か、 -1 を返 し ます。 詳細 与え たテ キ ス ト が、 ブ ロ ッ ク のプ ロ パテ ィ に従っ て、 ブ ロ ッ ク の中に組版 さ れます。 text を 空 に す る と 、 こ の 関 数 は、 ブ ロ ッ ク の デ フ ォ ル ト テ キ ス ト が あ れ ば そ れ を 使 い 222 第 11 章 : ブ ロ ッ ク 流 し 込み関数 (PPS) (Status=ignoredefault でなければ)、 それ以外の場合は警告を出 さ ずに返 り ます。 こ れは、 塗 り 色や描線色な ど、 他のブ ロ ッ ク プ ロ パテ ィ を活用す る う えで有用です。 フ ォ ン ト 選択 : font オプシ ョ ン を与えてお ら ず、 オプシ ョ ンに基づ く 暗黙的フ ォ ン ト 読み込み も 用い ら れていない と き は、 フ ォ ン ト はブ ロ ッ ク のプ ロ パテ ィ 群に基づいて暗黙 的に読み込ま れます。 フ ォ ン ト に対する エン コ ーデ ィ ン グは、オプシ ョ ン と し てのみ指定す る こ と がで き 、ブ ロ ッ ク プ ロ パテ ィ と し ては指定で き ませんので、デフ ォ ル ト では以下の よ う に設定 さ れま す: > フ ォ ン ト が記号フ ォ ン ト であ り 、 かつ charref=false、 かつ (Unicode 非対応言語につい てのみ) textformat=auto か bytes な ら ば builtin > それ以外の場合は unicode。 defaulttext を用い る 場合には、 encoding ・ charref ・ textformat オプシ ョ ン を避け る こ と を 推奨 し ます。 embedding オプシ ョ ンについては特に注意を払 う 必要があ り ます : フ ォ ン ト がブ ロ ッ ク のプ ロ パテ ィ に基づいて暗黙的に読み込まれた場合には、それは自動的に埋め込まれ る わけではあ り ません。 フ ォ ン ト を埋め込ませたい と き は、 embedding オプシ ョ ン を指定す る 必要があ り ます。 テ キ ス ト フ ロ ーブ ロ ッ ク の連結 : テ キ ス ト フ ロ ーがブ ロ ッ ク に収ま り き ら ない と き は、 textflowhandle オプシ ョ ン を使っ て、 複数のブ ロ ッ ク を連結 し 、 同 じ テ キ ス ト フ ロ ーの各 部分を それぞれに入れ る こ と も で き ます。 > 最初の呼び出 し では、 値 -1 (PHP では 0) を与え る 必要があ り ます。 内部的に作成 さ れ たテ キ ス ト フ ロ ーハン ド ルが PDF_fill_textblock( ) に よ っ て返 さ れ る ので、 ユーザー側 でそれを保管す る 必要があ り ます。 > 次の呼び出 し では、前の段階で返 さ れたテ キ ス ト フ ロ ーハン ド ルを、textflowhandle オ プシ ョ ンに与え る こ と がで き ます (text 引数で与え る テ キ ス ト は こ の場合無視 さ れ る ので、 空にす る べき です)。 ブ ロ ッ ク へはテ キ ス ト フ ロ ーの残 り が流 し 込まれます。 > こ の処理を、 他のテ キ ス ト フ ロ ーブ ロ ッ ク について も 繰 り 返す こ と がで き ます。 > 返 さ れたテ キ ス ト フ ロ ーハン ド ルは、PDF_info_textflow( ) に与え て、テ キ ス ト の終了位 置等、 ブ ロ ッ ク 流 し 込みの結果を知 る こ と がで き ます。 こ の処理を、任意の回数繰 り 返す こ と がで き ます。テ キ ス ト フ ロ ーハン ド ルを最後に PDF_ delete_textflow( ) で削除す る のはユーザー側の役割です。 PDF/UA ブ ロ ッ ク 装飾、 すなわち、 backgroundcolor ・ bordercolor ・ linewidth プ ロ パテ ィ に従っ て 作成 さ れ る 罫線 と 背景色は、 自動的に Artifact と し て タ グ付け さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 表 11.2 PDF_fill_textblock( ) の追加オプ シ ョ ン キー 説明 textflow (論理値) 一行処理か複数行処理かを制御 し ます。 こ のプ ロパテ ィ を使 う と 、 テキス ト 行ブ ロ ッ ク と テキス ト フ ローブ ロ ッ ク を切 り 替え る こ と がで き ます : false テキス ト は一行にわた り 、 PDF_fit_textline( ) で処理 さ れます。 true テキス ト は複数行にわた り 、 PDF_fit_textflow( ) で処理 さ れます。 デ フ ォル ト はブ ロ ッ ク の種別に依存 し ます : テキス ト フ ローブ ロ ッ クの場合は true、 テキス ト 行 ブ ロ ッ ク の場合は false 11.2 テキス ト 行 ・ テキス ト フ ローブ ロ ッ ク 223 表 11.2 PDF_fill_textblock( ) の追加オプ シ ョ ン キー 説明 textflowhandle (テキス ト フ ローハン ド ル。 PDF_fill_textblock( ) で textflow=true の場合のみ) このオプ シ ョ ン を利 用する と 、 テキス ト フ ローブ ロ ッ ク を連結する こ と がで き ます。 連結ブ ロ ッ ク 群の最初のブ ロ ッ ク に対 し ては値 -1 (PHP では 0) を与え る必要があ り ます。 こ の関数に よ っ て返 さ れた値を、 そ れ以後の連結 さ れる他のブ ロ ッ ク 群に対する呼び出 し で テキス ト フ ローハン ド ル と し て与え る こ と がで き ます。 このオプ シ ョ ンは fitmethod のデ フ ォル ト を clip に変更 し ます。 なお、 ブ ロ ッ ク のテキス ト 作成 ・ テキス ト 組版 ・ 書式プ ロパテ ィ グループのすべてのプ ロパテ ィ は、 textflowhandle が与え られている場合には無視 さ れます。 なぜな ら 、 テキス ト フ ローを作成する ために用い ら れた、 それら に照応する値群が適用 さ れるから です。 224 第 11 章 : ブ ロ ッ ク 流 し 込み関数 (PPS) 11.3 イ メ ージ ブ ロ ッ ク C++ Java C# int fill_imageblock(int page, String blockname, int image, String optlist) Perl PHP int fill_imageblock(int page, string blockname, int image, string optlist) C int PDF_fill_imageblock(PDF *p, int page, const char *blockname, int image, const char *optlist) イ メ ージブ ロ ッ ク へ、 そのプ ロ パテ ィ に従っ て、 可変デー タ を流 し 込みます。 page PDFlib ブ ロ ッ ク を入れて あ る ページに対す る 有効な PDF ページハン ド ル。 こ れ よ り 前に、 ブ ロ ッ ク を持っ た入力 PDF ページ を、 PDF_fit_pdi_page( ) で直接、 ま たは PDF_ fit_table( ) で表セル内へ間接的に、 あ る いは PDF_fill_pdfblock( ) で PDF ブ ロ ッ ク の内容 と し て、 ページ上に配置 し てお く 必要があ り ます。 blockname (名前文字列) ブ ロ ッ ク の名前。 image ブ ロ ッ ク へ流 し 込みたい画像に対す る 有効な画像ハン ド ル。 -1 にす る と 、 デフ ォ ル ト 画像 (ブ ロ ッ ク のプ ロ パテ ィ で定義 し て あ る ) を使え ます。 optlist イ メ ージブ ロ ッ ク 流 し 込みオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下のオ プシ ョ ンが使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 11.1 に従っ たブ ロ ッ ク 流 し 込み関数のための長方形オプシ ョ ン群 : Rect ・ Status ・ backgroundcolor ・ bordercolor ・ linewidth > 流 し 込みオプシ ョ ン群 (131 ページ 「6.1 オブジ ェ ク ト のはめ込み」 参照) > 表 9.3 に従っ た画像処理のためのオプシ ョ ン群。 > デフ ォ ル ト 内容のためのオプシ ョ ン : defaultimage (PDFlib チ ュ ー ト リ アル参照) 戻り値 指定 し た名前のブ ロ ッ ク がページ上にないか、 ま たはブ ロ ッ ク へ流 し 込めないか、 ま たは ブ ロ ッ ク が誤っ た種別を持っ てい る か、ま たはブ ロ ッ ク が も っ と 新 し い PPS バージ ョ ン を 必要 と す る と き は -1 (PHP では 0)。 ブ ロ ッ ク の処理が成功 し た と き は 1。 問題の性質に 関す る 情報を も っ と 得たい と き は、 PDF_get_errmsg( ) を使い ます。 詳細 与えた画像ハン ド ルが参照す る 画像が、 ブ ロ ッ ク のプ ロ パテ ィ に従っ て、 ブ ロ ッ ク の中に 配置 さ れます。 image を -1 (PHP では 0) にす る と 、 こ の関数は、 ブ ロ ッ ク のデフ ォ ル ト 画像があればそれを使い (Status=ignoredefault でなければ)、 それ以外の場合は警告を出 さ ずに返 り ます。 PDF 文書が破損 し てい る こ と がわか っ た と き は、 こ の関数は errorpolicy オプシ ョ ンに 従っ て、 例外を発生 さ せ る か、 -1 を返 し ます。 PDF/UA すべての ラ ス タ 画像は、 事前の PDF_begin_item( ) への呼び出 し を用いて Artifact か Figure と し て タ グ付け し てお く 必要があ り ます。 ブ ロ ッ ク 装飾、 すなわち、 backgroundcolor ・ bordercolor ・ linewidth プ ロ パテ ィ に従っ て作成 さ れ る 罫線 と 背景色は、 自動的に Artifact と し て タ グ付け さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 11.3 イ メ ージ ブ ロ ッ ク 225 11.4 PDF ブ ロ ッ ク C++ Java C# int fill_pdfblock(int page, String blockname, int contents, String optlist) Perl PHP int fill_pdfblock(int page, string blockname, int contents, string optlist) C int PDF_fill_pdfblock(PDF *p, int page, const char *blockname, int contents, const char *optlist) PDF ブ ロ ッ ク へ、 そのプ ロ パテ ィ に従っ て、 可変デー タ を流 し 込みます。 page PDFlib ブ ロ ッ ク を入れて あ る ページに対する 有効な PDF ページハン ド ル。 こ れ よ り 前に、 ブ ロ ッ ク を持っ た入力 PDF ページ を、 PDF_fit_pdi_page( ) で直接、 ま たは PDF_ fit_table( ) で表セル内へ間接的に、 あ る いは PDF_fill_pdfblock( ) で PDF ブ ロ ッ ク の内容 と し て、 ページ上に配置 し てお く 必要があ り ます。 blockname (名前文字列) ブ ロ ッ ク の名前。 contents ブ ロ ッ ク へ流 し 込みたい PDF ページに対する 有効な PDF ページハン ド ル。 -1 にする と 、 デフ ォ ル ト PDF ページ (ブ ロ ッ ク のプ ロ パテ ィ で定義 し て あ る ) を使え ます。 optlist PDF ブ ロ ッ ク 流 し 込みオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下のオプ シ ョ ンが使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 11.1 に従っ たブ ロ ッ ク 流 し 込み関数のための長方形オプシ ョ ン群 : Rect ・ Status ・ backgroundcolor ・ bordercolor ・ linewidth > 流 し 込みオプシ ョ ン群 (131 ページ 「6.1 オブジ ェ ク ト のはめ込み」 参照) > 表 9.3 に従っ たページ処理のためのオプシ ョ ン群。 > デフ ォ ル ト 内容のためのオプシ ョ ン : defaultpdf ・ defaultpdfpage (PDFlib チ ュ ー ト リ アル参照) 戻り値 指定 し た名前のブ ロ ッ ク がページ上にないか、 ま たはブ ロ ッ ク へ流 し 込めないか、 ま たは ブ ロ ッ ク が誤っ た種別を持っ てい る か、ま たはブ ロ ッ ク が も っ と 新 し い PPS バージ ョ ン を 必要 と す る と き は -1 (PHP では 0)。 ブ ロ ッ ク の処理が成功 し た と き は 1。 問題の性質に 関す る 情報を も っ と 得たい と き は、 PDF_get_errmsg( ) を使い ます。 詳細 与え たページハン ド ル contents が参照す る PDF ページが、 ブ ロ ッ ク のプ ロ パテ ィ に従っ て、 ブ ロ ッ ク の中に配置 さ れます。 contents を -1 (PHP では 0) にす る と 、 こ の関数は、 ブ ロ ッ ク のデフ ォ ル ト PDF ページがあればそれを使い(Status=ignoredefault でなければ)、 それ以外の場合は警告を出 さ ずに返 り ます。 PDF 文書が破損 し てい る こ と がわか っ た と き は、 こ の関数は errorpolicy オプシ ョ ンに 従っ て、 例外を発生 さ せ る か、 -1 を返 し ます。 PDF/UA ブ ロ ッ ク 装飾、 すなわち、 backgroundcolor ・ bordercolor ・ linewidth プ ロ パテ ィ に従っ て 作成 さ れ る 罫線 と 背景色は、 自動的に Artifact と し て タ グ付け さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 226 第 11 章 : ブ ロ ッ ク 流 し 込み関数 (PPS) 11.5 グ ラ フ ィ ッ ク ブ ロ ッ ク C++ Java C# int fill_graphicsblock(int page, String blockname, int contents, String optlist) Perl PHP int fill_graphicsblock(int page, string blockname, int contents, string optlist) C int PDF_fill_graphicsblock(PDF *p, int page, const char *blockname, int contents, const char *optlist) グ ラ フ ィ ッ ク ブ ロ ッ ク へ、 そのプ ロ パテ ィ 群に従っ て、 可変デー タ を流 し 込みます。 page PDFlib ブ ロ ッ ク 群を含むページに対す る 有効な PDF ページハン ド ル。 こ れ よ り 前 に、 ブ ロ ッ ク 群を持っ た入力 PDF ページ を、 PDF_fit_pdi_page( ) で直接、 ま たは PDF_fit_ table( ) で表セル内へ間接的に、 あ る いは PDF_fill_pdfblock( ) で PDF ブ ロ ッ ク の内容 と し て、 ページ上に配置 し てお く 必要があ り ます。 blockname (名前文字列) ブ ロ ッ ク の名前。 graphics ブ ロ ッ ク へ流 し 込みたい グ ラ フ ィ ッ ク に対す る 有効な グ ラ フ ィ ッ ク ハン ド ル、 あ る いはデフ ォ ル ト グ ラ フ ィ ッ ク (ブ ロ ッ ク プ ロ パテ ィ 群に よ っ て定義 さ れてい る 通 り の) を使用 し たい と き は -1。 optlist グ ラ フ ィ ッ ク ブ ロ ッ ク 流 し 込みオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト 。 以下 のオプシ ョ ン を使え ます : > 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > 表 11.1 に従っ た、 ブ ロ ッ ク 流 し 込み関数群に対す る 長方形オプシ ョ ン : Rect ・ Status ・ backgroundcolor ・ bordercolor ・ linewidth > 流 し 込みオプシ ョ ン群 (131 ページ 「6.1 オブジ ェ ク ト のはめ込み」 参照) > 表 9.3 に従っ た、 グ ラ フ ィ ッ ク 処理のためのオプシ ョ ン群 > デフ ォ ル ト 内容のためのオプシ ョ ン : defaultgraphics (PDFlib チ ュ ー ト リ アル参照) 戻り値 指定 し た名前のブ ロ ッ ク がページ上にないか、 ま たはブ ロ ッ ク へ流 し 込めないか、 ま たは ブ ロ ッ ク が誤っ た種別を持っ てい る か、ま たはブ ロ ッ ク が も っ と 新 し い PPS バージ ョ ン を 必要 と す る と き は -1 (PHP では 0)。 ブ ロ ッ ク の処理が成功 し た と き は 1。 問題の性質に 関す る 情報を も っ と 得たい と き は、 PDF_get_errmsg( ) を使い ます。 詳細 与えた グ ラ フ ィ ッ ク ハン ド ルが参照す る グ ラ フ ィ ッ ク が、ブ ロ ッ ク のプ ロ パテ ィ 群に従っ て、 ブ ロ ッ ク の中に配置 さ れます。 graphics を -1 (PHP では 0) にす る と 、 こ の関数は、 ブ ロ ッ ク のデフ ォ ル ト グ ラ フ ィ ッ ク があればそれを使い (Status=ignoredefault でな けれ ば)、 それ以外の場合は警告を出 さ ずに返 り ます。 PDF 文書が破損 し てい る こ と がわか っ た と き は、 こ の関数は errorpolicy オプシ ョ ンに 従っ て、 例外を発生 さ せ る か、 -1 を返 し ます。 PDF/UA ブ ロ ッ ク 装飾、 すなわち、 backgroundcolor ・ bordercolor ・ linewidth プ ロ パテ ィ に従っ て 作成 さ れ る 罫線 と 背景色は、 自動的に Artifact と し て タ グ付け さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 11.5 グ ラ フ ィ ッ ク ブ ロ ッ ク 227 228 第 11 章 : ブ ロ ッ ク 流 し 込み関数 (PPS) 12 イ ン タ ラ ク テ ィ ブ機能 12.1 し お り C++ Java C# int create_bookmark(String text, String optlist) Perl PHP int create_bookmark(string text, string optlist) C int PDF_create_bookmark(PDF *p, const char *text, int len, const char *optlist) し お り を、 さ ま ざ ま なオプシ ョ ンに従っ て作成 し ます。 text (ハ イ パーテ キ ス ト 文字列) し お り に対す る テ キ ス ト 。 len (C 言語バ イ ンデ ィ ン グのみ) text の長 さ (バ イ ト 単位)。 len=0 にする と null 終了文 字列を与え る 必要があ り ます。 optlist し お り のプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ンが使え ま す: > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding ・ hypertextformat (表 2.3 参照 ) > 表 12.1 に従っ た し お り 制御オプシ ョ ン群 : action ・ destination ・ destname ・ fontstyle ・ index ・ item ・ open ・ parent ・ textcolor 戻り値 生成 し た し お り のハン ド ル。 以後の呼び出 し の parent オプシ ョ ンで使え ます。 詳細 こ の関数は、 与え る text を持つ PDF し お り を追加 し ます。 destination オプシ ョ ン を指定 し ない と 、 し お り はカ レ ン ト ページ (文書 ス コ ープの中で使 う と 一番最近に生成 さ れた ページ、 先頭ページ よ り 前に使 う と 先頭ページ) を指 し ます。 し お り を作成す る と 、 PDF_begin/end_document( ) の openmode オプシ ョ ンが、 た と え 他のモー ド を明示的に設定 し て あ っ て も 、 bookmarks に設定 さ れます。 PDF/UA PDF/UA-1 では し お り を作成す る こ と が推奨 さ れます。 スコープ 文書 ・ ページ 表 12.1 PDF_create_bookmark( ) のオプ シ ョ ン オプ シ ョ ン 説明 action (ア ク シ ョ ン リ ス ト ) 以下のイ ベン ト に対する し お り ア ク シ ョ ンの リ ス ト (デ フ ォル ト : destination オプ シ ョ ン で指定 し ている移動先への GoTo ア ク シ ョ ン) : activate し お り がア ク テ ィ ブに さ れた時に実行 さ せたいア ク シ ョ ン。 あ ら ゆる種別のア ク シ ョ ン が使え ます。 destination (オプ シ ョ ン リ ス ト 。 activate ア ク シ ョ ン を指定 し ている と きは無視 さ れます) し お り の移動先を 表 12.10 に従 っ て指定 し たオプ シ ョ ン リ ス ト 。 デ フ ォ ル ト : destination ・ destname ・ action を指定 し ていない と きは {type fitwindow page 0}。 destname (ハイパーテキス ト 文字列。 空で も可。 destination オプ シ ョ ン を指定 し ている と きは無視 さ れま す) PDF_add_nameddest( ) で定義 し てある移動先の名前。 destination ・ destname ア ク シ ョ ンは こ のオプ シ ョ ン よ り も優先 さ れます。 destname を空文字列 (すなわち {}) にする と 、 destination と action のど ち ら も指定 し ていない と きは、 し お り は全 く ア ク シ ョ ン を持ち ません。 こ れは区切 り し お り のために有用で し ょ う 。 12.1 し お り 229 表 12.1 PDF_create_bookmark( ) のオプ シ ョ ン オプ シ ョ ン 説明 fontstyle (キーワー ド ) し お り テキス ト のフ ォ ン ト ス タ イルを指定 し ます : normal ・ bold ・ italic ・ bolditalic。 デ フ ォル ト : normal index (整数) し お り を親の中に挿入 し たい位置の番号。 0 から、 同 じ 階層の し お り の数ま での値を使っ て、 し お り を親の中のその位置に挿入 し ます。 値 -1 を使 う と 、 し お り を カ レ ン ト 階層の末尾に挿 入する こ と がで き ます。 デ フ ォル ト : -1。 ただ し 、 挿入 ・ 再開 し たページについては、 すべての ページ を物理的な順序どお り に生成 し たかのよ う に し お り が配置 さ れます (すなわち、 し お り が ページ順序を反映 し ます)。 item (ア イ テムハン ド ルかキーワー ド 。 こ のハン ド ルは、 ア ク テ ィ ブ な構造エ レ メ ン ト を参照 し ていて はいけませんが、 イ ン ラ イ ン ま たは疑似エ レ メ ン ト を参照 し ていてはいけません。 タ グ付き PDF のみ) こ の し お り に紐付け られる構造ア イ テムに対するハン ド ル。 値 0 はつねに構造ツ リ ールー ト を参照 し ます。 値 1 と 、 こ れに等価なキーワー ド current は、 カ レ ン ト で ア ク テ ィ ブ な エ レ メ ン ト を参照 し ます。 open (論理値) false にする と 、 子 し お り は表示 さ れません。 true にする と 、 すべての子が展開表示 さ れます。 デ フ ォ ル ト : false parent ( し お り ハン ド ル) 新規 し お り が、 ハン ド ルで指定する し お り の子であ る こ と を指定 し ます。 parent=0 にする と 、 新たな最上位階層の し お り が生成 さ れます。 デ フ ォ ル ト : 0 textcolor (色) し お り テキス ト の色を指定 し ます。 使え る色空間 : none ・ gray ・ rgb。 デ フ ォ ル ト : rgb {0 0 0 } (=黒) 230 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 12.2 注釈 C++ Java C# void create_annotation(double llx, double lly, double urx, double ury, String type, String optlist) Perl PHP create_annotation(float llx, float lly, float urx, float ury, string type, string optlist) C void PDF_create_annotation(PDF *p, double llx, double lly, double urx, double ury, const char *type, const char *optlist) 注釈を、 カ レ ン ト ページ上に作成 し ます。 llx ・ lly ・ urx ・ ury 注釈の長方形の左下隅 と 右上隅の x ・ y 座標を、 デフ ォ ル ト 座標で (usercoordinates オプシ ョ ン を false に し た と き )、 ま たはユーザー座標で (true に し た と き ) 指定 し ます。 Acrobat は、 注釈の左上隅を、 指定長方形の左上隅に合わせます。 注釈の座標は、 PDF_rect( ) 関数の引数 と は違 う こ と に注意 し て く だ さ い。 PDF_create_ annotation( ) では引数が 2 個の隅を直接 と る のに対 し 、 PDF_rect( ) では、 1 個の隅の座標 に幅 と 高 さ の値を あわせて指定 し ます。 usematchbox オプシ ョ ン を指定 し てい る と き は、 引数 llx/lly/urx/ury は無視 さ れます。 type 表 12.2 に従っ た注釈種別。 マー ク ア ッ プ注釈は表内で特記 し てい ます。 オプシ ョ ンのなかにはマー ク ア ッ プ注釈にのみ適用 さ れ る も のがあ る か ら です。 表 12.2 注釈種別 種別 説明 : こ の種別に関連する オプ シ ョ ン (一般オプ シ ョ ンに加えて) 3D (PDF 1.6) 3D モデル : 3Dactivate ・ 3Ddata ・ 3Dinteractive ・ 3Dshared ・ 3Dinitialview Caret 1 (PDF 1.5。 こ のキ ャ レ ッ ト 注釈は通常、 そのキ ャ レ ッ ト 注釈を parentname を通 じ て参照 し ている ポ ッ プ ア ッ プ注釈に紐付け ら れています) : rectdiff ・ symbol Circle1 楕円形 : cloudy ・ createrichtext ・ inreplyto ・ interiorcolor ・ replyto FileAttachment1 フ ァ イル添付 : attachment ・ calloutline ・ createrichtext ・ iconname ・ inreplyto ・ replyto FreeText1 テキス ト ボ ッ ク ス : alignment ・ calloutline ・ cloudy ・ createrichtext ・ endingstyles ・ fillcolor ・ font ・ fontsize ・ inreplyto ・ orientate ・ replyto Highlight1 ハイ ラ イ ト : createrichtext ・ inreplyto ・ polylinelist ・ replyto Ink 1 Line 鉛筆 : createrichtext ・ inreplyto ・ polylinelist ・ replyto 1 線 : captionoffset ・ captionposition ・ createrichtext ・ endingstyles ・ interiorcolor ・ inreplyto ・ leaderlength ・ leaderoffset ・ line ・ showcaption ・ replyto Link リ ン ク : destination ・ destname ・ highlight Movie ムービーまたはサウ ン ド 注釈 : attachment ・ movieposter ・ playmode ・ showcontrols ・ soundvolume ・ windowposition ・ windowscale Polygon1 (PDF 1.5) 多角形。 頂点群を直線で結んだ ものです : cloudy ・ createrichtext ・ inreplyto ・ polylinelist ・ replyto PolyLine1 (PDF 1.5) 折れ線。 多角形に似ていますが、 最初 と 最後の頂点が結ばれない こ と が違います : createrichtext ・ endingstyles ・ inreplyto ・ interiorcolor ・ polylinelist ・ replyto Popup ポ ッ プ ア ッ プ : open ・ parentname RichMedia (PDF 1.7ext3) リ ッ チ メ デ ィ ア : richmedia 12.2 注釈 231 表 12.2 注釈種別 種別 説明 : こ の種別に関連する オプ シ ョ ン (一般オプ シ ョ ンに加え て) Square1 長方形 : cloudy ・ createrichtext ・ inreplyto ・ interiorcolor ・ replyto Squiggly 1 波線。 波型下線注釈です : createrichtext ・ inreplyto ・ polylinelist ・ replyto 1 Stamp ス タ ン プ : createrichtext ・ iconname ・ inreplyto ・ orientate ・ replyto StrikeOut Text 1 取 り 消 し 線 : createrichtext ・ inreplyto ・ polylinelist ・ replyto 1 Acrobat では、 こ の種別は ノ ー ト 注釈 と 呼ばれます : createrichtext ・ iconname ・ inreplyto ・ open ・ replyto Underline1 下線 : createrichtext ・ inreplyto ・ polylinelist ・ replyto 1. マー ク ア ッ プ注釈。 これは createrichtext オ プ シ ョ ン で意味を持ち ます。 optlist 注釈のプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン : hypertextencoding (表 2.3 参照 ) > 表 12.3 に従っ た以下の共通オプシ ョ ン群がすべての注釈種別で使え ます : action ・ annotcolor ・ borderstyle ・ cloudy ・ contents ・ createdate ・ custom ・ dasharray ・ datestring ・ display ・ layer ・ linewidth ・ locked ・ lockedcontents ・ name ・ opacity ・ popup ・ readonly ・ rotate ・ subject ・ template ・ title ・ usematchbox ・ usercoordinates ・ zoom > 表 12.3 に従っ た以下の種別特有オプシ ョ ン群が、表 12.2 に従っ た何 ら かの注釈種別で 使え ます : alignment ・ calloutline ・ captionoffset ・ captionposition ・ createrichtext ・ destname ・ endingstyles ・ fillcolor ・ font ・ fontsize ・ highlight ・ iconname ・ inreplyto ・ interiorcolor ・ leaderlength ・ leaderoffset ・ line ・ movieposter ・ open ・ orientate ・ parentname ・ playmode ・ polylinelist ・ rectdiff ・ replyto ・ showcaption ・ showcontrols ・ soundvolume ・ symbol ・ windowposition ・ windowscale > 表 13.4 に従っ た、 type=3D のためのオプシ ョ ン : 3Dactivate ・ 3Ddata ・ 3Dinteractive ・ 3Dshared ・ 3Dinitialview > 表13.4に従っ た、type=RichMedia のための richmedia オプシ ョ ン を、表13.7の関連サブオ プシ ョ ン群 と と も に。 > 表 14.5 に従っ た短縮構造エ レ メ ン ト タ グ付けのためのオプシ ョ ン : tag 詳細 タ グ付き PDF モー ド では、 こ の関数は、 生成 さ れ る 注釈に対 し て然 る べ き OBJR エ レ メ ン ト を自動的に作成 し ます。 ユーザーは、 こ の関数を呼び出す前に、 照応する Link ま たは Annot コ ン テナエ レ メ ン ト (PDFlib チ ュ ー ト リ アル参照) を作成す る 必要があ り ます。 PDF/A PDF/A-1 : 以下の注釈種別のみが許容 さ れます : Circle ・ FreeText ・ Highlight ・ Ink ・ Line ・ Link ・ Popup ・ Square ・ Squiggly ・ Stamp ・ StrikeOut ・ Text ・ Underline PDF/A-2/3 : type=Link のみが許容 さ れます。 い く つかのオプシ ョ ンは制約 さ れてい ます。 表 12.3 を参照 し て く だ さ い。 PDF/X 注釈は、 完全に BleedBox (BleedBox がない と き は TrimBox/ArtBox) の外に置 く 場合のみ 許 さ れます。 PDF/X-1a/3 : 注釈種別 FileAttachment は許容 さ れません。 232 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 PDF/UA こ の関数が、 可視な注釈を作成す る ために呼び出 さ れ る 際には、 PDF_begin_item( ) か tag オプシ ョ ン を用いて非グループ化構造エ レ メ ン ト が作成 さ れ る 必要があ り ます。 可視注釈に対 し ては、オプシ ョ ン contentsかオプシ ョ ン tagにサブオプシ ョ ン ActualText を付けて与え る 必要があ り ます。 スコープ ページ 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 action (ア ク シ ョ ン リ ス ト ) 以下のイ ベン ト に対する注釈ア ク シ ョ ンの リ ス ト (デ フ ォ ル ト : 空 リ ス ト )。 あ ら ゆる種類のア ク シ ョ ンが使え ます : activate (type=Link のみ) その注釈がア ク テ ィ ブに さ れた時に実行 さ せたいア ク シ ョ ン。 close (PDF 1.5) その注釈を含むページが閉 じ られた時に実行 さ せたいア ク シ ョ ン。 open (PDF 1.5) その注釈を含むページが開かれた時に実行 さ せたいア ク シ ョ ン。 invisible (PDF 1.5) その注釈を含むページがも う 見えな く な っ た時に実行 さ せたいア ク シ ョ ン。 visible (PDF 1.5) その注釈を含むページが見えた時に実行 さ せたいア ク シ ョ ン。 alignment (キーワー ド 。 type=FreeText のみ) 注釈の中のテキス ト の整列 : left ・ center ・ right。 デ フ ォ ル ト : left annotcolor (色) 注釈のア イ コ ンが閉 じ ている時の背景 と 、 注釈のポ ッ プ ア ッ プウ ィ ン ド ウの タ イ ト ルバー と 、 リ ン ク注釈の枠の色。 使え る色空間 : none (type=Square ・ Circle では不可) ・ gray ・ rgb ・ (PDF 1.6 で) cmyk。 デ フ ォ ル ト : type=Square ・ Circle にな ら white、 それ以外な ら none PDF/A-1 : このオプ シ ョ ンは、 RGB の出力イ ン テ ン ト を指定 し ている と きのみ使 う こ と がで き、 かつ gray または rgb カ ラ ーを使 う 必要があ り ます。 attachment (アセ ッ ト ハン ド ル。 type=FileAttachment ・ Movie に対 し てのみ可。 必須) PDF_load_asset( ) と type=attachment を用いて読み込まれている フ ァ イル添付。 使え るサブオプ シ ョ ン : 表 13.6 参照。 type=FileAttachment の場合 : その注釈に紐付け られた フ ァ イル type=Movie の場合 : 以下のいずれかの形式の メ デ ィ ア フ ァ イル : AVI ま たは QuickTime ムービー、 WAV または AIFF サウ ン ド 。 なお、 こ の貼付は、 PDF_load_asset( ). で type=Attachment と external=true を用いて読み込まれている必要があ り ます。 borderstyle (キーワー ド ) 注釈の枠か、 ま たは種別 Polygon ・ PolyLine ・ Line ・ Square ・ Circle ・ Ink の注釈 の線のス タ イル : solid ・ beveled ・ dashed ・ inset ・ underline。 ただ し 、 beveled ・ inset ・ underline ス タ イルは Acrobat で正 し く 働き ません。 デ フ ォ ル ト : solid calloutline (float 4 個か 6 個の リ ス ト 。 PDF 1.6。 type=FreeText のみ) テキス ト ボ ッ ク ス注釈に付ける引き出 し 線を指定 し た 4 個か 6 個の float 値。 6 個の数値 {x1 y1 x2 y2 x3 y3} は、 線の開始 ・ 折れ点 ・ 終 了座標を表 し ます。 4 個の数値 {x1 y1 x2 y2} は、 線の開始 ・ 終了座標を表 し ます。 座標は、 デ フ ォ ル ト 座標で (usercoordinates オプ シ ョ ン を false に し た と き)、 またはユーザー座標で (true に し た と き) 解釈 さ れます。 開始点は、 endingstyles オプ シ ョ ンの 1 番目のキーワー ド で指定 し た記号で修飾 さ れます。 captionoffset (float 2 個。 type=Line のみ。 PDF 1.7) キ ャ プ シ ョ ン テキス ト の通常位置からの変位。 1 番目の値 は、 注釈線の中点から の、 線に沿 っ た横変位を指定 し 、 正の値は右への変位を、 負の値は左への 変位を表 し ます。 2 番目の値は、 注釈線に垂直な縦変位を指定 し 、 正の値は上への変位を、 負の値 は下への変位を表 し ます。 デ フ ォ ル ト : {0, 0}、 すなわち通常位置か らの変位な し captionposition (キーワー ド 。 type=Line のみ。 PDF 1.7) 注釈のキ ャ プ シ ョ ン位置。 こ のオプ シ ョ ンは、 showcaption=false にする と 無視 さ れます。 使え るキーワー ド (デ フ ォル ト : Inline) : Inline キ ャ プ シ ョ ンは線の内側で中央揃え さ れます。 Top キ ャ プ シ ョ ンは線の上方に置かれます。 12.2 注釈 233 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 cloudy (float。 type=Circle ・ FreeText ・ Polygon ・ Square のみ。 PDF 1.5) 多角形の変形に用い られる 「雲型」 効果の強度を指定 し ます。 と り う る値は 0 (効果な し ) ・ 1 ・ 2。 このオプ シ ョ ン を用いる と 、 borderstyle オプ シ ョ ンは無視 さ れます。 デ フ ォ ル ト : 0 contents (type=FreeText の場合は文字列、 それ以外の場合は最大長 65535 バイ ト のハイパーテキス ト 文字 列。 PDF/UA-1 : tag オプ シ ョ ン で ActualText が与え られていない と きは必須、 また type=Link の 場合はつねに必須) 注釈で表示 さ せたいテキス ト か、 または (テキス ト を表示 し ない注釈の場合) 注釈の内容の人間が読める形での代替説明。 キ ャ リ ッ ジ リ タ ーン またはラ イ ン フ ィ ー ド キ ャ ラ ク タ を使 う と 、 段落替え を強制する こ と がで き ます。 PDF/A-1a/2a/3a : テキス ト を表示 し ない注釈 では必須です。 createdate (論理値。 PDF 1.5 以上) true にする と 、 注釈に対 し て日付 ・ 時刻項目が作成 さ れます。 デ フ ォ ル ト : マー ク ア ッ プ注釈では true、 そ う でないな ら true createrichtext (オプ シ ョ ン リ ス ト 。 マー ク ア ッ プ註釈のみ。 contents オプ シ ョ ン を空にする必要があ り ます。 PDF 1.5) テキス ト フ ローか ら リ ッ チ テキス ト 内容を作成 し ます。 こ れは、 組版 さ れた テキス ト を 注釈のために生成するのに有用で し ょ う 。 使え るサブオプ シ ョ ン : textflow (テキス ト フ ローハン ド ル) 注釈に リ ッ チ テキス ト と し て付ける テキス ト フ ロー。 こ の テキス ト フ ローの中の色指定は、 グ レースケールまたは RGB カ ラ ーのみを使用 し てい る必要があ り ます。 こ のテキス ト フ ローハン ド ルを、 PDF_create_annotation( ) への呼び 出 し の前に PDF_fit_textflow/table( ) に与えていた場合は、 残 り のテキス ト だけが注釈に 用い られます。 テキス ト がそれ以上得ら れない と きは、 テキス ト フ ローが先頭か ら再開 さ れます。 テキス ト フ ローを注釈に用いて も、 その後の PDF_fit_textflow/table( ) への呼 び出 し には影響を与え ません。 userunit (キーワー ド ) ス カ ラ ー値 (firstlinedist ・ fontsize 等) に対する長 さ 単位 : cm (セ ン チ メ ー ト ル) ・ in (イ ン チ) ・ mm ( ミ リ メ ー ト ル) ・ pt (ポ イ ン ト )。 デ フ ォ ル ト : pt リ ッ チ テキス ト を作成する際には、 以下のテキス ト フ ローオプ シ ョ ン群が効力を持ち、 こ れ以外 はすべて無視 さ れます : nextline ・ alignment ・ fillcolor ・ underline ・ strikeout ・ font ・ fontsize ・ textrise ・ テキス ト 組版オプ シ ョ ン群 注意 : font と alignment を設定 し て も、 Acrobat では期待 し た通 り に動作 し ません。 custom (オプ シ ョ ン リ ス ト の リ ス ト 。 高度なユーザーのみ) このオプ シ ョ ン を使 う と 、 注釈辞書の中に任 意の数のプ ラ イ ベー ト 項目を挿入する こ と がで き ます。 これは、 デジ タ ル出力機のための処理命 令を挿入する な ど、 専門的な応用において有用で し ょ う 。 こ のオプ シ ョ ン を使 う には、 PDF フ ァ イル形式 と 対象応用分野に関する知識が必要です。 使え るサブオプ シ ョ ン : key (文字列。 必須) 辞書キーの名前 (キ ャ ラ ク タ / を除いた もの)。 あ ら ゆる非標準の PDF キーのほか、 以下の標準キー も指定で き ます : Contents ・ Name (iconname オプ シ ョ ン) ・ NM (name オプ シ ョ ン) ・ Open。 それぞれオプ シ ョ ンは こ の場合無視 さ れます。 type (キーワー ド 。 必須) その値の型。 boolean ・ name ・ string のいずれかにする必要があ り ます。 value (type=string に し ている と きはハイパーテキス ト 文字列、 そ う で なければ文字列。 必 須) PDF 出力内に現れる と お り の値。 PDFlib は、 文字列 と 名前に必要な修飾をすべて自 動的に行います。 dasharray (非負 float 2 個の リ ス ト 。 borderstyle=dashed のみ) 破線枠の短線 と 間隙の長 さ を、 デ フ ォ ル ト 単 位で指定 し ます (表 7.1 参照)。 デ フ ォル ト : 3 3 datestring (文字列。 createdate=true を強制 し ます) その注釈に対 し て設定 し たい作成日の PDF 日付文字 列。 こ の日付文字列はその注釈辞書に変更な く 書き込まれます。 無効な日付文字列を与え る こ と はエ ラ ーです。 デ フ ォ ル ト (createdate=true の場合のみ意味を持ち ます) : 現在の日付 destination (オプ シ ョ ン リ ス ト 。 type=Link のみ。 activate ア ク シ ョ ン を指定 し ている と 無視 さ れます) 飛ば し たい移動先を表 12.10 に従っ て定義 し たオプ シ ョ ン リ ス ト 234 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 destname (ハイパーテキス ト 文字列。 type=Link のみ。 destination オプ シ ョ ン を指定 し ている と 無視 さ れ ます) PDF_add_nameddest( ) で定義 し ておいた移動先の名前。 PDF_create_action( ) の destination または destname オプ シ ョ ン で作成 し たア ク シ ョ ンは、 こ のオプ シ ョ ン よ り も優先 さ れます。 display (キーワー ド 。 PDF/A では強制的に visible と な り ます) 画面 と 紙の上での表示 ・ 非表示。 visible ・ hidden ・ noview ・ noprint。 デ フ ォル ト : visible endingstyles (キーワー ド の リ ス ト 。 type=FreeText ・ Line ・ PolyLine のみ) 線端ス タ イルを指定 し たキーワー ド 2 個の リ ス ト 。 type=FreeText の場合は、 2 番目のキーワー ド は無視 さ れます (デ フ ォ ル ト : {none none}) : none ・ square ・ circle ・ diamond ・ openarrow ・ closedarrow こ れに加え て PDF 1.5 では : butt ・ ropenarrow ・ rclosedarrow こ れに加え て PDF 1.6 では : slash filename 非推奨。 attachment を使用 し て く だ さ い fillcolor (色。 type=FreeText のみ) テキス ト の塗 り 色。 使え る色空間 : none ・ gray ・ rgb ・ (PDF 1.6 で) cmyk。 デ フ ォル ト : {gray 0} (=黒) PDF/A-1 : このオプ シ ョ ンは、 RGB 出力イ ン テ ン ト を指定 し ている と きのみ使 う こ と がで き、 か つ gray ま たは rgb カ ラ ーを使 う 必要があ り ます。 font ( フ ォ ン ト ハン ド ル。 type=FreeText のみ。 必須) 注釈で使いたい フ ォ ン ト を指定 し ます。 fontsize (文字サイ ズ。 type=FreeText のみ。 必須) 文字サイ ズを、 usercoordinates オプ シ ョ ン に応 じ て、 デ フ ォル ト かユーザー座標かで指定 し ます。 値 0 またはキーワー ド auto を指定する と 、 Acrobat が文字サイ ズを長方形に合わせて調節 し ます。 highlight (キーワー ド 。 type=Link のみ) ユーザーが注釈を ク リ ッ ク し た時の、 その注釈のハイ ラ イ ト モー ド : none ・ invert ・ outline ・ push。 デ フ ォ ル ト : invert iconname (文字列。 type=Text ・ Stamp ・ FileAttachment のみ) 注釈の表示に使いたいア イ コ ンの名前 (目に 見え る ア イ コ ン を一切持たない注釈を作成するには、 opacity=0 と 設定 し ます) : type=Text の場合 (デ フ ォ ル ト : note) : comment ・ key ・ note ・ help ・ newparagraph ・ paragraph ・ insert type=Stamp の場合 (デ フ ォル ト : draft) : approved ・ experimental ・ notapproved ・ asis ・ expired ・ notforpublicrelease ・ confidential ・ final ・ sold ・ departmental ・ forcomment ・ topsecret ・ draft ・ forpublicrelease type=FileAttachment の場合 (デ フ ォル ト : pushpin) : graph ・ pushpin ・ paperclip ・ tag template オプ シ ョ ン を使 う と カ ス タ ムア イ コ ン を作成する こ と がで き ます。 inreplyto (ハイパーテキス ト 文字列。 PDF 1.5。 マー ク ア ッ プ注釈のみ。 replyto オプ シ ョ ン を与えた と きは 必須) こ の注釈の返信先であ る注釈の名前 (name オプ シ ョ ン参照)。 両方の注釈が文書の同 じ ペー ジ上にあ る必要があ り ます。 2 個の注釈の間の関係を replyto オプ シ ョ ン で指定する必要があ り ま す。 interiorcolor (色。 type=Line ・ PolyLine ・ Square ・ Circle のみ) それぞれ、 注釈の線端 ・ 長方形 ・ 楕円の色。 使え る色空間 : none ・ gray ・ rgb ・ (PDF 1.6 で) cmyk。 デ フ ォル ト : none PDF/A-1 : このオプ シ ョ ンは、 RGB 出力イ ン テ ン ト を指定 し ている と きのみ使 う こ と がで き、 か つ gray ま たは rgb カ ラ ーを使 う 必要があ り ます 12.2 注釈 235 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 layer (レ イ ヤーハン ド ル。 PDF 1.5) 注釈を属 さ せたいレ イ ヤー。 注釈が可視にな るのは、 そのレ イヤー を可視に し ている と き だけにな り ます。 leaderlength (float 1 個か 2 個の リ ス ト 。 2 番目の float は負の値に し てはいけません。 type=Line のみ。 PDF 1.6) 補助線の長 さ を、 デ フ ォ ル ト 座標で (usercoordinates オプ シ ョ ン を false に し た と き)、 ま たはユーザー座標で (true に し た と き) 指定 し ます。 補助線 と は、 線の各終点から、 その線自体 に垂直に引 く 追加の線群です。 こ の長 さ は 2 個の数値で指定 し ます (デ フ ォル ト : {0 0}) : 1 番目の数値は、 線の両端か ら、 その線自体に垂直に引 く 線の長 さ です。 正の値は、 線を始点から 終点 (line オプ シ ョ ン で指定 し ている) へた ど っ た と き に時計回 り であ る向き に補助線を引 く こ と を意味 し 、 負の値はその反対の向き を表 し ます。 2 番目の値は、 省略する こ と も で き、 その線の反対側に引 く 補助線の延長の長 さ を表 し ます。 1 番 目の値を 0 にする と 、 正の値は無視 さ れます。 leaderoffset (非負 float。 type=Line のみ。 PDF 1.7) 補助線のオ フ セ ッ ト の長 さ 、 すなわち、 注釈の端点 と 補助 線の始点 と の間の空隙の幅を、 デ フ ォル ト 座標で (usercoordinates オプ シ ョ ン を false に し た と き)、 ま たはユーザー座標で (true に し た と き) 指定 し ます。 デ フ ォ ル ト : 0 line (線。 type=Line のみ。 必須) 線の始点 と 終点を、 デ フ ォル ト 座標で (usercoordinates オプ シ ョ ン を false に し た と き)、 またはユーザー座標で (true に し た と き) 指定 し た 4 個の数値 x1 ・ y1 ・ x2 ・ y2 の リ ス ト 。 linewidth (整数) 注釈種別 Line ・ PolyLine ・ Polygon ・ Square ・ Circle ・ Ink の注釈の枠または線の幅を、 デ フ ォ ル ト 単位 (=ポ イ ン ト ) で指定 し ます。 linewidth=0 にする と 、 枠は見え な く な り ます。 デ フ ォル ト : 1 locked (論理値) true にする と 、 注釈のプ ロパテ ィ (位置 ・ 寸法等) を Acrobat で編集で き な く な り ま す。 ただ し こ の場合で も、 その内容は変更で き ます。 デ フ ォ ル ト : false lockedcontents (論理値。 PDF 1.7) true にする と 、 注釈の内容を Acrobat で編集で き な く な り ます。 ただ し こ の場 合で も 、 注釈を削除する こ と と 、 注釈のプ ロパテ ィ (位置 ・ 寸法等) を変更する こ と は可能です。 デ フ ォ ル ト : false mimetype 非推奨。 attachment を使用 し て く だ さ い movieposter (キーワー ド 。 type=Movie のみ) ページ上でムービーを代表するポス タ ー画像を指定するキーワー ド 。 使え るキーワー ド : auto (ポス タ ー画像がムービー フ ァ イルか ら抽出 さ れます) ・ none (ポス タ ーが表示 さ れません)。 デ フ ォ ル ト : none name (ハイパーテキス ト 文字列) 注釈を一意に同定する名前。 こ の名前は、 い く つかのア ク シ ョ ン で必 要であ り 、 ページ上で一意で なければな り ません。 デ フ ォル ト : な し opacity (float またはパーセ ン ト 値。 PDF/A-1 では不可) 注釈を描 く 際に使わせたい、 固定 し た不透明度の 値 (0 ~ 1 または 0% ~ 100%)。 デ フ ォ ル ト : 1 open (論理値。 type=Text ・ Popup のみ) true にする と 、 注釈はは じ め開いた状態で表示 さ れます。 デ フ ォル ト : false orientate (キーワー ド 。 type=FreeText ・ Stamp のみ) 注釈を その長方形の中で向けたい向き を指定 し ます。 使え るキーワー ド : north (直立) ・ east (右倒 し ) ・ south (上下逆 さ ま) ・ west (左倒 し )。 デ フ ォル ト : north parentname (文字列。 type=PopUp のみ) こ のポ ッ プ ア ッ プ注釈の親注釈の名前。 こ のオプ シ ョ ンが与え られた 場合には、 親注釈の annotcolor と title は、 こ のポ ッ プ ア ッ プ注釈の照応する値を オーバラ イ ド し ます。 236 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 playmode (キーワー ド 。 type=Movie のみ) ムービーま たはサウ ン ド を再生する モー ド 。 使え るキーワー ド : once (1 回再生 し て停止 し ます) ・ open (再生 し てムービー コ ン ト ロー ラバーを開いた ま まに し ま す) ・ repeat (最初から最後ま で繰 り 返 し 、 停止 さ れる ま で再生 し ます) ・ palindrome (順方向再 生 と 逆再生を連続 し て、 停止 さ れる ま で行います)。 デ フ ォ ル ト : once polylinelist (折れ線か四辺形の リ ス ト 。 type=Polygon ・ PolyLine ・ Ink ・ Highlight ・ Underline ・ Squiggly ・ Strikeout のみ) 座標は、 デ フ ォ ル ト 座標系で (usercoordinates オプ シ ョ ン を false に し た と き)、 またはユーザー座標系で (true に し た と き) 解釈 さ れます。 デ フ ォル ト : 注釈長方形の頂点 群を結んだ折れ線。 type=Polygon ・ PolyLine ・ Ink n 本の線分 (最小 : n=2) に よ る折れ線 1 個の リ ス ト 。 その他 リ ス ト に、 float 値を 8 個ずつ持 っ たサブ リ ス ト を n 個入れて、 n 個 (最小 : n=1) の四 辺形を指定 し ます。 四辺形はそれぞれ、 注釈の対象 と し たいテキス ト の単語、 ない し 連 続する複数の単語を囲みます。 四辺形はジグザグ順 (右上 ・ 左上 ・ 右下 ・ 左下) で与え る必要があ り ます。 popup (文字列) こ の注釈に関連づけたテキス ト の入力や編集のためのポ ッ プ ア ッ プ注釈の名前。 デ フ ォ ルト : なし readonly (論理値) true にする と 、 注釈がユーザーの操作に反応する こ と を許 し ません。 注釈は、 表示 と 印 刷は許 さ れますが、 マウス ク リ ッ ク に反応 し た り 、 マウスの動き に反応 し て表示を変えた り する こ と はで き ません。 デ フ ォル ト : false rectdiff (長方形。 type=Caret の場合のみ) 注釈長方形 と 背後のキ ャ レ ッ ト の境界 と の距離を記述する 4 個 の非負数。 replyto (キーワー ド 。 PDF 1.6。 マー ク ア ッ プ註釈のみ) こ の注釈 と 、 inreplyto オプ シ ョ ン で指定 し た注 釈 と の間の関係 (返信種別) を指定 し ます。 使え るキーワー ド (デ フ ォル ト : reply) : reply 注釈は、 inreplyto で指定 し た注釈に対する返信 と 見な さ れます。 group 注釈は、 inreplyto で指定 し た注釈 と グループ化 さ れる必要があ り ます。 richmedia (オプ シ ョ ン リ ス ト 。 type=RichMedia では必須) 表 13.7 に従 っ た リ ッ チ メ デ ィ アオプ シ ョ ン群 rotate (論理値。 テキス ト 注釈に対 し ては PDF/A では true に設定 し てはいけません) true にする と 、 ページの回転に合わせて注釈を回転 さ せます。 そ う でなければ、 注釈の回転は固定 さ れたま まに な り ます。 このオプ シ ョ ンは、 テキス ト 注釈のア イ コ ン では無視 さ れます。 デ フ ォ ル ト : PDF/A における テキス ト 注釈では false、 それ以外では true showcaption (論理値。 type=Line のみ。 PDF 1.6) true にする と 、 contents または createrichtext オプ シ ョ ン で指定 し た内容が、 線の体裁の中のキ ャ プ シ ョ ン と し て複製 さ れます。 デ フ ォル ト : false showcontrols (論理値。 type=Movie のみ) true にする と 、 ムービーま たはサウ ン ド の再生中に コ ン ト ロー ラ バーが表示 さ れます。 デ フ ォ ル ト : false soundvolume (float。 type=Movie のみ) ムービーを再生する最初の音量を、 -1.0 ~ 1.0 の範囲で指定 し ます。 値を大き く するほど高い音量を示 し ます。 負の値にする と 消音 さ れます。 デ フ ォ ル ト : 1.0 subject (ハイパーテキス ト 文字列。 PDF 1.5) 注釈が述べている主題の簡単な説明を表現 し た テキス ト 。 デ フ ォル ト : な し symbol (キーワー ド 。 type=Caret の場合のみ) キ ャ レ ッ ト 記号の種類 (デ フ ォ ル ト : none) : paragraph 段落記号 none 記号な し 12.2 注釈 237 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 template (オプ シ ョ ン リ ス ト ) 注釈の各ス テー タ スの体裁。 こ れはカ ス タ ムス タ ン プ等で有用で し ょ う 。 使 え るサブオプ シ ョ ン : normal/rollover/down (テ ン プ レー ト ハン ド ルまたはキーワー ド ) 注釈の通常 ・ マウス ロールオーバー ・ マウ スボ タ ン押下時にそれぞれ用い ら れる テ ン プ レー ト 。 キーワー ド viewer は、 Acrobat に 対 し 、 ページ を表示する際に体裁を作成する よ う 指示 し ます。 normal のデ フ ォル ト : viewer。 rollover ・ down のデ フ ォル ト : normal の値 fitmethod (キーワー ド ) テ ン プ レー ト を注釈長方形内にはめ込む方式。 fitmethod を entire 以外 にする と 、 注釈長方形はテ ン プ レー ト 枠に合わせて調節 さ れます (デ フ ォ ル ト : entire) : nofit テ ン プ レー ト を置 く だけです。 拡縮 も切 り 抜き も 行われません。 meet テ ン プ レー ト を position オプ シ ョ ンに従 っ て置き、 長方形内にま る ご と 収 ま る よ う 、 縦横比を保 っ て拡縮 し ます。 一般に、 テ ン プ レー ト の少な く と も 2 つの辺が、 照応する長方形の辺 と 重な る こ と にな り ます。 entire テ ン プ レー ト を position オプ シ ョ ンに従 っ て置き、 かつ、 長方形全体を覆 う よ う に拡縮 し ます。 一般に、 この方式ではテ ン プ レー ト はつぶ さ れます。 position (float かキーワー ド の リ ス ト ) テ ン プ レー ト 内の左下隅を {0 0}、 右上隅を {100 100} と し た と きの、 参照点 (x, y) の位置を指定 し た 1 個か 2 個の値。 こ れら の値は、 テ ン プ レー ト の幅 と 高 さ に対するパーセ ン ト 値 と し て表 し ます。 両方のパーセ ン ト 値が等 し い と きは、 1 個の float 値だけを与えれば充分です。 キーワー ド left ・ center ・ right (x 方向で) ま たは bottom ・ center ・ top (y 方向で) を、 値 0 ・ 50 ・ 100 と 同等な もの と し て用いる こ と がで き ます。 キーワー ド を 1 個だけ 指定する と 、 も う 1 つの方向でそれに照応するキーワー ド が追加 さ れます。 デ フ ォ ル ト : {left bottom}。 title (ハイパーテキス ト 文字列。 ムービー注釈では推奨) 注釈のポ ッ プ ア ッ プウ ィ ン ド ウが開いていて ア ク テ ィ ブ な時に タ イ ト ルバーに表示 さ せたいテキス ト ラ ベル。 こ の文字列は Acrobat の作成者 フ ィ ール ド に対応 し ます。 title の最大長は、 シ ングルバイ ト な ら 255 キ ャ ラ ク タ 、 Unicode な ら 126 キ ャ ラ ク タ です。 ただ し title の実用上の上限 と し ては、 32 キ ャ ラ ク タ を推奨 し ます。 デ フ ォル ト : な し usematchbox (文字列の リ ス ト ) 引数 llx/lly/urx/ury を無視 し て、 かわ り に名前付き範囲枠を用います。 オプ シ ョ ン リ ス ト の中の 1 番目の要素は、 範囲枠を指定する名前文字列です。 2 番目の要素は、 使いた い長方形の番号を指定する整数か、 ま たはキーワー ド all で、 選んでいる範囲枠を参照するすべ ての長方形を指定 し ます。 2 番目の要素を指定 し ない と きは、 デ フ ォ ル ト と し て all にな り ます。 範囲枠自体か、 ま たは指定 し た長方形が、 カ レ ン ト ページに存在 し ない と きは、 関数は注釈を作 成せずに、 警告を出 さ ずに返 り ます。 範囲枠を用いて表セル内に注釈を作成する場合には、 PDF_ fit_table( ) の後に PDF_create_annotation( ) を呼び出す こ と によ っ て、 範囲枠寸法が必ず算出済みに な っ ている よ う にする必要があ り ます。 usercoordinates (論理値) false にする と 、 注釈の座標 と 文字サイ ズはデ フ ォ ル ト 座標系で表 さ れている と 見な さ れます。 そ う で なければ、 カ レ ン ト ユーザー座標系が用い ら れます。 デ フ ォル ト : グ ローバル usercoordinates オプ シ ョ ンの値 windowposition (float 2 個かキーワー ド 2 個の リ ス ト 。 type=Movie のみ) フ ローテ ィ ングムービーウ ィ ン ド ウにつ いて、 画面上における そのウ ィ ン ド ウの相対位置。 2 個の値で、 画面上における フ ローテ ィ ング ウ ィ ン ド ウの位置を示 し ます。 {0 0} が画面の左下隅を、 {100 100} が右上隅を表 し ます。 キー ワー ド left ・ center ・ right (画面横方向で)、 または bottom ・ center ・ top (画面縦方向で) を、 値 0 ・ 50 ・ 100 と 同 じ 意味で使 う こ と も で き ます。 デ フ ォ ル ト : {center center} 238 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.3 PDF_create_annotation( ) のオプ シ ョ ン オプ シ ョ ン 説明 windowscale (float またはキーワー ド 。 type=Movie のみ) フ ローテ ィ ングウ ィ ン ド ウ内でムービーを再生する表 示倍率。 こ のオプ シ ョ ン を指定 し ない と 、 ムービーは注釈長方形内で再生 さ れます。 こ のオプ シ ョ ンの値は、 ムービーの表示倍率か、 または以下のキーワー ド です (デ フ ォル ト : オプ シ ョ ン な し 、 すなわちムービーは注釈長方形内で再生 さ れます)。 fullscreen zoom ムービーは、 得ら れる画面領域を い っ ぱいに使っ て再生 さ れます。 (論理値。 テキス ト 注釈に対 し ては PDF/A では true に設定 し てはいけません) true にする と 、 ページの表示倍率に合わせて注釈を拡縮 さ せます。 そ う で なければ、 注釈のサイ ズは固定 さ れた ま まにな り ます。 このオプ シ ョ ンは、 テキス ト 注釈のア イ コ ン では無視 さ れます。 デ フ ォ ル ト : PDF/A における テキス ト 注釈では false、 それ以外では true 12.2 注釈 239 12.3 フ ォ ーム フ ィ ール ド ク ッ ク ブ ッ ク 完全な コ ー ド サン プルがク ッ ク ブ ッ ク の webserver/starter_webform ト ピ ッ ク にあ り ます。 C++ Java C# void create_field(double llx, double lly, double urx, double ury, String name, String type, String optlist) Perl PHP create_field(float llx, float lly, float urx, float ury, string name, string type, string optlist) C void PDF_create_field(PDF *p, double llx, double lly, double urx, double ury, const char *name, int len, const char *type, const char *optlist) フ ォーム フ ィ ール ド を、カ レ ン ト ページ上に、さ ま ざ ま なオプシ ョ ンに従っ て作成 し ます。 llx ・ lly ・ urx ・ ury フ ィ ール ド の長方形の左下隅 と 右上隅の x ・ y 座標を、 デフ ォ ル ト 座 標で (usercoordinates オプシ ョ ン を false に し た と き )、 ま たはユーザー座標で (true に し た と き ) 指定 し ます。 フ ォ ーム フ ィ ール ド の座標は、 PDF_rect( ) 関数の引数 と は違 う こ と に注意 し て く だ さ い。 PDF_create_field( ) は 2 個の隅に対す る 座標を直接 と る のに対 し 、 PDF_rect( ) では、 1 個の隅の座標に幅 と 高 さ の値を あわせて指定 し ます。 name (ハ イ パーテ キ ス ト 文字列) フ ォ ーム フ ィ ール ド の名前。 場合に よ っ ては、 PDF_ create_fieldgroup( ) で作成 し ておいた 1 個ない し 複数のグループの名前を頭につけ ます。 グループ名ど う し の間 と 、 グループ名 と フ ィ ール ド 名 と の間は、 ピ リ オ ド キ ャ ラ ク タ 「.」 で区切 る 必要があ り ます。 フ ィ ール ド 名は、 ページ上で一意にす る 必要があ り 、 ま た、 ピ リ オ ド キ ャ ラ ク タ 「.」 で終わっ てはいけ ません。 len (C 言語バ イ ンデ ィ ン グのみ) name の長 さ (バ イ ト 単位)。 len=0 にす る と null 終了 文字列を与え る 必要があ り ます。 type フ ィ ール ド の種別を表 12.4 に従っ て指定 し ます。 表 12.4 フ ォ ーム フ ィ ール ド 種別 種別 アイ コン こ の種別に関連するオプ シ ョ ン (一般オプ シ ョ ンに加え て) pushbutton buttonlayout ・ caption ・ captiondown ・ captionrollover ・ charspacing ・ fitmethod ・ icon ・ icondown ・ iconrollover ・ position ・ submitname checkbox currentvalue ・ itemname radiobutton buttonstyle ・ currentvalue ・ itemname ・ toggle ・ unisonselect ラ ジオボ タ ンは、 必ずグループに属 さ せる必要があ るので、 名前の頭にグループ名をつけ る必要があ り ます。 その他のすべての フ ィ ール ド 種別では、 グループ所属は必須ではあ り ません。 listbox charspacing ・ currentvalue ・ itemnamelist ・ itemtextlist ・ multiselect ・ sorted ・ topindex combobox commitonselect ・ charspacing ・ currentvalue ・ editable ・ itemnamelist ・ itemtextlist ・ sorted ・ spellcheck 240 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.4 フ ォ ーム フ ィ ール ド 種別 種別 アイ コン textfield こ の種別に関連する オプ シ ョ ン (一般オプ シ ョ ンに加え て) comb ・ charspacing ・ currentvalue ・ fileselect ・ maxchar ・ multiline ・ password ・ richtext ・ scrollable ・ spellcheck テキス ト フ ィ ール ド はバー コ ー ド に も使われます : barcode signature charspacing ・ lockmode optlist フ ィ ール ド のプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding ・ hypertextformat (表 2.3 参照 ) > 表 12.5 に従っ た、 フ ィ ール ド プ ロ パテ ィ 群のためのオプシ ョ ン。 以下のオプシ ョ ンが すべての フ ィ ール ド 種別で使え ます : action ・ alignment ・ backgroundcolor ・ barcode ・ bordercolor ・ borderstyle ・ calcorder ・ dasharray ・ defaultvalue ・ display ・ exportable ・ fieldtype ・ fillcolor ・ font ・ fontsize ・ highlight ・ layer ・ linewidth ・ locked ・ orientate ・ readonly ・ required ・ strokecolor ・ taborder ・ tooltip ・ usercoordinates > 特定の フ ィ ール ド 種別群で使え る オプシ ョ ン群を表 12.4 に挙げます。 こ れ ら について は表 12.5 で も 詳述 し てい ます。 > (PDF_create_fieldgroup( ) では不可)表 14.5 に従っ た、短縮構造エ レ メ ン ト タ グ付けのた めのオプシ ョ ン : tag 詳細 ページ上の フ ィ ール ド の タ ブ順序 ( タ ブキーが押 さ れた時に フ ォーカ ス を得 る 順序) は、 デフ ォ ル ト では PDF_create_field( ) を呼び出 し た順序で決ま り ますが、 taborder オプシ ョ ン を使っ てそれ以外の順序を指定す る こ と も で き ます。 タ ブ順序は、 フ ィ ール ド を生成 し た後に変え る こ と はで き ません。ただ し こ の動作は、PDF_begin/end_page_ext( ) の taborder オプシ ョ ンでオーバ ラ イ ド す る こ と も で き ます。 Acrobat では、 テ キ ス ト フ ィ ール ド に フ ォーマ ッ ト (数値 ・ パーセ ン ト な ど) を割 り 当 て る こ と も 可能です。 ただ し こ れは PDF 規格には記載 さ れてお ら ず、 カ ス タ ム JavaScript に よ っ て実装 さ れてい ます。 こ れ と 同 じ 効果を得 る には、 フ ィ ール ド に、 Acrobat 内の定 義済みの ( し か し 標準化 さ れていない) JavaScript 関数を参照す る JavaScript ア ク シ ョ ン を 関連づければ よ いで し ょ う (PDFlib チ ュ ー ト リ アル参照)。 タ グ付 き PDF モー ド では、 こ の関数は、 生成 さ れ る フ ォーム フ ィ ール ド に対 し て然 る べ き OBJR エ レ メ ン ト を自動的に作成 し ます。 ユーザーは、 こ の関数を呼び出す前に、 照 応す る Form コ ン テナエ レ メ ン ト (PDFlibチ ュ ー ト リ アル参照)を作成す る 必要があ り ます。 PDF/A こ の関数は呼び出 し てはいけ ません。 PDF/X フ ォーム フ ィ ール ド は、 完全に BleedBox (BleedBox がない と き は TrimBox/ArtBox) の外 に置 く 場合のみ許 さ れます。 PDF/UA こ の関数が呼び出 さ れ る 際には、種別 Form の構造エ レ メ ン ト が、PDF_begin_item( ) か tag オプシ ョ ン を用いて作成 さ れ る 必要があ り ます。 tooltip オプシ ョ ンが必須です。 スコープ ページ 12.3 フ ォ ーム フ ィ ール ド 241 C++ Java C# void create_fieldgroup(String name, String optlist) Perl PHP create_fieldgroup(string name, string optlist) C void PDF_create_fieldgroup(PDF *p, const char *name, int len, const char *optlist) フ ォーム フ ィ ール ド グループを、 さ ま ざ ま なオプシ ョ ンに従っ て作成 し ます。 name (ハ イ パーテ キ ス ト 文字列) フ ォ ーム フ ィ ール ド グループの名前。 さ ら に別の グ ループの名前を頭につけ る こ と も で き ます。フ ィ ール ド グループは任意の深 さ にネ ス ト さ せ る こ と が可能です。 グループ名ど う し は ピ リ オ ド キ ャ ラ ク タ 「.」 で区切 る 必要があ り ます。 グループ名は、 文書内で一意にす る 必要があ り 、 ま た、 ピ リ オ ド キ ャ ラ ク タ 「.」 で 終わっ てはいけ ません。 len (C 言語バ イ ンデ ィ ン グのみ) name の長 さ (バ イ ト 単位)。 len=0 にす る と null 終了 文字列を与え る 必要があ り ます。 optlist 詳細 PDF/A PDF_create_field( ) の フ ィ ール ド オプシ ョ ン群を持っ たオプシ ョ ン リ ス ト 。 フ ィ ール ド グループは、 1 つの フ ィ ール ド の内容を他の 1 個ない し 複数の フ ィ ール ド へ ミ ラ ーす る のに有用です。PDF_create_field( ) で フ ィ ール ド 名を作成す る 際に頭に フ ィ ール ド グループの名前を付け る と 、 その新 し い フ ィ ール ド はそのグループの一部にな り ます。 グ ループに対す る optlist で与えた フ ィ ール ド プ ロ パテ ィ オプシ ョ ンはすべて、 そのグルー プに属す る 全フ ィ ール ド に継承 さ れます。 こ の関数を呼び出 し てはいけ ません。 PDF/UA tooltip オプシ ョ ンが必須です。 type=radiobutton ・ checkbox の場合には ZapfDingbats フ ォ ン ト が必要です。 PDF/UA ではすべて の フ ォ ン ト が埋め込 ま れ る 必要が あ り ま すので、 ZapfDingbats に対す る 埋め込み可能な フ ォ ン ト ア ウ ト ラ イ ン フ ァ イ ルが構成 さ れてい る 必要があ り ます。 スコープ オブ ジ ェ ク ト 以外任意 242 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.5 PDF_create_field( ) ・ PDF_create_fieldgroup( ) に よ る フ ィ ール ド プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 action (ア ク シ ョ ン リ ス ト ) 以下のイ ベン ト のいずれか 1 個ない し 複数に対する フ ィ ール ド ア ク シ ョ ンの リ ス ト 。 activate イ ベン ト はすべてのフ ィ ール ド 種別で使え ますが、 それ以外のイ ベン ト は type=pushbutton ・ checkbox ・ radiobutton では使え ません。 デ フ ォ ル ト : 空 リ ス ト activate フ ィ ール ド がア ク テ ィ ブに さ れた時に実行 さ せたいア ク シ ョ ン。 blur フ ィ ール ド が入力フ ォ ー カ ス を失っ た時に実行 さ せたいア ク シ ョ ン。 calculate 他のフ ィ ール ド の値が変わっ た時に こ のフ ィ ール ド の値を再計算する ために実行 さ せた い JavaScript ア ク シ ョ ン。 close (PDF 1.5) フ ィ ール ド を含むページが閉 じ られた時に実行 さ せたいア ク シ ョ ン。 down マウスボ タ ンが フ ィ ール ド の領域内で押 さ れた時に実行 さ せたいア ク シ ョ ン。 enter マウスが フ ィ ール ド の範囲内に入っ た時に実行 さ せたいア ク シ ョ ン。 exit マウスが フ ィ ール ド の範囲外に出た時に実行 さ せたいア ク シ ョ ン。 focus フ ィ ール ド が入力フ ォ ー カ ス を得た時に実行 さ せたいア ク シ ョ ン。 format フ ィ ール ド がその時点の値を表示する ために フ ォ ーマ ッ ト さ れる前に実行 さ せたい JavaScript ア ク シ ョ ン。 これを使 う と 、 フ ィ ール ド の値を フ ォ ーマ ッ ト さ れる前に変更 する こ と がで き ます。 invisible (PDF 1.5) フ ィ ール ド を含むページがも う 見えな く な っ た時に実行 さ せたいア ク シ ョ ン。 keystroke ユーザーがテキス ト フ ィ ール ド か コ ンボボ ッ ク スにキー入力 し た時か、 ま たはス ク ロー ル可能な リ ス ト ボ ッ ク スの選択を変更 し た時に実行 さ せたい JavaScript ア ク シ ョ ン。 alignment open (PDF 1.5) フ ィ ール ド を含むページが開かれた時に実行 さ せたいア ク シ ョ ン。 up マウスボ タ ンが フ ィ ール ド の領域内で放 さ れた時に実行 さ せたいア ク シ ョ ン ( フ ィ ール ド を ア ク テ ィ ブにする には こ れが通常使われます)。 validate フ ィ ール ド の値が変更 さ れた時に実行 さ せたい JavaScript ア ク シ ョ ン。 こ れを使 う と 、 新 し い値の有効性を検証する こ と がで き ます。 visible (PDF 1.5) フ ィ ール ド を含むページが見えた時に実行 さ せたいア ク シ ョ ン。 (キーワー ド ) フ ィ ール ド 内のテキス ト の整列 : left ・ center ・ right。 デ フ ォ ル ト : left background- (色) フ ィ ール ド の背景か枠の色。 使え る色空間 : none ・ gray ・ rgb ・ cmyk。 デ フ ォル ト : none color bordercolor barcode (オプ シ ョ ン リ ス ト 。 type=textfield のみ。 readonly を暗示。 PDF 1.7ext3) 表 12.6 のオプ シ ョ ン 群に従っ てバー コ ー ド フ ィ ール ド を生成 し ます。 こ の フ ィ ール ド は、 他の フ ィ ール ド 群の内容に 基づいてバー コ ー ド 内容を決定するか固定値を与え る calculate イ ベン ト ス ク リ プ ト を持つ action オプ シ ョ ン を持っ ている必要があ り ます : action={calculate=...}. こ のバー コ ー ド は、 Acrobat でのみ表示 さ れ、 Adobe Reader では表示 さ れません。 Acrobat X は、 1 つのページの最初のフ ィ ール ド がバー コ ー ド フ ィ ール ド だ と ク ラ ッ シ ュ し ます。 こ の問題を回避 するには、 バー コ ー ド フ ィ ール ド を追加する前に別の フ ィ ール ド を作る必要があ り ます。 この最 初のフ ィ ール ド は、 こ のク ラ ッ シ ュ を避けるには、 幅 ・ 高 さ ゼロのダ ミ ーのテキス ト フ ィ ール ド であれば充分です。 borderstyle (キーワー ド ) フ ィ ール ド の枠のス タ イル。 solid ・ beveled ・ dashed ・ inset ・ underline のいずれ か。 デ フ ォル ト : solid buttonlayout (キーワー ド 。 type=pushbutton のみ) ボ タ ンのラ ベルの、 ボ タ ンのア イ コ ンに対する位置を、 両 方 と も指定 し ている と き に限 り 指定 し ます : below ・ above ・ right ・ left ・ overlaid。 デ フ ォ ル ト : right 12.3 フ ォ ーム フ ィ ール ド 243 表 12.5 PDF_create_field( ) ・ PDF_create_fieldgroup( ) によ る フ ィ ール ド プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 buttonstyle (キーワー ド 。 type=radiobutton ・ checkbox のみ) フ ィ ール ド で使いたい記号を指定 し ます : check ・ cross ・ diamond ・ circle ・ star ・ square。 デ フ ォ ル ト : check calcorder (整数。 フ ィ ール ド が calculate イ ベン ト に対する JavaScript ア ク シ ョ ン を持つ と きのみ) フ ィ ール ド の、 他のフ ィ ール ド 群に対する計算順序を指定 し ます。 小 さ い数を持つ フ ィ ール ド は、 大き い 数を持つ フ ィ ール ド よ り 先に計算 さ れます。 デ フ ォル ト : 10 +カ レ ン ト ページ で使われている最 大の calcorder (は じ めは 10) caption (内容文字列。 type=pushbutton のみ。 押 し ボ タ ン では、 caption と icon オプ シ ョ ンのど ち らか一 方を与え る必要があ り ます) ボ タ ンが入力フ ォ ー カ ス を持たない時に表示 さ せたい ラ ベルテキス ト 。 font オプ シ ョ ン で指定 し た フ ォ ン ト で表示 さ れます。 空文字列 (すなわち caption {}) は、 キ ャ プ シ ョ ン も ア イ コ ン も 生み出 し ません。 デ フ ォル ト : な し captiondown (内容文字列。 type=pushbutton のみ) ボ タ ンがア ク テ ィ ブに さ れた時に表示 さ せたい ラ ベルテキ ス ト 。 font オプ シ ョ ン で指定 し た フ ォ ン ト で表示 さ れます。 デ フ ォル ト : な し captionrollover (内容文字列、 type=pushbutton のみ) ボ タ ンが入力フ ォ ー カ ス を持つ時に表示 さ せたい ラ ベルテ キス ト 。 font オプ シ ョ ン で指定 し た フ ォ ン ト で表示 さ れます。 デ フ ォル ト : な し charspacing (float。 type=radiobutton ・ checkbox 以外のみ) フ ィ ール ド 内のテキス ト の字間を、 カ レ ン ト ユー ザー座標系の単位で指定 し ます。 デ フ ォ ル ト : 0 comb (論理値。 type=textfield のみ。 PDF 1.5) true にする と 、 multiline ・ fileselect ・ password オ プ シ ョ ン を false に し ている と きは、 maxchar オプ シ ョ ン に整数値を与え ていれば、 フ ィ ール ド は、 キ ャ ラ ク タ ご と に等間隔に、 多数のサブ フ ィ ール ド に分割 さ れます (maxchar オプ シ ョ ンに 従っ て)。 デ フ ォ ル ト : false commitonselect (論理値。 type=listbox ・ combobox のみ。 PDF 1.5) true にする と 、 リ ス ト の中で選択 さ れた項目 は、 選択後ただ ちに確定 さ れます。 false にする と 、 項目はフ ィ ール ド から 出た時に確定 さ れま す。 デ フ ォル ト : false currentvalue (type=pushbutton ・ signature では不可) フ ィ ール ド の初期値。 型 と デ フ ォ ル ト は、 フ ィ ール ド の 種別に よ っ て異な り ます : checkbox ・ radiobutton (文字列) Off 以外の任意の文字列にする と 、 ボ タ ンはア ク テ ィ ブにな り ます。 文字列 Off にする と 、 ボ タ ンは非ア ク テ ィ ブにな り ます。 こ のオプ シ ョ ンは、 最初のボ タ ン で は設定する必要があ り ます。 デ フ ォ ル ト : Off textfield ・ combobox (内容文字列) フ ィ ール ド の内容。 font オプ シ ョ ン で指定 し た フ ォ ン ト で表示 さ れま す。 デ フ ォル ト : 空 listbox dasharray (整数の リ ス ト ) itemtextlist の中で選択 さ せてお き たい項目群の番号。 デ フ ォ ル ト : なし (非負 float 2 個の リ ス ト 。 borderstyle=dashed のみ) 破線枠の短線 と 間隙の長 さ を、 デ フ ォ ル ト 単 位で指定 し ます (表 7.1 参照)。 デ フ ォル ト : 3 3 defaultvalue ResetForm ア ク シ ョ ン後のフ ィ ール ド の値。 型 と デ フ ォル ト は、 currentvalue オプ シ ョ ン と 同 じ です。 例外 : リ ス ト ボ ッ ク ス では、 1 個の整数値 し か指定で き ません。 display (キーワー ド ) 画面 と 紙の上での表示 ・ 非表示 : visible ・ hidden ・ noview ・ noprint。 デ フ ォル ト : visible editable (論理値。 type=combobox のみ) true にする と 、 枠の中で選択中のテキス ト を編集で き ます。 デ フ ォル ト : false exportable (論理値) フ ィ ール ド は、 SubmitForm ア ク シ ョ ンが起き た時に書き出 さ れます。 デ フ ォル ト : true 244 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.5 PDF_create_field( ) ・ PDF_create_fieldgroup( ) に よ る フ ィ ール ド プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 fieldtype (キーワー ド 。 PDF_create_fieldgroup( ) のみ) グループに入れたい フ ィ ール ド の種別 : mixed ・ pushbutton ・ checkbox ・ radiobutton ・ listbox ・ combobox ・ textfield ・ signature。 fieldtype=mixed に し ない と 、 グループには、 指定種別のフ ィ ール ド し か入れら れな く な り ます。 特定の fieldtype をグループに対 し て指定 し てお く と 、 た と えその中のフ ィ ール ド が別々のページ に置いてあ っ た と し て も、 すべてのフ ィ ール ド にそのカ レ ン ト 値が同時に表示 さ れます。 fieldtype=radiobutton に し た と きは、 unisonselect オプ シ ョ ン を指定する必要があ り ます。 itemtextlist ・ itemnamelist ・ currentvalue ・ defaultvalue オプ シ ョ ンは、 PDF_create_ fieldgroup( ) のオプ シ ョ ン で指定する必要があ り 、 PDF_create_field( ) のオプ シ ョ ン で指定 し てはい けません。 デ フ ォル ト : mixed fileselect (論理値。 type=textfield のみ) true にする と 、 フ ィ ール ド の中のテキス ト は、 フ ァ イル名 と し て扱われます。 デ フ ォ ル ト : false fillcolor (色) テキス ト の塗 り 色。 使え る色空間 : gray ・ rgb ・ cmyk。 デ フ ォル ト : {gray 0} (=黒) fitmethod (キーワー ド 。 type=pushbutton のみ) icon ・ icondown ・ iconrollover オプ シ ョ ン で与えている テ ン プ レー ト を、 ボ タ ンの中に配置 さ せたい方式。 と り う るキーワー ド (デ フ ォル ト : meet) : font auto テ ン プ レー ト がボ タ ン に収ま り き る と きは meet と 同 じ 、 そ う で なければ clip nofit clip と 同 じ clip テ ン プ レー ト を拡縮せずに、 フ ィ ール ド の端で切 り 落 と し ます meet テ ン プ レー ト を、 縦横比を保ちつつ、 ボ タ ンに収ま る よ う 拡縮 し ます slice meet と 同 じ entire テ ン プ レー ト を、 ボ タ ン全体を覆 う よ う に拡縮 し ます ( フ ォ ン ト ハン ド ル) フ ィ ール ド で使いたい フ ォ ン ト 。 Acrobat はキ ャ ラ ク タ を、 それがその フ ォ ン ト のエ ン コ ーデ ィ ングに含まれていな く て も 表示する こ と がで き ます。 た と えば、 encoding=winansi を使 っ てお き なが ら winansi 外の Unicode キ ャ ラ ク タ を与え る こ と が可能です。 フ ォ ン ト の用途はフ ィ ール ド 用法に よ っ て異な り ます : > type=listbox ・ combobox ・ textfield のいずれかによ る フ ィ ール ド : こ のオプ シ ョ ンは必須です。 > type=pushbutton の場合には、 caption ・ captionrollover ・ captiondown オプ シ ョ ンの う ちのいず れかが指定 さ れて指定 さ れている な らば、 このオプ シ ョ ンは必須です。 > type=radiobutton ・ checkbox のいずれかに よ る フ ィ ール ド は常に ZapfDingbats を使用 し ます。 fontsize (文字サイ ズ) 文字サイ ズを、 ユーザー座標で指定 し ます。 値 0 またはキーワー ド auto を与え る と 、 Acrobat が文字サイ ズを長方形に合わせて調整 し ます。 デ フ ォル ト : auto highlight (キーワー ド ) ユーザーが フ ィ ール ド を ク リ ッ ク し た時の、 そのハイ ラ イ ト モー ド : none ・ invert ・ outline ・ push。 デ フ ォル ト : invert icon (テ ン プ レー ト ハン ド ル1。 type=pushbutton のみ。 押 し ボ タ ン では、 caption と icon オプ シ ョ ンの ど ち らか一方を与え る必要があ り ます) ボ タ ンが入力 フ ォ ー カ ス を持たない時に表示 さ れたいテ ン プ レー ト のハン ド ル。 デ フ ォル ト : な し icondown (テ ン プ レー ト ハン ド ル 1。 type=pushbutton のみ) ボ タ ンがア ク テ ィ ブに さ れた時に表示 さ せたい テ ン プ レー ト のハン ド ル。 デ フ ォ ル ト : な し iconrollover (テ ン プ レー ト ハン ド ル 1。 type=pushbutton のみ) ボ タ ンが入力 フ ォ ー カ ス を持つ時に表示 さ せた いテ ン プ レー ト のハン ド ル。 デ フ ォ ル ト : な し itemname (ハイパーテキス ト 文字列。 type=radiobutton ・ checkbox のみ。 書き出 し 値が Latin 1 文字列でな い と き には用いる必要があ り ます) フ ィ ール ド の書き出 し 値。 グループ内の複数のラ ジオボ タ ン の項目名は同一にする こ と がで き ます。 デ フ ォ ル ト : フ ィ ール ド 名 itemnamelist (ハイパーテキス ト 文字列。 type=listbox ・ combobox のみ) リ ス ト 項目群の書き出 し 値。 複数の項 目が同 じ 書き出 し 値を持つ こ と がで き ます。 デ フ ォル ト : な し 12.3 フ ォ ーム フ ィ ール ド 245 表 12.5 PDF_create_field( ) ・ PDF_create_fieldgroup( ) によ る フ ィ ール ド プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 itemtextlist (内容文字列の リ ス ト 。 type=listbox ・ combobox のみ。 その場合は必須) リ ス ト のすべての項目の テキス ト 内容。 itemnamelist と itemtextlist を両方指定する と きは、 両方の文字列の数を同 じ に する必要があ り ます。 layer (レ イ ヤーハン ド ル。 PDF 1.5) フ ィ ール ド を属 さ せたいレ イ ヤー。 フ ィ ール ド が可視にな るのは、 そのレ イ ヤーが可視の と き だけにな り ます。 linewidth (整数) フ ィ ール ド の枠の線幅を、 デ フ ォル ト 座標で指定 し ます。 デ フ ォル ト : 1 locked (論理値) true にする と 、 フ ィ ール ド のプ ロパテ ィ を Acrobat で編集で き な く な り ます。 デ フ ォ ル ト : false lockmode (キーワー ド 。 type=signature のみ。 PDF 1.5) フ ィ ール ド が署名 さ れた時にロ ッ ク さ せたい フ ィ ール ド 群を示 し ます : all 文書のすべての フ ィ ール ド がロ ッ ク さ れます。 maxchar (整数ま たはキーワー ド 。 type=textfield のみ) フ ィ ール ド の中のテキス ト のキ ャ ラ ク タ 数の上限 か、 または制限な し に し たい と きはキーワー ド unlimited。 デ フ ォル ト : unlimited multiline (論理値。 type=textfield のみ) true にする と 、 テキス ト は必要に応 じ て折 り 返 さ れて複数行に な り ます。 デ フ ォル ト : false multiselect (論理値。 type=listbox のみ) true にする と 、 リ ス ト で複数の項目が選択で き る よ う にな り ます。 デ フ ォ ル ト : false orientate (キーワー ド ) フ ィ ール ド の中での内容の向き : north ・ west ・ south ・ east。 デ フ ォル ト : north password (論理値。 type=textfield のみ) true にする と 、 テキス ト が入力時に ビ ュ レ ッ ト かア ス タ リ ス ク で表 さ れます。 デ フ ォ ル ト : false position (float かキーワー ド の リ ス ト 。 type=pushbutton のみ) icon… オプ シ ョ ン群で与えている テ ン プ レー ト の、 フ ィ ール ド 長方形内における相対位置を指定する 1 個か 2 個の値。 {0 0} はフ ィ ール ド の左下隅で、 {100 100} は右上隅です。 値は、 フ ィ ール ド 長方形の幅 と 高 さ に対するパーセ ン ト 値 で指定 し ます。 両方のパーセ ン ト 値が等 し い と きは、 1 個の float 値を指定する だけで充分です。 キーワー ド left ・ center ・ right (x 方向で)、 ま たは bottom ・ center ・ top (y 方向で) を、 値 0 ・ 50 ・ 100 と 同 じ 意味で使 う こ と も で き ます。 1 個のキーワー ド だけ を指定 し た と きは、 他方の 方向についてはそれに照応するキーワー ド が追加 さ れます。 デ フ ォ ル ト : {center}。 例 : {0 50} または {left center} テ ン プ レー ト を左揃え {50 50} または {center} テ ン プ レー ト を中央揃え {100 50} ま たは {right center}テ ン プ レー ト を右揃え readonly2 (論理値) true にする と 、 フ ィ ール ド に何 も入力で き な く な り ます。 デ フ ォ ル ト ; false required (論理値) true にする と 、 フ ィ ール ド は、 フ ォ ームが送信 さ れる時に値を持つ必要があ り ます。 デ フ ォル ト : false richtext (論理値。 type=textfield のみ。 PDF 1.5) リ ッ チ テキス ト 組版を可能に し ます。 true にする と き は、 fontsize は 0 に し てはな ら ず、 fillcolor は色空間 cmyk を用いてはいけません。 デ フ ォル ト : false scrollable (論理値。 type=textfield のみ) true にする と 、 テキス ト がフ ィ ール ド に収ま り き ら ない と きは、 テキス ト はフ ィ ール ド の外の見えない領域へ移行 し ます。 false にする と 、 テキス ト がフ ィ ール ド を満た し た と きは、 も う 入力を受け付けな く な り ます。 デ フ ォル ト : true 246 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.5 PDF_create_field( ) ・ PDF_create_fieldgroup( ) に よ る フ ィ ール ド プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 sorted (論理値。 type=listbox ・ combobox のみ) true にする と 、 リ ス ト の内容が ソ ー ト さ れます。 デ フ ォ ル ト : false spellcheck (論理値。 type=textfield ・ combobox のみ) true にする と 、 フ ィ ール ド の中でスペルチ ェ ッ ク 機 能がア ク テ ィ ブにな り ます。 デ フ ォ ル ト : true strokecolor (色) テキス ト の描線色。 使え る色空間 : gray ・ rgb ・ cmyk。 デ フ ォル ト : {gray 0} (=黒)。 submitname (ハイパーテキス ト 文字列。 type=pushbutton の場合にのみ推奨) フ ォ ームを送信 さ せたい イ ン タ ーネ ッ ト ア ド レ スの URL エ ン コ ー ド 済み文字列。 デ フ ォ ル ト : な し taborder (整数) フ ィ ール ド の、 他のフ ィ ール ド 群に対する タ ブ順序を指定 し ます。 小 さ い数を持つ フ ィ ー ル ド は、 大き い数を持つ フ ィ ール ド よ り 先に フ ォ ー カ ス さ れます。 デ フ ォ ル ト : 10 +カ レ ン ト ページ で使われている最大の taborder (ページの最初のフ ィ ール ド では 10)。 こ のデ フ ォ ル ト で は結果 と し て、 作成順序がそのま ま タ ブ順序にな り ます。 toggle (論理値。 PDF_create_fieldgroup( ) で type=radiobutton のみ) true にする と 、 グループのラ ジオボ タ ン を ク リ ッ ク し てア ク テ ィ ブにする こ と も、 非ア ク テ ィ ブにする こ と も で き ます。 false にする と 、 ク リ ッ ク し て ア ク テ ィ ブにする こ と し かで きず、 非ア ク テ ィ ブにする にはほかのボ タ ン を ク リ ッ ク する必要があ り ます。 デ フ ォ ル ト : false tooltip2 (ハイパーテキス ト 文字列。 PDF/UA-1 では空でない文字列が必須) フ ィ ール ド のツール ヒ ン ト に 表示 さ せたいテキス ト 。 ス ク リ ーン リ ーダによ っ て も 使用 さ れます。 ラ ジオボ タ ン と グループ で は、 Acrobat はグループの最初のボ タ ンのツール ヒ ン ト を使っ て、 他は無視 さ れます。 デ フ ォル ト : なし topindex (整数。 type=listbox のみ) 先頭に表示 さ せたい項目の番号。 最初の項目の番号は 0 です。 デ フ ォ ルト : 0 unisonselect (論理値。 PDF_create_fieldgroup( ) で type=radiobutton かつ PDF 1.5 のみ) true にする と 、 同 じ フ ィ ール ド 名か項目名を持つ ラ ジオボ タ ン群が、 同時に選択 さ れます。 デ フ ォル ト : false usercoordinates (論理値) false にする と 、 フ ィ ール ド の座標はデ フ ォ ル ト 座標系で表 さ れている と 見な さ れます。 そ う でなければ、 カ レ ン ト ユーザー座標系が使われます。 デ フ ォル ト : usercoordinates グ ローバ ルオプ シ ョ ンの値 1. ア イ コ ンのテ ン プ レ ー ト は、 PDF_begin_template( ) 関数で作成する こ と がで き ます。 ア イ コ ンが画像だけで で き ている と き は、 PDF_load_image( ) に template オプ シ ョ ン を与えて テ ン プ レー ト を作成する こ と も で き ます。 2. type=radiobutton に し ている と きは、 こ のオプ シ ョ ンは PDF_create_field( ) では使えず、 PDF_create_fieldgroup( ) でのみ使え ます。 12.3 フ ォ ーム フ ィ ール ド 247 表 12.6 PDF_create_field( ) ・ PDF_create_fieldgroup( ) の barcode オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 caption (ハイパーテキス ト 文字列) バー コ ー ド の下に表示 さ れるキ ャ プ シ ョ ン。 デ フ ォル ト では、 Acrobat はその文書の file: URL をキ ャ プ シ ョ ン と し て生成 し ます。 dataprep (整数) デー タ の生成方式。 使え る値 (デ フ ォ ル ト : 0) : 0 バー コ ー ド 内のデー タ を エ ン コ ー ド する前に何の圧縮 も適用 し ません。 1 デー タ を エ ン コ ー ド する前にデー タ を Flate 圧縮アルゴ リ ズムで圧縮 し ます。 ecc (整数。 symbology=PDF417 ・ QRCode の場合は必須) 誤 り 訂正係数。 値が大き いほど、 冗長性を通 じ た、 よ り 良い誤 り 訂正が生成 さ れますが、 よ り 大き なバー コ ー ド が必要 と な り ます。 symbology=PDF417 の場合、 こ の値は範囲 0 ~ 8 内で なければな り ません。 symbology=QRCode の場 合、 こ の値は範囲 0 ~ 3 内で なければな り ません。 resolution (正の整数) バー コ ー ド が表示 さ れる解像度を dpi 単位で (デ フ ォル ト : 300) symbology (キーワー ド 。 必須) 使いたいバー コ ー ド 技術 : PDF417 ISO 15438 に従 っ た PDF417 バー コ ー ド QRCode ISO 18004 に従 っ た QR コ ー ド 2005 バー コ ー ド DataMatrixISO 16022 に従 っ たデー タ マ ト リ ッ ク スバー コ ー ド xsymheight (整数。 symbology=PDF417 の場合のみ。 かつその場合は必須) 2 個のバー コ ー ド モ ジ ュ ール間の縦 間隔を ピ ク セル単位で。 比 xsymheight/xsymwidth が整数値である必要があ り ます。 この比に許 さ れる範囲は 1 ~ 4 です。 xsymwidth (整数。 必須) 2 個のバー コ ー ド モ ジ ュ ール間の横間隔を ピ ク セル単位で 248 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 12.4 ア ク シ ョ ン C++ Java C# int create_action(String type, String optlist) Perl PHP int create_action(string type, string optlist) C int PDF_create_action(PDF *p, const char *type, const char *optlist) ア ク シ ョ ン を作成 し ます。 ア ク シ ョ ンは、 さ ま ざ ま なオブジ ェ ク ト や イ ベン ト に適用す る こ と がで き ます。 type 表 12.7 に従っ た ア ク シ ョ ン種別。 表 12.7 ア ク シ ョ ン種別 種別 説明 : こ の種別に関連する オプ シ ョ ン (一般オプ シ ョ ンに加えて) GoTo カ レ ン ト 文書の中の移動先へ行き ます : destination ・ destname GoTo3DView (PDF 1.6) 3D アニ メ ーシ ョ ンのカ レ ン ト ビ ュ ーを設定 し ます : 3Dview ・ target GoToE (PDF 1.6) 埋め込まれた文書の中の移動先へ行き ます : targetpath GoToR 別の ( リ モー ト ) 文書の中の移動先へ行き ます : destination ・ destname ・ filename ・ newwindow Hide (PDF/A では不可) 注釈または フ ォ ーム フ ィ ール ド を、 隠すか、 または表示 さ せます : hide ・ namelist ImportData (PDF/A では不可) フ ォ ーム フ ィ ール ド 群の値を フ ァ イルから 取 り 込みます。 JavaScript (PDF/A では不可) JavaScript コ ー ド によ る ス ク リ プ ト を実行 し ます : script ・ scriptname Launch (PDF/A では不可) ア プ リ ケーシ ョ ン または文書を起動 し ます : defaultdir ・ filename ・ newwindow ・ operation ・ parameters Movie (PDF/A では不可) 外部のサウ ン ド フ ァ イルかムービー フ ァ イルを、 フ ローテ ィ ン グウ ィ ン ド ウ内 で、 ま たはムービー注釈の長方形内で再生 し ます : operation ・ target Named Acrobat の メ ニ ュ ー項目を、 その名前で同定 し て実行 し ます : menuname ResetForm (PDF/A では不可) 文書内のフ ィ ール ド をい く つか、 ない し すべて、 デ フ ォ ル ト 値に設定 し ます。 SetOCGState (PDF 1.5) レ イ ヤーを隠すか、 または表示 さ せます : layerstate ・ preserveradio SubmitForm デー タ を URL (uniform resource locator) へ、 すなわち イ ン タ ーネ ッ ト のア ド レ スへ送信 し ます (ただ し 、 ベーシ ッ ク認証を要する送信は Acrobat では動作 し ません) : canonicaldate ・ exclude ・ exportmethod ・ submitemptyfields ・ url Trans (PDF 1.5) 表示を何 らかの視覚効果を使 っ て更新 し ます。 こ れは、 連続する複数のア ク シ ョ ンの最 中に表示を制御する ために有用で し ょ う : duration ・ transition URI URI (uniform resource identifier) を解決 し ます。 すなわち、 イ ン タ ーネ ッ ト のア ド レ スへ飛びま す : ismap ・ url optlist ア ク シ ョ ンの特性群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照 ) > 表 12.8 に従っ た、以下の種別独自オプシ ョ ン を、表 12.7 に従っ た独自ア ク シ ョ ン種別に 対 し て使え ます : 3Dview ・ richmediaargs ・ canonicaldate ・ defaultdir ・ destination ・ destname ・ duration ・ exclude ・ exportmethod ・ filename ・ functionname ・ hide ・ instance ・ ismap ・ layerstate ・ 12.4 ア ク シ ョ ン 249 menuname ・ namelist ・ newwindow ・ operation ・ parameters ・ preserveradio ・ script ・ scriptname ・ submitemptyfields ・ target ・ targetpath ・ transition ・ url 戻り値 ア ク シ ョ ンハン ド ル。 文書の中のオブジ ェ ク ト にア ク シ ョ ン を関連づけ る のに使え ます。 ア ク シ ョ ンハン ド ルは、 カ レ ン ト の文書ス コ ープを終え る ま で使え ます。 詳細 こ の関数は、 ただ 1 つのア ク シ ョ ン を作成 し ます。 さ ま ざ ま なオブジ ェ ク ト には (ペー ジ、 フ ォーム フ ィ ール ド の イ ベン ト 、 し お り 等) 、 複数のア ク シ ョ ン も 与え る こ と がで き ますが、 ア ク シ ョ ンは 1 つずつ、 個々に PDF_create_action( ) を呼び出 し て生成す る 必要 があ り ます。 1 つのア ク シ ョ ン を、 複数のオブジ ェ ク ト に使 う こ と も 可能です。 同 じ オプ シ ョ ン群を持っ た ア ク シ ョ ン を それま でにすでに作成 し てい る 場合は、既存のハン ド ルを 再利用す る こ と を推奨 し ます。 PDF/A 以下のア ク シ ョ ン種別のみが許容 さ れます : GoTo ・ GoToE ・ GoToR ・ Named ・ RichMediaExecute ・ SubmitForm ・ URI PDF/X こ の関数を呼び出 し てはいけ ません。 PDF/UA ismap=true オプシ ョ ンは許容 さ れません。 スコープ オブ ジ ェ ク ト 以外任意。 返 さ れたハン ド ルは、 次に PDF_end_document( ) を呼び出すま で 使え ます。 表 12.8 PDF_create_action( ) のア ク シ ョ ン プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 3Dview (キーワー ド ま たは 3D ビ ュ ーハン ド ル。 GoTo3DView。 必須) 3D 注釈のビ ュ ーを選びます。 キー ワー ド first ・ last ・ next ・ previous (注釈の views オプ シ ョ ンの中の各項目を参照する) ・ default (注釈の defaultview オプ シ ョ ン を参照する) のいずれか、 または PDF_create_3dview( ) で 作成 し た 3D ビ ュ ーハン ド ル。 canonicaldate (論理値。 SubmitForm) true にする と 、 日付を表す フ ィ ール ド の送信 さ れる値は、 すべて標準形式 に変換 さ れます。 フ ィ ール ド を日付 と し て解釈する こ と は、 フ ィ ール ド 自体の中ではな く 、 それ を処理する JavaScript コ ー ド の中でだけ明示的に指定する こ と がで き ます。 デ フ ォ ル ト : false defaultdir (文字列。 Launch) 起動する ア プ リ ケーシ ョ ンのためのデ フ ォル ト デ ィ レ ク ト リ を設定 し ます。 こ れは、 Windows 版の Acrobat でだけ使え ます。 デ フ ォ ル ト : な し destination (オプ シ ョ ン リ ス ト 。 GoTo ・ GoToE ・ GoToR。 destname を与えていない と きは必須) 飛ば し たい移動 先を表 12.10 に従 っ て指定 し たオプ シ ョ ン リ ス ト 。 destname (ハイパーテキス ト 文字列) GoTo (destination を与えていない と きは必須) : PDF_add_ nameddest( ) で定義 し ておいた移動先の名前。 こ の移動先は、 それを参照する前に作る こ と も、 後 に作る こ と も で き ます。 GoToR ・ GoToE (destination を与えていない と きは必須) : 別の文書の、 ま たは埋め込まれている 文書の中の移動先の名前。 duration 250 (float。 Trans) カ レ ン ト ページの表示遷移効果の継続時間を秒単位で設定 し ます. デ フ ォル ト : 1 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.8 PDF_create_action( ) のア ク シ ョ ン プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 exclude (論理値) SubmitForm : true にする と 、 namelist オプ シ ョ ンは、 どのフ ィ ール ド を除外 し たいか を指定 し ます。 文書の中のフ ィ ール ド は、 namelist 配列に挙げてあ る もの と 、 exportable オプ シ ョ ン を false に し てある も の以外がすべて送信 さ れます。 false にする と 、 namelist オプ シ ョ ンは、 どのフ ィ ール ド を送信に含めたいかを指定 し ます。 フ ィ ール ド グループ を指定 し ている と きは、 その メ ンバー も すべて送信 さ れます。 デ フ ォル ト : false ResetForm : true にする と 、 namelist オプ シ ョ ンは、 どのフ ィ ール ド を除外 し たいかを指定 し ま す。 文書内のフ ィ ール ド は、 namelist 配列に挙げてあ る もの以外がすべて リ セ ッ ト さ れます。 false にする と 、 namelist オプ シ ョ ンは、 どのフ ィ ール ド を リ セ ッ ト に含めたいかを指定 し ます。 フ ィ ール ド グループ を指定 し ている と きは、 その メ ンバー も すべて リ セ ッ ト さ れます。 デ フ ォ ル ト : false exportmethod (キーワー ド の リ ス ト 。 SubmitForm) フ ィ ール ド の名前 と 値の送信方法を制御 し ます。 デ フ ォ ル ト : fdf。 html ・ fdf ・ xfdf ・ pdf それぞれ、 HTML ・ FDF ・ XFDF ・ PDF 形式で annotfields(fdf のみ) 注釈 と フ ィ ール ド をすべて含めます。 coordinate (html のみ) submitform ア ク シ ョ ン を引き起 こ し たマウス ク リ ッ クの座標を、 フ ォ ーム デー タ に含めて送信 し ます。 座標の値は、 フ ィ ール ド の長方形の左上隅から 測っ た もの です。 exclurl (fdf のみ) 送信する FDF か ら url 文字列を除外 し ます。 getrequest (html ・ pdf のみ) HTTP GET を使っ て送信。 指定 し ない と HTTP POST onlyuser (fdf ・ annotfields のみ) リ モー ト サーバによ っ て決定 さ れる カ レ ン ト ユーザー名に一 致する名前の注釈だけを送信に含めます。 updates (fdf のみ) その PDF 文書に入っ ている増分ア ッ プデー ト をすべて含めます オプ シ ョ ンの組み合わせ例 : exportmethod {fdf updates onlyuser} filename (ハイパーテキス ト 文字列) GoToR ・ Launch (必須) : ア ク シ ョ ンが ト リ ガ さ れた時に開かれる、 外 部 (PDF で も それ以外で も) フ ァ イルまたはア プ リ ケーシ ョ ンの名前。 UNC フ ァ イル名は、 \\server\volume と 書 く 必要があ り ます。 ImportData (必須) : フ ォ ームデー タ の入 っ ている外部フ ァ イルの名前。 GoToE : 移動先のルー ト 文書の名前を、 移動元のルー ト 文書から相対的に指定 し ます。 こ の項目を 与え ない と きは、 移動元 と 移動先は同 じ ルー ト 文書を共有 し ます。 functionname (ハイパーテキス ト 文字列。 RichMediaExecute。 必須) そのス ク リ プ ト コ マ ン ド を プ リ ミ テ ィ ブ ActionScript または JavaScript 関数名 ( フルス ク リ プ ト ではな く ) と し て指定 し た文字列。 instance オプ シ ョ ンに よ っ て指定 さ れた タ ーゲ ッ ト イ ン ス タ ン スが Flash 内容を含んでいる場合に は、 この コ マ ン ド 文字列は、 その タ ーゲ ッ ト イ ン ス タ ン スに独自のス ク リ プ ト エ ン ジ ン コ ン テキ ス ト への ActionScript ExternalInterface 呼び出 し を表 し ます。 その タ ーゲ ッ ト イ ン ス タ ン スが 3D モデルである場合には、 この呼び出 し は、 3D JavaScript エ ン ジ ンのその注釈のイ ン ス タ ン スのグ ローバル コ ン テキス ト 内で行われます。 hide (論理値。 Hide) 注釈を隠すか (true)、 それ と も 表示するか (false) を指定 し ます。 デ フ ォ ル ト : true instance (整数。 RichMediaExecute) その RichMedia 注釈の、 そのス ク リ プ ト を実行する対象 と し たい Flash または 3D イ ン ス タ ン ス を指定する、 PDF_create_annotation( ) の richmedia オプ シ ョ ンの configuration サブオプ シ ョ ンの instances サブオプ シ ョ ン内のオプ シ ョ ン リ ス ト の番号(1 か ら始 ま る)。 ismap (論理値。 URI。 PDF/UA-1 では true は不可) true にする と 、 url が解決 さ れた時に、 マウス位置 の座標が移動先 URI に追加 さ れます。 デ フ ォ ル ト : false 12.4 ア ク シ ョ ン 251 表 12.8 PDF_create_action( ) のア ク シ ョ ン プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 layerstate (オプ シ ョ ン リ ス ト 。 SetOCGState。 必須) キーワー ド と レ イ ヤーハン ド ルか ら成るペアの リ ス ト 。 使え るキーワー ド : on レ イヤーを表示 し ます off レ イヤーを隠 し ます toggle レ イヤーのス テー タ ス を反転 さ せます。 こ れを使 う と きは、 preserveradio オプ シ ョ ン を false に設定 し ている必要があ り ます。 menuname (文字列。 Named。 必須) 実行 し たい メ ニ ュ ー項目の名前。 PDF/A では、 nextpage ・ prevpage ・ firstpage ・ lastpage だけが許 さ れます。 それ以外の場合は、 他の名前 も受け付けます。 他の メ ニ ュ ー項目の名前を見つける ための完全な コ ー ド サン プルが ク ッ ク ブ ッ ク の interactive/ acrobat_menu_items ト ピ ッ ク にあ り ます。 namelist (文字列の リ ス ト 。 Hide。 必須) 隠 し たいか、 あるいは表示 さ せたい注釈群またはフ ィ ール ド 群の 名前 (グループ名を含む)。 (SubmitForm) exclude オプ シ ョ ンの設定に よ っ て、 送信に含めたいか、 あ るいは除外 し たい フ ォ ーム フ ィ ール ド 群の名前 (グループ名を含む)。 デ フ ォル ト : exportable オプ シ ョ ン を false に し てある フ ィ ール ド 以外がすべて送信 さ れます。 (ResetForm) exclude オプ シ ョ ンの設定によ っ て、 リ セ ッ ト に含めたいか、 あ るいは除外 し たい フ ォ ーム フ ィ ール ド 群の名前 (グループ名を含む)。 デ フ ォル ト : すべてのフ ィ ール ド が リ セ ッ ト さ れます。 newwindow (論理値。 GoToE ・ GoToR) 移動先の文書を新 し いウ ィ ン ド ウで開 く かど う かを指定する フ ラ グ。 こ のフ ラ グ を false にする と 、 移動先の文書はカ レ ン ト 文書か ら同 じ ウ ィ ン ド ウの中で切 り 換わ り ます。 Launch : こ の項目は、 フ ァ イルが PDF 文書で ない と きは無視 さ れます。 デ フ ォル ト : Acrobat は、 カ レ ン ト の環境設定に従っ て動作 し ます。 operation (キーワー ド 。 Launch) filename オプ シ ョ ン で指定 し ている文書に適用 し たい操作を指定するキー ワー ド 。 これは、 Windows 版の Acrobat でだけ使え ます。 filename オプ シ ョ ンが文書で な く ア プ リ ケーシ ョ ン を指 し ている と きは、 こ のオプ シ ョ ンは無視 さ れて、 ア プ リ ケーシ ョ ンが起動 さ れま す。 と り う るキーワー ド (デ フ ォ ル ト : open) : open 文書を開き ます print 文書を印刷 し ます (キーワー ド 。 Movie) ムービーま たはサウ ン ド に適用 し たい操作を指定するキーワー ド 。 と り う るキーワー ド (デ フ ォ ル ト : play) : play ムービーの再生を開始 し ます。 その際、 そのムービー注釈の playmode オプ シ ョ ン で指 定 さ れている モー ド を使用 し ます。 その時点でそのムービーが一時停止 さ れている と き は、 再生位置を先頭へ戻 し てから 再生 さ れます。 stop ムービーの再生を停止 し ます。 pause ムービーの再生を一時停止 し ます。 resume 一時停止 さ れているムービーを再開 し ます。 parameters (文字列。 Launch) filename オプ シ ョ ン で指定 し ている ア プ リ ケーシ ョ ンに渡 し たい引数文字列。 こ れは、 Windows 版の Acrobat でだけ使え ます。 複数の引数はスペースキ ャ ラ ク タ で区切る こ と が で き ますが、 個々の引数には一切スペースキ ャ ラ ク タ を入れてはいけません。 filename が文書を 指 し ている と きは、 こ のオプ シ ョ ンは指定するべき ではあ り ません。 デ フ ォル ト : な し preserveradio (論理値。 SetOCGState) true にする と 、 レ イ ヤー間のラ ジオボ タ ン ス テー タ ス関係を保持 し ます。 デ フ ォ ル ト : true 252 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.8 PDF_create_action( ) のア ク シ ョ ン プ ロパテ ィ オプ シ ョ ン オプ シ ョ ン 説明 richmediaargs (POCA コ ン テナハン ド ル。 RichMediaExecute) そのコ マ ン ド に対する任意の数の引数を指定 し た 配列 コ ン テナに対するハン ド ル。 有効な引数は、 種別が文字列か整数か float か論理値のオブ ジ ェ ク ト です。 この配列は、 オプ シ ョ ン usage=richmediaargs を用いて作成 さ れている必要があ り ま す。 デ フ ォル ト : 引数な し script (ハイパーテキス ト 文字列。 JavaScript。 必須) 実行 さ せたい JavaScript コ ー ド を入れた文字列。 こ のオプ シ ョ ン を用いて任意の文字列を渡すためには、 10 ページ 「オプ シ ョ ン リ ス ト 内の括弧で 囲ま ない文字列」 で説明 し ている オプ シ ョ ン リ ス ト 文法が有用で し ょ う 。 scriptname (ハイパーテキス ト 文字列。 JavaScript) 指定する と 、 script オプ シ ョ ン で与えている JavaScript は、 文書レ ベルの指定名の JavaScript と し て挿入 さ れます。 文書内で同 じ scriptname を複数回与 え る と 、 最後のス ク リ プ ト だけが使われます。 文書レ ベルの JavaScript は、 Acrobat で文書が読み 込まれた後に実行 さ れます。 こ れは、 フ ォ ーム フ ィ ール ド で使いたいス ク リ プ ト で有用で し ょ う 。 submitemptyfields (論理値。 SubmitForm) true にする と 、 namelist ・ exclude オプ シ ョ ン で決ま るすべてのフ ィ ール ド が、 値を持つかど う かにかかわ ら ず、 送信 さ れます。 値のない フ ィ ール ド については、 フ ィ ー ル ド 名だけが送信 さ れます。 false にする と 、 値のない フ ィ ール ド は送信 さ れません。 デ フ ォル ト : false target (文字列。 GoTo3DView ・ Movie ・ RichMediaExecute。 必須) そのス ク リ プ ト を実行する対象 と し た い、 PDF_create_annotation( ) の name オプ シ ョ ン で指定 さ れた通 り の、 タ ーゲ ッ ト 3D またはムー ビーま たは リ ッ チ メ デ ィ ア注釈の名前。 targetpath (オプ シ ョ ン リ ス ト 。 GoToE。 filename を指定 し ていなければ必須) 移動先文書のパス情報を指定 し た移動先オプ シ ョ ン リ ス ト (表 12.9 参照)。 各移動先オプ シ ョ ン リ ス ト は、 移動先へのフ ルパス の中の 1 個の要素を指定 し 、 追加の要素群を持 っ たネス ト さ れた移動先オプ シ ョ ン リ ス ト 群を持 つ こ と も で き ます。 transition (キーワー ド 。 Trans) 表示遷移効果を設定 し ます。 キーワー ド の一覧は表 3.9 を参照。 デ フ ォ ル ト : replace url (文字列。 URI ・ SubmitForm。 必須) リ ン ク先を指定する (type=URI の場合)、 ま たは送信内容を処 理 さ せたい Web サーバ上のス ク リ プ ト のア ド レ ス を指定する (type=SubmitForm の場合) URL (Uniform Resource Locator) を、 7 ビ ッ ト ASCII または EBCDIC (ただ し ASCII 文字だけを含む) で エ ン コ ー ド し た もの。 任意の リ ソ ース (Web で も ロー カルで も) を指 し 示す こ と がで き、 先頭に プ ロ ト コ ル識別子 (http:// な ど) が必要です。 表 12.9 PDF_create_action( ) の targetpath オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 annotation (ハイパーテキス ト 文字列。 relation=child かつ移動先がフ ァ イル添付注釈に関連づけ られている 場合は必須) pagenumber か destname で指定 し たページ上の移動先のフ ァ イル添付注釈の名前を指 定 し ます。 destname (ハイパーテキス ト 文字列。 pagenumber を与えていて、 かつ relation=child で、 し か も移動先が フ ァ イル添付注釈に関連づけ られている場合以外は必須) 移動先の フ ァ イル添付注釈を内容 と し て持つ カ レ ン ト 文書内のページに対する名前付き移動先を指定 し ます。 こ のオプ シ ョ ンは、 pagenumber を指定する と 無視 さ れます。 name (ハイパーテキス ト 文字列。 relation=child かつ移動先が添付 リ ス ト 内に置かれている場合は必 須。 それ以外の場合は指定 し てはいけません。 annotation を指定する と 無視 さ れます) PDF_ begin/end_document( ) の添付 リ ス ト 内の移動先の名前。 12.4 ア ク シ ョ ン 253 表 12.9 PDF_create_action( ) の targetpath オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 pagenumber (整数。 destname を与えていて、 かつ relation=child で、 し か も移動先がフ ァ イル添付注釈に関 連づけ られている場合以外は必須。 destname を指定する と 無視 さ れます) 移動先のフ ァ イル添付 注釈を内容 と し て持つ カ レ ン ト 文書内のページの番号を指定 し ます。 relation targetpath 254 (キーワー ド 。 必須) カ レ ン ト 文書 と 移動先 (中間移動先で も可) の関係を指定 し ます。 使え る キーワー ド : parent 移動先はカ レ ン ト 文書の親です。 child 移動先はカ レ ン ト 文書の子です。 (オプ シ ョ ン リ ス ト ) 追加の移動先文書のパス情報を表 12.9 に従 っ て指定 し た移動先オプ シ ョ ン リ ス ト 。 こ のオプ シ ョ ン を指定 し ない と 、 カ レ ン ト 文書が、 移動先を含む移動先フ ァ イル と な り ま す。 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 12.5 名前付 き移動先 C++ Java C# void add_nameddest(String name, String optlist) Perl PHP add_nameddest(string name, string optlist) C void PDF_add_nameddest(PDF *p, const char *name, int len, const char *optlist) 名前付 き 移動先を、 文書のページ上に作成 し ます。 name (ハ イ パーテ キ ス ト 文字列) 移動先の名前。 リ ン ク 、 し お り 、 その他の ト リ ガの対 象 と し て使え ます。 移動先名は、 文書内で一意にする 必要があ り ます。 文書内で同 じ 名前 を複数回与え る と 、 最後の定義だけが使われて、 他は無警告で無視 さ れます。 (C 言語バ イ ンデ ィ ン グのみ) name の長 さ (バ イ ト 単位)。 len=0 にする と null 終了 len 文字列を与え る 必要があ り ます。 optlist 移 動 先 を 指 定 し た オ プ シ ョ ン リ ス ト 。 空 リ ス ト に す る と 、 {type=fitwindow page=0} と 同義にな り ます。 以下のオプシ ョ ンが使え ます : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding ・ hypertextformat (表 2.3 参照 ) > 表 12.10 に従っ た移動先制御オプシ ョ ン群 : bottom ・ group ・ left ・ page ・ right ・ top ・ type ・ zoom 詳細 optlist で移動先の詳細を指定す る 必要があ り ます。 移動先は、 カ レ ン ト 文書の ど のページ にあ っ て も か ま い ません。与え る name は、PDF_create_action( )・PDF_create_annotation( )・ PDF_create_bookmark( ) ・ PDF_begin/end_document( ) の destname オプシ ョ ン で使え ます。 こ のや り 方では、 移動先の定義 と 利用 と を、 2 つの別々の ス テ ッ プに分け る こ と がで き ま す。 あ る いは、 移動先が利用の時にわか る 場合は、 こ れ ら の関数で destination オプシ ョ ン を使っ て、 名前付 き 移動先の定義 と 利用を一度に行 う こ と も で き ま すので、 その場合は PDF_add_nameddest( ) は必要あ り ません。 スコープ オブ ジ ェ ク ト 以外任意 表 12.10 PDF_add_nameddest( ) の移動先オプ シ ョ ン。 PDF_create_action( ) ・ PDF_create_annotation( ) ・ PDF_create_ bookmark( ) ・ PDF_begin/end_document( ) の destination オプ シ ョ ン で も使え ます。 オプ シ ョ ン 説明 bottom (float。 type=fitrect のみ) ウ ィ ン ド ウの下端に合わせたい、 ページの y 座標。 デ フ ォ ル ト : 0 group (文字列。 page オプ シ ョ ン を指定 し ている と き、 文書がページグループ を使っ ている な ら必須。 そ れ以外な ら禁止) 移動先のページが属するページグループの名前。 left (float。 type=fixed ・ fitheight ・ fitrect ・ fitvisibleheight のみ) ウ ィ ン ド ウの左端に合わせた い、 ページの x 座標。 デ フ ォ ル ト : 0 page (整数) 移動先ページのページ番号 (先頭ページは 1)。 ページは、 移動先 PDF に存在 し ている必 要があ り ます。 page 0 にする と 、 ページ ス コ ープの中ではカ レ ン ト ページ を、 文書ス コ ープの中 では page 1 を意味 し ます。 デ フ ォ ル ト : 0 right (float。 type=fitrect のみ) ウ ィ ン ド ウの右端に合わせたい、 ページの x 座標。 デ フ ォ ル ト : 1000 top (float。 type=fixed ・ fitwidth ・ fitrect ・ fitvisiblewidth のみ) ウ ィ ン ド ウの上端に合わせた い、 ページの y 座標。 デ フ ォ ル ト : 1000 12.5 名前付き移動先 255 表 12.10 PDF_add_nameddest( ) の移動先オプ シ ョ ン。 PDF_create_action( ) ・ PDF_create_annotation( ) ・ PDF_create_ bookmark( ) ・ PDF_begin/end_document( ) の destination オプ シ ョ ン で も 使え ます。 オプ シ ョ ン 説明 type (キーワー ド ) 対象ページ上でのウ ィ ン ド ウの位置を指定 し ます。 と り う るキーワー ド (デ フ ォ ル ト : fitwindow) : fitheight ページの高 さ を ウ ィ ン ド ウに収めて、 x 座標 left をウ ィ ン ド ウの左端に合わせます。 fitrect left ・ bottom ・ right ・ top で指定 し ている長方形を ウ ィ ン ド ウに収めます。 fitvisible ページの描画領域 (ArtBox) を ウ ィ ン ド ウに収めます。 fitvisibleheight ページの描画領域をウ ィ ン ド ウに収めて、 x 座標 left を ウ ィ ン ド ウの左端に合わせま す。 fitvisiblewidth ページの描画領域をウ ィ ン ド ウに収めて、 y 座標 top をウ ィ ン ド ウの上端に合わせま す。 fitwidth ページの幅をウ ィ ン ド ウに収めて、 y 座標 top をウ ィ ン ド ウの上端に合わせます。 fitwindow ページ全体をウ ィ ン ド ウに収めます。 fixed zoom 256 left ・ top ・ zoom オプ シ ョ ン で指定 し ている、 固定 し た移動先表示を使います。 こ れ ら のいずれかを指定 し ない と 、 そのカ レ ン ト 値が保たれます。 (float またはパーセ ン ト 値。 type=fixed のみ) ページ内容の表示に使いたい倍率 (1 が 100% を意 味 し ます)。 このオプ シ ョ ン を指定 し ないか、 ま たは 0 にする と 、 リ ン クが押 さ れた時に適用 さ れ ていた表示倍率が保たれます。 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 12.6 PDF パ ッ ケージ ・ ポー ト フ ォ リ オ ポー ト フ ォ リ オの諸機能は、 以下の関数 と オプシ ョ ン を用いて実装 さ れてい ます : > ポー ト フ ォ リ オ を作成す る には、PDF_end_document( ) の portfolio オプシ ョ ン を用い ま す。 こ の関数については 43 ページ 「3.1 文書関数」 で説明 し てお り 、 こ の portfolio オ プシ ョ ンについては表 12.13 で後述 し ます。 > フ ァ イ ル と フ ォ ルダ を ポー ト フ ォ リ オに追加す る には、 PDF_add_portfolio_folder( ) と PDF_add_portfolio_file( ) を用い ます。 こ れ ら の関数については後述 し ます。 > ポー ト フ ォ リ オ内 を ナ ビ ゲー ト す る た めの ア ク シ ョ ン を 作成す る には、 PDF_create_ action( ) と type=GoToE を用い ます (249 ページ 「12.4 ア ク シ ョ ン」 を参照)。 C++ Java C# int add_portfolio_folder(int parent, String, foldername, String optlist) Perl PHP int add_portfolio_folder(int parent, string foldername, string optlist) C int PDF_add_portfolio_folder(PDF *p, int parent, const char *foldername, int len, const char *optlist) 新規ま たは既存のポー ト フ ォ リ オに フ ォ ルダ を追加 し ます (要 PDF 1.7ext3)。 parent 親フ ォ ルダ を、こ れ以前に PDF_add_portfolio_folder( ) を呼び出 し て返 さ れた フ ォ ン ト ハン ド ルで指定す る か、 ま たはルー ト フ ォ ルダの場合は -1 (PHP では 0)。 foldername (ハ イ パーテ キ ス ト 文字列で 1 ~ 255 キ ャ ラ ク タ 。 キ ャ ラ ク タ / \ : * " < > | は使っ てはいけ ま せん。 最後のキ ャ ラ ク タ は ピ リ オ ド 「.」 に し てはいけ ま せん) フ ォ ル ダの名前。 同 じ 親を持つ 2 個の フ ォ ルダが、 大文字 ・ 小文字を無視 し た と き に同 じ 名前を 持っ てはいけ ません。 ルー ト フ ォ ルダの名前は Acrobat では無視 さ れます。 len (C 言語バ イ ンデ ィ ン グ) foldername の長 さ (バ イ ト 単位で)。 len=0 と す る と 、 null 終端文字列を与え る 必要があ り ます。 optlist ポー ト フ ォ リ オのプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト 。 以下のオプシ ョ ン が使え ます : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding ・ hypertextformat (表 2.3 参照 ) > 表 13.6 に従っ た、 フ ォ ルダプ ロ パテ ィ 群のためのオプシ ョ ン : description ・ thumbnail > 表 12.11 に従っ た メ タ デー タ オプシ ョ ン : fieldlist 戻り値 PDF_add_portfolio_folder( ) ま たは PDF_add_portfolio_file( ) で使え る ハン ド ル。 詳細 生成 さ れた フ ォ ルダ構造は、 カ レ ン ト 文書の PDF ポー ト フ ォ リ オを作成す る ために使わ れます。こ の フ ォ ルダ構造は PDF_end_document( ) の後に削除 さ れます。こ の関数は、PDF_ begin_document( ) に attachments オプシ ョ ン を与え てい る と き は使っ てはいけ ません。 スコープ オブ ジ ェ ク ト 以外任意 表 12.11 PDF_add_portfolio_folder( ) ・ PDF_add_portfolio_file( ) のオプ シ ョ ン オプ シ ョ ン 説明 fieldlist (オプ シ ョ ン リ ス ト の リ ス ト ) フ ァ イルかフ ォ ルダの メ タ デー タ フ ィ ール ド 群を指定 し ます。 各 リ ス ト は、 PDF_end_document( ) の portfolio オプ シ ョ ンの schema サブオプ シ ョ ンの中のフ ィ ール ド を指 し 示 し ます。 使え るサブオプ シ ョ ン を表 12.12 に挙げます。 12.6 PDF パ ッ ケージ ・ ポー ト フ ォ リ オ 257 C++ Java C# int add_portfolio_file(int folder, String filename, String optlist) Perl PHP int add_portfolio_file(int folder, string filename, string optlist) C int PDF_add_portfolio_file(PDF *p, int folder, const char *filename, int len, const char *optlist) ポー ト フ ォ リ オの フ ォ ルダ ま たはパ ッ ケージに フ ァ イ ルを追加 し ます (要 PDF 1.7)。 folder こ れ以前に PDF_add_portfolio_folder( ) を呼び出 し て返 さ れた フ ォ ン ト ハン ド ル か、 ま たはルー ト フ ォ ルダの場合は -1 (PHP では 0)。 ルー ト フ ォ ルダでない フ ォ ルダは 要 PDF 1.7ext3 です。 filename (名前文字列。 filenamehandling グ ロ ーバルオプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) PDF ポー ト フ ォ リ オの指定 し た フ ォ ルダに付けたいデ ィ ス ク 上の フ ァ イ ルか 仮想フ ァ イ ルの名前。 PDF_begin_document( ) の createpvf オプシ ョ ン を使えば、 一時フ ァ イ ルをデ ィ ス ク 上に一切作 ら ずに、 文書を メ モ リ 内で作成 し て、 それを受け渡 し て PDF ポー ト フ ォ リ オの中に入れ る こ と がで き ます。 Acrobat は、 Acrobat 内か ら フ ァ イ ルを開 く 際に、 ど のアプ リ ケーシ ョ ン を起動す る か を、 その フ ァ イ ル名の拡張子を用いて決め る こ と に留意 し て く だ さ い。 適切な拡張子を 持っ た フ ァ イ ル名を、 外部的な制約のために使 う こ と がで き ない と き は、 かわ り に PVF フ ァ イ ル (任意の フ ァ イ ル名が使え ます) を作成する こ と も で き ます。 len (C 言語バ イ ンデ ィ ン グ) filename の長 さ (バ イ ト 単位で)。 len=0 と す る と 、 null 終 端文字列を与え る 必要があ り ます。 optlist フ ォ ン ト のプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextformat (表 2.3 参照 ) > 表 13.6 に従っ た、 フ ァ イ ルプ ロ パテ ィ 群のためのオプシ ョ ン : description ・ filename ・ mimetype ・ name ・ password ・ relationship ・ thumbnail > 表 12.11 に従っ た メ タ デー タ オプシ ョ ン : fieldlist 戻り値 フ ァ イ ルの追加が成功 し た と き は値 1、 関数呼び出 し が失敗 し た と き はエ ラ ーコ ー ド -1 (PHP では 0)。 errorpolicy=exception と す る と 、 こ の関数はエ ラ ー時に例外を発生 さ せま す。 PDF 文書群は、 変更日 と 作成日を取得す る ために開かれます。 PDF 文書を開 く こ と がで き なかっ た と き (パ ス ワー ド を与え なかっ た場合等) も 、 その文書は PDF ポー ト フ ォ リ オの中へ取 り 込まれます。 詳細 指定 し た フ ァ イ ルが、PDF 1.7ext3のポー ト フ ォ リ オの指定 し た フ ォ ルダに、ま たはPDF 1.7 のパ ッ ケージに付け ら れます。PDI が利用で き る 場合は、PDF 文書群は可能な ら ば開かれ、 そ の 作 成日 と 変更 日 が ポ ー ト フ ォ リ オ に 書 き 込 ま れ ま す。 こ の 関数 は、 PDF_begin_ document( ) に attachments オプシ ョ ン を与え てい る と き は使っ てはいけ ません。 PDF/A PDF/A-1 : こ の関数を呼び出 し てはいけ ません。 PDF/A-2 : filename は、 PDF/A-1 ま たは PDF/A-2 文書を参照 し てい る 必要があ り ます。 い く つかのオプシ ョ ンは制約 さ れます。 表 13.6 を参照 し て く だ さ い。 PDF/A-3 : 任意の フ ァ イ ル種別を追加で き ます。 relationship オプシ ョ ンが必須です。 パ ッ ケージに追加 さ れた フ ァ イ ルは、 暗黙に文書全体に関連付け ら れます。 スコープ オブ ジ ェ ク ト 以外任意 258 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.12 PDF_add_portfolio_folder( ) と PDF_add_portfolio_file( ) の fieldlist オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 key (文字列。 必須) フ ィ ール ド の名前。 こ れは、 PDF_end_document( ) の portfolio オプ シ ョ ンの schema サブオプ シ ョ ンの中のキーを指 し 示す必要があ り ます。 名前は一意であ る必要があ り ます。 prefix (ハイパーテキス ト 文字列) ユーザーに見せる フ ィ ール ド 値の頭に付ける接頭辞文字列。 Acrobat は こ の項目を type=text の場合にのみ用います。 デ フ ォ ル ト : な し type (キーワー ド ) フ ィ ール ド のデー タ 種別。 使え るキーワー ド (デ フ ォル ト : text) : value text テキス ト フ ィ ール ド : フ ィ ール ド 値はハイパーテキス ト 文字列 と し て格納 さ れます。 date 日付フ ィ ール ド : フ ィ ール ド 値は PDF 日付文字列 と し て格納 さ れます。 number 数値フ ィ ール ド : フ ィ ール ド 値は PDF 数値 と し て格納 さ れます。 (ハイパーテキス ト 文字列。 必須) PDF_end_document( ) の portfolio オプ シ ョ ンの schema サブオ プ シ ョ ンの中の フ ィ ール ド の値を指定 し ます。 そのデー タ 種別を type オプ シ ョ ン で指定する必要 があ り 、 かつ、 こ れを portfolio オプ シ ョ ンの schema サブオプ シ ョ ンの照応する type サブオプ シ ョ ンに一致 さ せる必要があ り ます。 表 12.13 PDF_end_document( ) の portfolio オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 coversheet (ハイパーテキス ト 文字列) ユーザー イ ン タ フ ェ ースで最初に見せるポー ト フ ォ リ オ内のフ ァ イル の名前。 デ フ ォ ル ト : ポー ト フ ォ リ オ を含む文書 coversheetfolder ( フ ォ ルダハン ド ル) coversheet オプ シ ョ ン で指定 さ れた フ ァ イルを含んでいるポー ト フ ォ リ オの 中のフ ォ ルダの名前。 その coversheet 名のフ ァ イルが、 複数のポー ト フ ィ リ オ フ ォルダ内に存在 し てお り 、 coversheetfolder が指定 さ れていない場合には、 最初に出現 し た ものが使われます。 デ フ ォル ト : な し initialview (キーワー ド ) 初期表示を指定 し ます。 使え るキーワー ド (デ フ ォ ル ト : detail) : navigator custom (PDF 1.7ext3。 navigator オプ シ ョ ンが必須) そのポー ト フ ォ リ オはカ ス タ ムの Flash ベースのナビゲー タ に よ っ て表現 さ れます。 detail ポー ト フ ォ リ オ を詳細モー ド で表示 し ます。 すなわち、 schema オプ シ ョ ン内のすべて の情報を多段組の形で表示 し ます。 こ のモー ド がユーザーに最 も多 く の情報を提供 し ま す (Acrobat : 「上に表示」)。 hidden ポー ト フ ォ リ オ を初め非表示に し ます。 ユーザーが明示的に操作すればフ ァ イル一覧を 得る こ と はで き ます (Acrobat : 「最小化表示」)。 tile ポー ト フ ォ リ オ を タ イルモー ド で表示 し ます。 すなわち、 コ レ ク シ ョ ン内の各フ ァ イル を小 さ なア イ コ ン で表 し 、 schema オプ シ ョ ン内の情報の一部分を表示 し ます。 こ の モー ド はユーザーに フ ァ イル添付に関する ト ッ プ レ ベルな情報を提供 し ます (Acrobat : 「左に表示」)。 (オプ シ ョ ン リ ス ト 。 PDF 1.7ext3。 initialview=custom では必須) そのポー ト フ ォ リ オに カ ス タ ム の Flash ベースのナビゲー タ を埋め込みます。 こ のカ ス タ ムナ ビゲー タ を、 その文書が開かれた際 に実際に使用するには、 view=custom を用います。 こ う し ない場合には、 そのナ ビゲー タ は、 その ポー ト フ ォ リ オ を編集する ためには使用で き ますが、 その文書を開いた歳にア ク テ ィ ブにはな り ません。 使え るサブオプ シ ョ ン群を表 12.14 に挙げています。 そのポー ト フ ォ リ オ を Acrobat で編集する際には、 利用可能なポー ト フ ォ リ オ レ イ アウ ト 群の一覧 内で、 category ・ description ・ icon ・ name の値を用いてそのナビゲー タ が表現 さ れます。 12.6 PDF パ ッ ケージ ・ ポー ト フ ォ リ オ 259 表 12.13 PDF_end_document( ) の portfolio オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 schema (オプ シ ョ ン リ ス ト の リ ス ト ) ポー ト フ ォ リ オの メ タ デー タ スキーマ : 各オプ シ ョ ン リ ス ト は、 フ ォルダま たはフ ァ イルの fieldlist 内のキーに、 ま たは標準 フ ィ ール ド の名前に照応する一意 な名前を持つ フ ィ ール ド を定義 し ます。 こ れら のフ ィ ール ド は、 Acrobat でのポー ト フ ォ リ オの表 示動作を定義 し ます (デ フ ォ ル ト : Acrobat は、 フ ァ イル名 ・ サイ ズ ・ 変更日 ・ 説明 (あれば) を 表示 し ます) : sort editable (論理値) Acrobat が フ ィ ール ド 値の編集を許すべきかど う かを指定 し ます。 デ フ ォル ト : false key (文字列。 必須) 初期フ ィ ール ド 名。 こ れは一意である必要があ り ます。 以下の名前 (ユーザー定義 フ ィ ール ド には使え ません) を用いる と 、 内蔵 フ ィ ール ド に 新たな ラ ベルを割 り 当て る こ と がで き ます : _creationdate ・ _description ・ _ filename ・ _moddate ・ _size。 label (ハイパーテキス ト 文字列。 必須) ユーザーに見せる フ ィ ール ド ラ ベルのテキス ト 。 order (整数) ユーザー イ ン タ フ ェ ースでの フ ィ ール ド の相対順序 (1,2,3,...) type (キーワー ド ) フ ィ ール ド のデー タ 種別。 以下の種別を用いて、 fieldlist オプ シ ョ ン 内のユーザー定義フ ィ ール ド を指 し 示す こ と がで き ます (デ フ ォル ト : text) : text ハイパーテキス ト 文字列 date PDF 日付文字列 number 数値 visible (論理値) ユーザー イ ン タ ー フ ェ ースでのフ ィ ール ド の初期の表示 ・ 非表示。 デ フ ォ ル ト : true。 ただ し 、 ユーザー定義フ ィ ール ド があ る と きは、 Acrobat は、 内蔵 フ ィ ール ド を、 それら を表示する と 明示的に指定 さ れていない限 り 、 非表示に し ます。 (オプ シ ョ ン リ ス ト の リ ス ト 。 各 リ ス ト は文字列 1 個 と 、 オプ シ ョ ナルなキーワー ド 1 個を内容 と し て持ち ます) schema オプ シ ョ ン で指定 し た フ ィ ール ド 群をユーザー イ ン タ フ ェ ースで並べ替え る順序を指定 し ます。 各サブ リ ス ト は、 フ ィ ール ド 名 (必須) と キーワー ド 1 個 (オプ シ ョ ナル) を内容 と し て持ち ます。 使え るキーワー ド (デ フ ォル ト : ascending) : ascending フ ィ ール ド 値を昇順で並べ替え ます。 descending フ ィ ール ド 値を降順で並べ替え ます。 Acrobat はこ の リ ス ト を用いて、 ポー ト フ ォ リ オ内の リ ス ト を並べ替え ます。 この リ ス ト は、 追加 のフ ィ ール ド 群が並べ替えに寄与で き る よ う にする ために用い られ、 追加の各フ ィ ール ド を用い て順序の決定が推進 さ れます : schema オプ シ ョ ン内の複数のフ ィ ール ド が リ ス ト 内の 1 番目の フ ィ ール ド で同 じ 値を持つ と きは、 リ ス ト 内の後続の フ ィ ール ド 群が並べ替えに用い られ、 それ は順序が一意に定ま るか、 あるいはフ ィ ール ド 名を使い果たすま で続け ら れます。 デ フ ォル ト : 並べ替え し ない split 260 (オプ シ ョ ン リ ス ト 。 PDF 1.7ext3) 分割バーの向き と 位置を指定 し ます。 デ フ ォ ル ト は initialview オプ シ ョ ン に依存 し ます : 値 detail (または値な し ) は横向き を暗示 し 、 tile は縦 向き を意味 し ます。 initalview=hidden にする と 分割バーは用い られません。 使え るサブオプ シ ョ ン: direction (キーワー ド ) 分割バーの向き。 使え るキーワー ド : horizontal ウ ィ ン ド ウ を横に分割 し ます。 vertical ウ ィ ン ド ウ を縦に分割 し ます。 none ウ ィ ン ド ウ を分割 し ません。 ウ ィ ン ド ウ全体がフ ァ イルナビゲーシ ョ ン表示 に用い ら れます。 position (パーセ ン ト 値) 分割バーの初期位置を、 得 られる ウ ィ ン ド ウ領域に対するパーセ ン ト 値 と し て指定 し ます。 使え る値は範囲 0 ~ 100 です。 こ の項目は、 direction=none に する と 無視 さ れます。 デ フ ォ ル ト : ビ ュ ーア依存 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.14 PDF_add_portfolio_folder( ) ・ PDF_add_portfolio_file( ) の portfolio オプ シ ョ ンの navigator サブオプ シ ョ ンの サブオプ シ ョ ン オプ シ ョ ン 説明 apiversion (文字列。 必須) そのナ ビゲー タ SWF フ ァ イルに よ っ て要求 さ れる ナ ビゲー タ API のバージ ョ ン。 形式 m[.n[.p[.q]]] の文字列 と し て指定 さ れます。 こ こ で m ・ n ・ p ・ q は非負整数です。 存在 し な い場合は、 n ・ p ・ q はデ フ ォル ト 0 と な り ます。 以下のエ ン ト リ が推奨 さ れます : Acrobat 9 で使 う 場合 : 9.0.0.0 Acrobat X で使 う 場合 : 9.5.0.0 assets (オプ シ ョ ン リ ス ト の リ ス ト 。 必須) そのナ ビゲー タ を実装する ために用い ら れる アセ ッ ト 群。 た と えば Flash フ ァ イル 1 個 と 、 ア イ コ ン 1 個 と 、 その他の リ ソ ース群、 た と えば画像や XML フ ァ イルな ど。 使え るサブオプ シ ョ ン : asset (アセ ッ ト ハン ド ル。 必須) PDF_load_asset( ) を用いて読み込まれたアセ ッ ト に対するハ ン ド ル。 name (1 ~ 255 キ ャ ラ ク タ のハイパーテキス ト 文字列。キ ャ ラ ク タ : * " < > | を用いてはいけま せん。 末尾のキ ャ ラ ク タ はピ リ オ ド 「.」 であ っ てはいけません。 必須) Flash コ ー ド 内 でそのアセ ッ ト を識別する ために用いる こ と がで き る その名前。 category (ハイパーテキス ト 文字列) そのナビゲー タ が表示 さ れる カ テ ゴ リ description (ハイパーテキス ト 文字列) そのナビゲー タ の説明 flash (ハイパーテキス ト 文字列。 必須) assets オプ シ ョ ン リ ス ト 内の、 type=Flash を持っ た、 その ポー ト フ ォ リ オ レ イ アウ ト を実装する SWF コ ー ド を内容 と し て持つアセ ッ ト の名前。 icon (ハイパーテキス ト 文字列) assets オプ シ ョ ン リ ス ト 内の、 type=JPEG か PNG を持 っ た、 そのナ ビ ゲー タ のためのア イ コ ン を内容 と し て持つアセ ッ ト の名前。 ただ し 、 JPEG 画像は Acrobat では動 作が一貫 し ないよ う ですので、 PNG 画像の使用を推奨 し ます。 Acrobat での最良の結果のためには サイ ズ 42x42 を推奨 し ます。 id (文字列。 version が指定 さ れている場合には必須) そのナビゲー タ に対する一意 ID を表 し た、 URI と し て表現 さ れた文字列。 バージ ョ ニ ングスキームを実装する場合には、 そのナ ビゲー タ のす べてのバージ ョ ン を通 し て同一の id を与え る こ と が必要です。 id が指定 さ れない場合には、 PDFlib は、 マ シ ン生成 GUID に基づいて URN を生成 し ます。 loadtype (キーワー ド ) そのナビゲー タ SWF を読み込むために用い られる方式。 使え るキーワー ド (デ フ ォ ル ト はキーワー ド default) : module ナビゲー タ SWF が Adobe Flex 2 モ ジ ュ ール と し て読み込まれます。 default ナ ビゲー タ SWF が通常の SWF フ ァ イル と し て読み込まれます。 locale (文字列) Unicode 技術規格 #35 に従 っ た ロ ケールを持っ た文字列。 例 : en_GB ・ de_DE ・ zh_Hans name (ハイパーテキス ト 文字列。 必須) そのポー ト フ ォ リ オの名前 strings (ハイパーテキス ト 文字列のペアの リ ス ト ) そのナ ビゲー タ に対する ロー カ ラ イ ズ さ れた文字列 群。 各ペアは、 ロー カ ラ イ ズ さ れた文字列に対する識別子 と 、 そのロー カ ラ イ ズ さ れた文字列自 体から成 り ます。 version (文字列。 id オプ シ ョ ンが必須) そのナビゲー タ のバージ ョ ン。 形式 m[.n[.p[.q]]] の文字列 と し て指定 し ます。 こ こ で m ・ n ・ p ・ q は非負整数です。 存在 し ない場合には、 n ・ p ・ q はデ フ ォル ト 0 と な り ます。 12.6 PDF パ ッ ケージ ・ ポー ト フ ォ リ オ 261 12.7 地理空間機能 地理空間機能は、 以下の関数 と オプシ ョ ンで実装 さ れます : > PDF_begin/end_page_ext( ) の viewports オプシ ョ ン を用いて、ページに 1個ない し 複数の 地理参照付 き 領域を割 り 当て る こ と がで き ます。 > PDF_load_image( ) の georeference オプシ ョ ン を用いて、地球ベース座標系を画像に割 り 当て る こ と がで き ます。 地理空間機能のためのオプシ ョ ン群を、 表 12.15 以降に詳 し く 示 し ます。 表 12.15 PDF_begin/end_page_ext( ) の viewports オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 boundingbox (長方形。 必須) ページ上のビ ュ ーポー ト の位置をデ フ ォ ル ト 座標で指定 し た長方形。 georeference (オプ シ ョ ン リ ス ト 。 必須) 地理空間計測に用いる ためビ ュ ーポー ト に関連付け ら れる世界座標系 の記述。 使え るオプ シ ョ ンは表 12.16 を参照。 hypertextencoding (キーワー ド ) name オプ シ ョ ンのエ ン コ ーデ ィ ン グ を指定 し ます。 空文字列は unicode と 同等で す。 デ フ ォル ト : hypertextencoding グ ローバルオプ シ ョ ンの値 name (ハイパーテキス ト 文字列) ビ ュ ーポー ト の説明 タ イ ト ル (地図名)。 ただ し 、 Acrobat は こ の ビ ュ ーポー ト 名をユーザー イ ン タ フ ェ ースに表示 し ません。 表 12.16 PDF_load_image( ) の georeference オプ シ ョ ンのサブオプ シ ョ ン。 PDF_begin/end_page_ext( ) の viewports オプ シ ョ ンの georeference サブオプ シ ョ ンのサブオプ シ ョ ン と し て も用い られます オプ シ ョ ン 説明 angularunit (キーワー ド ) 求める角度表示単位を指定 し ます (デ フ ォ ル ト : deg) : areaunit degree 度 grad グ ラ ー ド (全円の 1/400、 すなわち 0.9 度) (キーワー ド ) 求める面積表示単位を指定 し ます (デ フ ォ ル ト : sqm) : sqm 平方 メ ー ト ル ha ヘ ク タ ール (10,000 平方 メ ー ト ル) sqkm 平方キロ メ ー ト ル sqft 平方フ ィ ー ト a エー カ ー sqmi 平方マ イル こ こ で指定 し た単位は、 以下の Acrobat の設定を無効に し ている と きのみ、 表示に用い られます : 「環境設定」 → 「 もの さ し (地図情報)」 → 「デ フ ォル ト の面積単位を使用」。 bounds (折れ線で点 2 個以上) 地理空間変換が有効 と な る領域の境界を指定 し ます (地図では、 こ の境界 折れ線は図郭線 と し て知ら れています)。 点群は、 ページ ビ ュ ーポー ト の境界枠に対 し て、 または 画像の寸法に対 し て相対的に表現 し ます。 デ フ ォ ル ト : {0 0 0 1 1 1 1 0}、 すなわち ビ ュ ーポー ト ・ 画像領域全体が地図に用い ら れます。 displaysystem (オプ シ ョ ン リ ス ト ) 緯度 ・ 経度 と い っ た位置の値をユーザーに見せる表示に用いる座標系を表 12.17 に従っ て指定 し ます。 こ の項目を利用する と 、 地図を指定する ために coords オプ シ ョ ン で 与えた座標系以外の座標系で座標を表示する こ と がで き ます。 262 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 表 12.16 PDF_load_image( ) の georeference オプ シ ョ ンのサブオプ シ ョ ン。 PDF_begin/end_page_ext( ) の viewports オプ シ ョ ンの georeference サブオプ シ ョ ンのサブオプ シ ョ ン と し て も 用い ら れます オプ シ ョ ン linearunit 説明 (キーワー ド ) 求める距離表示単位を指定 し ます (デ フ ォ ル ト : m) : m メートル km キロ メ ー ト ル ft 国際フ ィ ー ト usft 米国測量 フ ィ ー ト mi 国際マ イル nm 海里 こ こ で指定 し た単位は、 以下の Acrobat の設定を無効に し ている と きのみ、 表示に用い られます : 「環境設定」 → 「も の さ し (地図情報)」 → 「デ フ ォル ト の距離単位を使用」。 mappoints (float ペア 2 個以上の リ ス ト 。 必須) 数値の リ ス ト で、 各ペアが 2D 単位正方形内の点を定義 し ま す。 この単位正方形は、 ページ ビ ュ ーポー ト の、 または georeference オプ シ ョ ン を含む画像の長 方形境界へマ ッ プ さ れます。 こ の mappoints リ ス ト は、 worldpoints リ ス ト と 同 じ 数の点を内容 と し て持つ必要があ り 、 各点は、 worldpoints リ ス ト 内の地理空間位置に照応する単位正方形内の地 図位置 と な り ます。 worldpoints (float ペア 2 個以上の リ ス ト 。 必須) 座標ペアの リ ス ト で、 各ペアが、 mappoints オプ シ ョ ン内の それぞれの点の世界座標を指定 し ます。 こ のペアの数は、 mappoints オプ シ ョ ン内のペアの数 と 一 致する必要があ り ます。 座標値は、 worldsystem オプ シ ョ ン で指定 し た座標系に基づ き ます : type=geographic の と きは、 緯度 ・ 経度値を度単位で与え る必要があ り ます。 type=projected の と きは、 投影 さ れた x ・ y 値を与え る必要があ り ます。 worldsystem (オプ シ ョ ン リ ス ト 。 必須) 表 12.17 に従っ た世界座標系 (worldpoints の解釈のための)。 表 12.17 PDF_load_image( ) の georeference オプ シ ョ ンの mapsystem ・ displaysystem サブオプ シ ョ ンのサブオプ シ ョ ン。 PDF_begin/end_page_ext( ) の viewports オプ シ ョ ンの georeference サブオプ シ ョ ンのサブオプ シ ョ ン と し て も 用い ら れます オプ シ ョ ン 説明 epsg (整数。 epsg か wkt のいずれか 1 つだけ を必ず与え る必要があ り ます) 座標系を EPSG 参照コ ー ド で指定 し ます。 なお、 Acrobat 9 は type=geographic の と きは EPSG コ ー ド に対応 し ていませんの で、 その場合は wkt を用いて く だ さ い。 type (キーワー ド 。 必須) 座標系の種類を指定 し ます : geographic 測地座標系 (wkt のみ対応) projected 投影座標系 (wkt に も epsg に も対応) wkt (文字列で最大 1024 ASCII キ ャ ラ ク タ 。 epsg か wkt のいずれか 1 つだけを必ず与え る必要があ り ます) 座標系を 「Well Known Text」 (WKT) の文字列で指定 し ます。 WKT は、 EPSG コ ー ド を全 く 持たない カ ス タ ム座標系に対 し て推奨 さ れます。 12.7 地理空間機能 263 264 第 12 章 : イ ン タ ラ ク テ ィ ブ機能 13 マルチ メ デ ィ ア機能 13.1 3D アー ト ワー ク ク ッ ク ブ ッ ク 完全な コ ー ド サン プルが ク ッ ク ブ ッ クの multimedia/starter_3d ト ピ ッ ク にあ り ます。 3D 機能群は、 以下の関数 と オプシ ョ ン を用いて実装 さ れてい ます : > 3D デー タ を読み込むには、PDF_load_3ddata( ) を用い ます。 こ の関数については後述 し ます。 > 3D ビ ュ ーを作成す る には、 PDF_create_3dview( ) を用い ます。 こ の関数については後述 し ます。 > 3D 注釈を作成す る には、PDF_create_annotation( ) と type=3D を用い ます。こ の関数につ いては、 231 ページ 「12.2 注釈」 で説明 し てい ます。 ただ し 、 こ の関数の、 3D 注釈を 制御す る ためのオプシ ョ ン群については、 表 13.4 で後述 し ます。 > 3D 注釈を制御す る ためのア ク シ ョ ン を作成する には、 PDF_create_action( ) と type=3Dview を用い ます (249 ページ 「12.4 ア ク シ ョ ン」 を参照)。 C++ Java C# int load_3ddata(String filename, String optlist) Perl PHP int load_3ddata(string filename, string optlist) C int PDF_load_3ddata(PDF *p, const char *filename, int len, const char *optlist) 3D モデルを、 デ ィ ス ク ベース ま たは仮想フ ァ イ ルか ら 読み込みます (要 PDF 1.6)。 filename (名前文字列。 filenamehandling グ ロ ーバルオプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) 3D モデルの入っ た、 デ ィ ス ク ベース ま たは仮想フ ァ イ ルの名前。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位)。 len=0 にする と null 終 了文字列を与え る 必要があ り ます。 optlist 3D モデルのプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照) > 表 13.1 に従っ て 3D モデルのプ ロ パテ ィ 群を指定する オプシ ョ ン群 : defaultview ・ script ・ type ・ views 戻り値 3D ハン ド ル。 PDF_create_annotation( ) で 3D 注釈を作成する のに使え ます。 3D ハン ド ル は、 カ レ ン ト の文書ス コ ープ を終え る ま で使え ます。 errorpolicy=return の場合、 戻 り 値 1 (PHP では 0) はエ ラ ーを示すので、 そ う でないか を呼び出 し 側で検査す る 必要があ り ます。 詳細 フ ァ イ ルは、 PRC ま たは U3D 形式の 3D デー タ を内容 と し て持つ必要があ り ます。 スコープ オブ ジ ェ ク ト 以外任意。 返 さ れたハン ド ルは、 次に PDF_end_document( ) を呼び出すま で 使え ます。 13.1 3D アー ト ワー ク 265 表 13.1 PDF_load_3ddata( ) のオプ シ ョ ン オプ シ ョ ン 説明 defaultview (キーワー ド ま たは 3D ビ ュ ーハン ド ル) 3D 注釈の初期ビ ュ ーを指定 し ます。 キーワー ド first ・ last (views オプ シ ョ ンの中の各項目を参照する) のいずれか、 または PDF_create_3dview( ) で作 成 し た 3D ビ ュ ーハン ド ル。 デ フ ォ ル ト : first script (ハイパーテキス ト 文字列) 3D モデルが実体化 さ れた時に実行 さ せたい JavaScript コ ー ド を入れた 文字列。 デ フ ォ ル ト : ス ク リ プ ト な し type views (キーワー ド ) 3D デー タ の種類を指定 し ます (デ フ ォ ル ト : U3D) : PRC (PDF 1.7ext3) Product Representation Compact (PRC) 形式 (ISO 14739-1) U3D (PDF 1.6) Universal 3D File 形式 (U3D)。 以下の種類が使え ます (www.ecmainternational.org 参照) : Universal 3D File Format (U3D), 1st Edition ・ ECMA-363, Universal 3D File Format (U3D), 3rd Edition。 (3D ビ ュ ーハン ド ルの リ ス ト ) 3D モデルに対する定義済みビ ュ ーの リ ス ト 。 リ ス ト の各要素は、 PDF_create_3dview( ) で作成 し た 3D ビ ュ ーハン ド ルです。 ビ ュ ー群を PDF_create_3dview( ) で作成 し た際に用い られた type オプ シ ョ ンは、 PDF_create_3ddata( ) 内の type オプ シ ョ ン と 一致 し てい る必要があ り ます。 デ フ ォ ル ト : 空 リ ス ト C++ Java C# int create_3dview(String username, String optlist) Perl PHP int create_3dview(string username, string optlist) C int PDF_create_3dview(PDF *p, const char *username, int len, const char *optlist) 3D ビ ュ ーを作成 し ます (要 PDF 1.6)。 username (ハ イ パーテ キ ス ト 文字列) 3D ビ ュ ーのユーザー イ ン タ フ ェ ース名。 len (C 言語バ イ ンデ ィ ン グのみ) username の長 さ (バ イ ト 単位)。 len=0 にする と null 終了文字列を与え る 必要があ り ます。 optlist 3D ビ ュ ーのプ ロ パテ ィ 群を指定 し たオプシ ョ ン リ ス ト : > 一般オプシ ョ ン群 : errorpolicy (表 2.1 参照) ・ hypertextencoding (表 2.3 参照) > 3D ビ ュ ーのプ ロ パテ ィ 群を表 13.2 に従っ て指定する オプシ ョ ン群 : background・camera2world・cameradistance・lighting・name・rendermode・type・U3Dpath 戻り値 3D ビ ュ ーハン ド ル。 カ レ ン ト の文書ス コ ープ を終え る ま で使え ます。 errorpolicy=return の場合、 戻 り 値 -1 (PHP では 0) はエ ラ ーを示すので、 そ う でないかを呼び出 し 側で検査 す る 必要があ り ます。 詳細 3D ビ ュ ーハン ド ルは、 PDF_load_3ddata( ) の views オプシ ョ ンで 3D モデルに関連づけ る こ と も で き ま す し 、 あ る いは PDF_create_annotation( ) で 3D 注釈を作成 し た り 、 PDF_ create_action( ) で 3D 関連のア ク シ ョ ン を作成 し た り する のに使 う こ と も で き ます。 スコープ オブ ジ ェ ク ト 以外任意。 返 さ れたハン ド ルは、 次に PDF_end_document( ) を呼び出すま で 使え ます。 カ メ ラ 位置 カ メ ラ の位置は camera2world オプシ ョ ンで指定す る こ と がで き ます。 あ る いは、 JavaScript コ ー ド を付けて、 カ メ ラ のモデルに対す る 位置 と 向 き を指定す る こ と も で き ます。 PDFlib ク ッ ク ブ ッ ク に、 こ の よ う な JavaScript コ ー ド を 3D モデルに付け る サ ンプル コ ー ド があ り ます。 266 第 13 章 : マルチ メ デ ィ ア機能 表 13.2 PDF_create_3dview( ) のオプ シ ョ ン オプ シ ョ ン 説明 background (オプ シ ョ ン リ ス ト ) 3D モデルの背景を指定 し ます : fillcolor (色) 背景色を RGB 色空間で表現 し ます。 デ フ ォ ル ト : 白 entire (論理値) true にする と 、 背景は注釈全体に適用 さ れます。 そ う でなければ、 注釈の 3Dbox オプ シ ョ ン で指定 し てあ る長方形にだけ適用 さ れます。 デ フ ォル ト : false camera2world (float 12 個の リ ス ト ) カ メ ラの位置 と 向き を世界座標で指定 し た 3D 変換行列 (以下説明参照)。 デ フ ォル ト : 3D モデルの中で内部的に定義 さ れた初期ビ ュ ー cameradistance (float。 負値は不可。 camera2world を指定 し ない と 無視 さ れます) カ メ ラ と 軌道中心の距離。 詳 し く は、 ISO 32000-1 の section 13.6.4 「3D Views」 の CO キーの説明を参照。 デ フ ォ ル ト : 3D デー タ の中で内部的に定義 lighting (オプ シ ョ ン リ ス ト 。 PDF 1.7) 3D アー ト ワー ク の照明方式を指定 し ます。 以下のオプ シ ョ ン を使 え ます : type (キーワー ド ) 照明方式を指定 し ます。 使え るキーワー ド (デ フ ォ ル ト : Artwork) : Artwork 光は 3D アー ト ワー ク内で指定 さ れる。 None 光な し 。 3D アー ト ワー ク 内で指定 さ れている光は無視 さ れます。 White 3 個のラ イ ト グ レー無限遠光、 ア ン ビ エ ン ト 項な し Day 3 個のラ イ ト グ レー無限遠光、 ア ン ビ エ ン ト 項な し Night 黄色 1 個 ・ ア ク ア色 1 個 ・ 青 1 個の無限遠光、 ア ン ビ エ ン ト 項な し Hard 3 個のグ レー無限遠光、 中程度のア ン ビ エ ン ト 項 Primary 赤 1 個 ・ 緑 1 個 ・ 青 1 個の無限遠光、 ア ン ビ エ ン ト 項な し Blue 3 個の青色無限遠光、 ア ン ビ エ ン ト 項な し Red 3 個の赤色無限遠光、 ア ン ビ エ ン ト 項な し Cube 長軸に沿っ て配置 さ れた 6 個のグ レー無限遠光、 ア ン ビ エ ン ト 項な し CAD 3 個のラ イ ト グ レー無限遠光 と カ メ ラ に付いた光 1 個、 ア ン ビ エ ン ト 項な し Headlamp カ メ ラ に付いた 1 個の無限遠光、 低いア ン ビ エ ン ト 項 name (ハイパーテキス ト 文字列) 3D ビ ュ ーの名前。 GoTo ア ク シ ョ ン で使 う こ と がで き ます。 こ れは必 須ではない内部的な名前であ り 、 必須の username 引数 と は別個に扱われます。 rendermode (オプ シ ョ ン リ ス ト 。 PDF 1.7) 3D アー ト ワー ク を表示する ためのレ ン ダモー ド を指定 し ます。 使 え るサブオプ シ ョ ン を表 13.3 に挙げます。 type (キーワー ド 。 このビ ュ ーが PDF_load_3ddata( ) で type=PRC で使われる な ら必須) 3D デー タ の種別 を指定 し ます (デ フ ォ ル ト : U3D) : U3Dpath PRC こ のビ ュ ーは、 PDF_load_3ddata( ) で type=PRC で使用 さ れる。 U3D こ のビ ュ ーは、 PDF_load_3ddata( ) で type=U3D で使用 さ れる。 (ハイパーテキス ト 文字列。 camera2world オプ シ ョ ンが指定 さ れている場合には無視 さ れます。 type=U3D の場合み) 3D アー ト ワー ク内のビ ュ ー ノ ー ド にア ク セスする ために用い られる ビ ュ ー ノ ー ド 名。 以下の値を camera2world オプシ ョ ンに与え る と 、代表的な カ メ ラ 位置を実現す る こ と がで き ます。 x ・ y ・ z は、 カ メ ラ の位置を記述す る 適切な値です。 こ れ ら の値は、 定め ら れた条件を満たす必要があ り ます (後述参照) : 前か ら のビ ュ ー : {-1 0 0 0 0 1 0 1 0 x y z} x小、y大負、z小 左か ら のビ ュ ー : { 0 1 0 0 0 1 1 0 0 x 0 z} x大負、z小 13.1 3D アー ト ワー ク 267 上か ら の ビ ュ ー : {-1 0 0 0 1 0 0 0 -1 x 0 z} x小、z大負 後ろか ら の ビ ュ ー : { 1 0 0 0 0 1 0 -1 0 x y z} x小、y大正、z小 下か ら の ビ ュ ー : {-1 0 0 0 -1 0 0 0 1 x 0 z} x小、z大負 右か ら の ビ ュ ー : { 0 -1 0 0 0 1 -1 0 0 x 0 z} x大正、z小 等角ビ ュ ー、 すなわち投影の方向が 3 軸すべて と 等 し い角度で交わ る 場合。 こ の よ う な ビ ュ ーはち ょ う ど 8 個、 八分空間ご と に 1 個ずつあ り ます : {0.707107 -0.707107 0 -0.5 -0.5 0.707107 -0.5 -0.5 -0.707107 x y z} x, y, z large positive x ・ y ・ z 値は、 モデルの位置 と サ イ ズに応 じ て選ぶ必要があ り ます。 「大」 は、 カ メ ラ と モ デルの間に充分大 き な距離を と る ために、その値を モデルのサ イ ズ よ り かな り 大 き く す る 必要があ る こ と を意味 し ます。 値が大 き すぎ る と 、 モデルは非常に小 さ く 表示 さ れ、 そ し て ビ ュ ーを回転 さ せ る と すぐ に視界か ら 外れて し ま い ます。 値が小 さ すぎ る と 、 モデルは ビ ュ ーに収 ま り き り ません。 「小」 は、 その絶対値を、 大 き な値に比べて小 さ し 、 モデル のサ イ ズ を あ ま り 大 き く 超え ない よ う にす る 必要があ る こ と を意味 し ます。 表 13.3 PDF_create_3dview( ) の rendermode オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 crease (float で範囲 0 ~ 180) 折 り 目値 facecolor (RGB カ ラ ーまたはキーワー ド 、 type=Illustration のみ) 表面色。 この色はい く つかのレ ン ダ モー ド で用い られます。 キーワー ド backgroundcolor はカ レ ン ト 背景色を意味 し ます。 デ フ ォル ト : backgroundcolor opacity (float で範囲 0 ~ 1、 またはパーセ ン ト 値) い く つかのレ ン ダモー ド における不透明値。 デ フ ォ ル ト : 0.5 rendercolor (RGB カ ラ ー) 補助色。 この色はい く つかのレ ン ダモー ド で用い ら れます。 デ フ ォ ル ト : 黒 268 第 13 章 : マルチ メ デ ィ ア機能 表 13.3 PDF_create_3dview( ) の rendermode オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 type (キーワー ド 。 PDF 1.7) 3D アー ト ワー ク を表示する ためのレ ン ダモー ド (デ フ ォ ル ト : Artwork) : Artwork レ ン ダモー ド は 3D アー ト ワー ク内で指定 さ れる。 rendermode オプ シ ョ ンの こ れ以外の サブオプ シ ョ ンはすべて無視 さ れます。 Solid テ ク スチ ャ付き で照明 さ れた幾何図形輪郭群を表示。 SolidWireframe テ ク スチ ャ付き で照明 さ れた、 単色の辺を持っ た幾何図形輪郭 (三角形) 群を表示。 Transparent テ ク スチ ャ付き で照明 さ れた、 追加の透過の水準を持っ た幾何図形輪郭 (三角形) 群を 表示。 TransparentWireframe テ ク スチ ャ付き で照明 さ れた、 追加の透過の水準を持っ た幾何図形輪郭 (三角形) 群を 表示。 BoundingBox テ ク スチ ャ付き で照明 さ れた、 追加の透過の水準を持っ た、 単色の不透明な辺を持 っ た 幾何図形輪郭 (三角形) 群を表示。 TransparentBoundingBox 各節点の、 その節点に対する局所座標空間の軸に沿っ た、 追加の透過の水準を持っ た境 界枠の面を表示。 TransparentBoundingBoxOutline 各節点の、 その節点に対する局所座標空間の軸に沿っ た、 追加の透過の水準を持っ た境 界枠の辺 と 面を表示。 Wireframe 各節点の、 その節点に対する局所座標空間の軸に沿っ た、 追加の透過の水準を持っ た境 界枠の辺 と 面を表示。 ShadedWireframe 辺のみを、 ただ し その 2 個の頂点の間でその色を補間 し 、 かつ照明を適用 し て表示。 HiddenWireframe 辺を単色で、 ただ し 後ろ向きの辺 と 隠 さ れた辺を除いて表示。 Vertices 頂点のみを単色で表示。 ShadedVertices 頂点のみを、 ただ し その頂点色を用いて、 かつ照明を適用 し て表示。 Illustration表面を持 っ たシルエ ッ ト 辺を、 隠線を除いて表示。 SolidOutline 照明 さ れテ ク スチ ャ付きの表面を持 っ たシルエ ッ ト 辺を、 隠線を除いて表示。 ShadedIllustration 照明 さ れテ ク スチ ャ付きの表面を持 っ た、 アー ト ワー ク の弱 く 照明 さ れた領域を除 く た めの追加の放射項目を持っ たシルエ ッ ト 辺を表示。 13.1 3D アー ト ワー ク 269 表 13.4 PDF_create_annotation( ) で type=3D の場合の 3D オプ シ ョ ン オプ シ ョ ン 説明 3Dactivate (オプ シ ョ ン リ ス ト 。 type=3D のみ) 3D 注釈を ア ク テ ィ ブにする タ イ ミ ング と 、 ア ク テ ィ ブ ・ 非ア ク テ ィ ブに し た と きの状態を指定 し ます。 使え るサブオプ シ ョ ン : enable (キーワー ド ) 注釈をいつ起動するべきかを指定 し ます (デ フ ォ ル ト : click) : open ページ を開いた時に起動。 visible ページが見えた時に起動。 click 注釈は、 ス ク リ プ ト かユーザーア ク シ ョ ン で明示的に起動する必要がある。 enablestate (キーワー ド ) 初期アニ メ ーシ ョ ン ス テー タ ス (デ フ ォル ト : play) : pause 3D モデルが実体化 さ れるが、 ス ク リ プ ト ア ニ メ ーシ ョ ンは無効にな る。 play 3D モデルが実体化 さ れる。 ス ク リ プ ト アニ メ ーシ ョ ンがある と きはそれが 有効にな り ます。 disable (キーワー ド ) 注釈をいつ起動解除するべきかを指定 し ます (デ フ ォル ト : invisible) : close ページ を閉 じ た時に起動解除。 invisible ページが見えな く な っ た時に起動解除。 click 注釈は、 ス ク リ プ ト かユーザーア ク シ ョ ン で明示的に起動解除する必要があ る。 disablestate (キーワー ド ) 注釈を起動解除 し た際の状態 (デ フ ォ ル ト : reset) : pause 3D モデルはレ ン ダ リ ン グで き るが、 ア ニ メ ーシ ョ ンは無効にな る。 play 3D モデルはレ ン ダ リ ン グで き、 アニ メ ーシ ョ ンは有効にな る。 reset 3D モデルを使 う 前の任意の初期状態。 modeltree (論理値。 PDF 1.6) true にする と 、 注釈のア ク テ ィ ベーシ ョ ン時にモデルツ リ ーナ ビ ゲーシ ョ ン タ ブが開かれます (デ フ ォル ト : false) toolbar (論理値。 PDF 1.6) true にする と 、 注釈のア ク テ ィ ベーシ ョ ン時に 3D ツールバー (注釈 の上部の) が表示 さ れます (デ フ ォ ル ト : true) 3Ddata (オプ シ ョ ン リ ス ト 。 type=3D のみ。 必須) PDF_load_3ddata( ) で作成 し た 3D ハン ド ル。 3Dinteractive (論理値。 type=3D のみ) true にする と 、 3D モデルはイ ン タ ラ ク テ ィ ブ な用途を想定 し ます。 false にする と 、 JavaScript で動か さ れる こ と を想定 し ます。 デ フ ォ ル ト : true 3Dshared (論理値。 type=3D のみ) true にする と 、 3Ddata オプ シ ョ ン で指定 し ている 3D デー タ は、 間接的 に参照 さ れます。 同 じ デー タ を参照する複数の 3D 注釈は、 そのモデルのただ 1 つの動作時実体を 共有 し ます。 こ れはすなわち、 変更はそのよ う な注釈すべてにおいて同時に見え る こ と を意味 し ます。 デ フ ォ ル ト : false 3Dinitialview (キーワー ド ま たは 3D ビ ュ ーハン ド ル) 3D モデルの初期ビ ュ ーを指定 し ます。 キーワー ド first ・ last ・ (モデルの views オプ シ ョ ンの中の各項目を参照する) ・ default (モデルの defaultview オプ シ ョ ン を参照する) のいずれか、 または PDF_load_3ddata( ) で作成 し た 3D ビ ュ ー ハン ド ル。 デ フ ォル ト : default 270 第 13 章 : マルチ メ デ ィ ア機能 13.2 ア セ ッ ト ・ リ ッ チ メ デ ィ ア機能 (Flash) マルチ メ デ ィ ア機能群は、 以下の関数 と オプシ ョ ン を用いて実装 さ れてい ます : > リ ッ チ メ デ ィ ア 注釈内で使用す る た め の マルチ メ デ ィ ア ア セ ッ ト を 読み込むには、 PDF_load_asset( ) を用い ます。 こ れを用いて、 フ ァ イ ル添付 と し て使用 さ れ る アセ ッ ト を読み込む こ と も で き ます。 こ の関数については後述 し ます。 > リ ッ チ メ デ ィ ア注釈を作成す る には、PDF_create_annotation( ) と type=RichMediaを用い ます。 こ の関数については、 231 ページ 「12.2 注釈」 で説明 し てい ます。 ただ し 、 こ の関数の richmedia オプシ ョ ンの関連サブオプシ ョ ン群については、 表 13.7 以下の表 群で後述 し ます。 > リ ッ チ メ デ ィ ア注釈を制御す る ためのア ク シ ョ ン を作成す る には、PDF_create_action( ) と type=RichMediaExecute を用い ます (249 ページ 「12.4 ア ク シ ョ ン」 を参照)。 PDF_load_asset( ) を 用 い て 読 み 込 ま れ た ア セ ッ ト を、 PDF_create_annotation( ) type=FileAttachment か Movie を用いて使用す る こ と も で き ます。 と C++ Java C# int load_asset(String type, String filename, String optlist) Perl PHP int load_asset(string type, string filename, string optlist) C int PDF_load_asset(PDF *p, const char *type, const char *filename, int len, const char *optlist) リ ッ チ メ デ ィ ア アセ ッ ト か フ ァ イ ル添付を、デ ィ ス ク ベース ま たは仮想フ ァ イ ルか ら 読み 込みます。 type 読み込まれ る アセ ッ ト の種別を表 13.5 に従っ て指定 し た キーワ ー ド 。 表 13.5 アセ ッ ト 種別 種別 使え る内容 アセ ッ ト を使え る関数 と オプ シ ョ ン / サブオプ シ ョ ン 3D U3D ・ PRC PDF_create_annotation( ) : richmedia/configurations/instances/asset Attachment1 PDF/A-2 : PDF/A1 ・ PDF/A-2 のみ。 それ以外 : 任意 PDF_end_document( ) : attachments PDF_create_annotation( ) : attachment PDF/A-3 のみ : PDF_end_document( ) ・ PDF_begin/end_page_ext( ) ・ PDF_begin/ end_dpart( ) ・ PDF_begin_template_ext( ) ・ PDF_load_image( ) ・ PDF_open_pdi_ page( ) ・ PDF_load_graphics( ) : associatedfiles Flash Shockwave (*.swf) PDF_create_annotation( ) : richmedia/configurations/instances/asset PDF_end_document( ) : portfolio/navigator/flash Generic 任意 PDF_create_annotation( ) : richmedia/assets PDF_end_document( ) : portfolio/navigator/assets JavaScript ECMAScript エデ ィ シ ョ ン 2 を内容 と す る テキス ト フ ァ イ ル PDF_create_annotation( ) : richmedia/activate/script JPEG JPEG 画像 PDF_end_document( ) : portfolio/navigator/icon PNG PNG 画像 PDF_end_document( ) : portfolio/navigator/icon Sound MP3 な ど PDF_create_annotation( ) : richmedia/configurations/instances/asset 13.2 アセ ッ ト ・ リ ッ チ メ デ ィ ア機能 (Flash) 271 表 13.5 ア セ ッ ト 種別 種別 使え る内容 アセ ッ ト を使え る関数 と オプ シ ョ ン / サブオプ シ ョ ン Video FLV ・ QuickTime ・ F4V ・ H.264 な ど PDF_create_annotation( ): richmedia/configurations/instances/asset 1. PDF_add_portfolio_folder/file( ) に対 し て、 また、 PDF_begin/end_document( ) の attachments オ プ シ ョ ン に対するサブ オプ シ ョ ン と し て用いる場合には、 type=Attachment と 暗黙に見な さ れます。 2. ISO 8859-1 エ ン コ ーデ ィ ン グか、 BOM 付き UTF-16 LE ま たは BE で filename (名前文字列。 filenamehandling グ ロ ーバルオプシ ョ ンに従っ て解釈 さ れます。 表 2.3 参照) PDF フ ァ イ ル内に埋め込まれ る デ ィ ス ク ベース ま たは仮想フ ァ イ ルの名前。 Unicode フ ァ イ ル名が使え ますが、 ただ し Acrobat で正 し く 表示 さ れ る ためには PDF 1.7 が必要です。 len (C 言語バ イ ンデ ィ ン グのみ) filename の長 さ (バ イ ト 単位で)。 len = 0 の場合には、 ヌ ル終端文字列を与え る 必要があ り ます。 optlist 以下のオプシ ョ ン を内容 と す る こ と がで き る オプシ ョ ン リ ス ト : > すべての種別に対す る 一般オプシ ョ ン : errorpolicy (表 2.1 参照) > type=Attachment の場合には、表 13.6 に従っ た さ ら な る 添付特性オプシ ョ ン群を使え ま す: description ・ documentattachment ・ external ・ filename ・ mimetype ・ name ・ password ・ relationshipthumbnail 戻り値 リ ッ チ メ デ ィ アか フ ァ イ ル添付に対す る アセ ッ ト ハン ド ル。 こ のハン ド ルは、 それを囲 う 文書ス コ ープの終了ま での間、 表 13.5 に挙げ る 関数群で使用す る こ と がで き ます。 返 さ れた アセ ッ ト ハン ド ルを、 複数の PDF 文書にわた っ て再利用す る こ と はで き ません。 errorpolicy=return の場合には、戻 り 値が -1 であ る か ど う かを呼び出 し 側でチ ェ ッ ク す る 必要があ り ます。 なぜな ら -1 はエ ラ ーを知 ら せてい る か ら です。 こ の関数呼び出 し が 失敗 し た場合には、 その失敗の理由を、 PDF_get_errmsg( ) を用いて要求す る こ と も で き ま す。 詳細 こ の関数は、 type=Attachment の場合にはすべての PDF 互換レベルで使用す る こ と がで き 、 それ以外のすべての種別では PDF 1.7ext3 を必要 と し ます。 PDF/A PDF/A-1 : こ の関数を呼び出 し てはいけ ません。 PDF/A-2 : filename は、 PDF/A-1 ま たは PDF/A-2 文書を参照 し てい る 必要があ り ます。 い く つかのオプシ ョ ンは制約 さ れます。 PDF/A-3 : い く つかのオプシ ョ ンは制約 さ れます。 添付はそれぞれ、 その文書のち ょ う ど 1 つの部分 と 紐付け ら れ る 必要があ り ます。 すなわち、 こ の生成 さ れた アセ ッ ト ハン ド ル を、 ち ょ う ど 1 つの associatedfiles オプシ ョ ンに与え る 必要があ り ます。 PDF/X PDF/X-1a/3 : こ の関数を呼び出 し てはいけ ません。 スコープ オブ ジ ェ ク ト 以外任意 表 13.6 PDF_load_asset( ) の type=Attachment の場合の、 または PDF_add_portfolio_folder/file( ) の、 または PDF_ begin/end_document( ) の attachments オプ シ ョ ンに対するサブオプ シ ョ ン と し て用いる ためのオプ シ ョ ン オプ シ ョ ン 説明 description (ハイパーテキス ト 文字列。 PDF 1.6。 PDF/A-2/3 と PDF/UA-1 では推奨) その フ ァ イルに紐付け られる説明テキス ト 。 272 第 13 章 : マルチ メ デ ィ ア機能 表 13.6 PDF_load_asset( ) の type=Attachment の場合の、 または PDF_add_portfolio_folder/file( ) の、 または PDF_ begin/end_document( ) の attachments オプ シ ョ ンに対するサブオプ シ ョ ン と し て用いる ためのオプ シ ョ ン オプ シ ョ ン 説明 documentattachment (論理値。 PDF/A-3 ・ PDF 2.0 でのみ、 かつ relationship オプ シ ョ ンが指定 さ れている場合のみ 可。 PDF_add_portfolio_file/folder( ) では不可) その連携フ ァ イルを、 文書レ ベル添付 (埋め込み フ ァ イル) と し て も保存 し ます。 こ れは、 連携 フ ァ イルデー タ 構造群を認識 し ない PDF ビ ュ ーア ( これは Acrobat X/XI/DC も 含みます) のユーザー イ ン タ フ ェ ースで添付群を リ ス ト する ために有 用で し ょ う 。 デ フ ォル ト : false external (論理値。 PDF/A では false と する必要があ り ます。 attachments オプ シ ョ ン と PDF_add_portfolio_ file/folder( ) では不可) true の場合、 そのフ ァ イルの内容は PDF 内に埋め込まれず、 外部フ ァ イル への参照だけが作成 さ れます。 こ のオプ シ ョ ン external=true は、 ムービーでは、 Acrobat がその ムービーを再生で き る よ う にする ために必須です。 デ フ ォル ト : false filename (名前文字列) その フ ァ イルの名前。 その内容は、 指定 さ れた種別に応 じ て表 13.5 に挙げている必 要条件群に準拠 し ている必要があ り ます。 Unicode フ ァ イル名を使え ますが、 Acrobat での正 し い 表示のためには PDF 1.7 が必要です。 こ のオプ シ ョ ンは、 PDF_load_asset( ) ・ PDF_add_portfolio_file/ folder( ) の関数引数 filename を通 じ て与え る こ と も で き ますが、 PDF_begin/end_document( ) の attachments オプ シ ョ ン と と も に用い ら れる場合には必須です。 こ の filename の、 デ ィ レ ク ト リ 構 成要素を除いたベース部分だけが PDF 出力へ書き出 さ れます。 mimetype (文字列。 PDF/A-3 では必須。 PDF_add_portfolio_folder( ) では不可) そのフ ァ イルの MIME タ イ プ。 その MIME タ イ プが未知の場合には、 PDF/A-3 では、 文字列 application/octet-stream を用いる 必要があ り ます。 name (ハイパーテキス ト 文字列。 PDF_add_portfolio_folder( ) では不可) その添付の名前。 デ フ ォ ル ト : filename から パス構成要素を除いた もの password (最長 127 キ ャ ラ ク タ の文字列。 PDF/A-2 では不可。 PDI が利用可能な場合のみ可。 PDF_add_ portfolio_folder( ) では不可) 保護 さ れた PDF 文書を、 その日付エ ン ト リ 群を取得する ために開 く た めに必要な PDF マ ス タ ーパスワー ド 。 relationship (ハイパーテキス ト 文字列。 PDF 2.0 ・ PDF/A-3 でのみ可。 PDF/A-3 では必須。 PDF_add_portfolio_ folder( ) では不可) その フ ァ イルの、 それが紐付け られる文書の部分に対する関係。 こ の値は任意 の文字列 と する こ と がで き ますが、 PDF/A-3 規格では以下の定義済みキーワー ド が挙げ られてい ます : Alternative そのフ ァ イルは代替表現であ る (オーデ ィ オな ど) Data そのフ ァ イルは視覚表現を導出する ために用い ら れる情報を表 し ている (表やグ ラ フの ための CSV デー タ な ど) そのフ ァ イルは元ソ ース素材である (その文書に紐付け られたワー ド プ ロ セ ッ サ文書 や、 画像に紐付け られたス プ レ ッ ド シー ト な ど)。 Supplement そのフ ァ イルは、 元ソ ース またはデー タ の、 よ り 容易に消費可能であ ろ う 補足表現を表 し ている (画像内の数式の MathML 表現な ど)。 Unspecified その関係は未知である、 ない し は他のキーワー ド で表現で き ない。 Source thumbnail (画像ハン ド ル) そのフ ァ イルのためのサムネール と し て使用 し たい画像。 こ のハン ド ルは、 PDF_ load_image( ) を用いて作成 さ れている必要があ り 、 かつ こ の画像は、 PDF_add_thumbnail( ) に対 し て 挙げている必要条件群を満た し ている必要があ り ます。 Acrobat は、 添付のためのサムネールを無 視 し ます。 13.2 アセ ッ ト ・ リ ッ チ メ デ ィ ア機能 (Flash) 273 表 13.7 PDF_create_annotation( ) の type=RichMedia の場合の richmedia オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 activate (オプ シ ョ ン リ ス ト ) 表 13.8 に従っ た、 表現のス タ イル、 デ フ ォ ル ト ス ク リ プ ト 動作、 デ フ ォル ト ビ ュ ー情報、 およびそのア ニ メ ーシ ョ ンが起動 さ れた際のア ニ メ ーシ ョ ン ス タ イルを指定 し たオ プシ ョ ン リ ス ト 。 assets (オプ シ ョ ン リ ス ト の リ ス ト 。 必須) Flash 内容から 参照で き る名前付き ア セ ッ ト : asset name configuration (アセ ッ ト ハン ド ル。 必須) PDF_load_asset( ) を用いて読み込まれたア セ ッ ト に対するハ ン ド ル。 (1 ~ 255 キ ャ ラ ク タ のハイパーテキス ト 文字列。キ ャ ラ ク タ : * " < > | を使 っ てはいけま せん。 末尾キ ャ ラ ク タ を ピ リ オ ド 「.」 と し てはいけません。 必須) Flash コ ー ド 内で こ のアセ ッ ト を識別する ために使用で き る、 こ のア セ ッ ト の名前。 (オプ シ ョ ン リ ス ト 。 必須) こ の構成オプ シ ョ ン リ ス ト は、 1 個ない し 複数のイ ン ス タ ン スオプ シ ョ ン リ ス ト を内容 と する こ と がで き ます。 その type オプ シ ョ ンは、 こ れら のイ ン ス タ ン スの コ レ ク シ ョ ンに対する動作を記述する こ と を支援 し ます。 た と えば、 FLV 映像フ ァ イルは、 それを 閲覧する ために、 SWF フ ァ イルを必要 と するかも し れません。 こ の構成の中における主要イ ン ス タ ン スは SWF フ ァ イルであるかも し れませんが、 その注釈は映像再生を意図 し た も のですので、 し たが っ て、 種別 Video を持つべき です。 こ の type を設定する こ と は、 そのア セ ッ ト の、 作成者 の意図する用途を提示 し ますので、 作成または編集工程の間に内容個別ユーザー イ ン タ フ ェ ース を表示する際にその選択肢を よ り 良 く 通知 し ます。 使え る オプ シ ョ ン : instances (オプ シ ョ ン リ ス ト の リ ス ト 。 必須) リ ス ト はそれぞれ、 ア セ ッ ト 1 個の単一のイ ン タ フ ェ ース を、 注釈 1 個のアー ト ワー ク を入れ込むための設定 と と も に指定 し ます。 使え るオプ シ ョ ン : asset (ハイパーテキス ト 文字列。 必須) assets オプ シ ョ ン で指定 さ れた リ ッ チ メ デ ィ ア アセ ッ ト 名。 種別 3D ・ Flash ・ Sound ・ Video の リ ッ チ メ デ ィ ア アセ ッ ト の名前のみを こ こ では指定で き ます。 params (オプ シ ョ ン リ ス ト 。 type=Flash でのみ可) 表 13.10 に従っ た、 Flash アセ ッ ト に関連する引数群。 deactivate name (ハイパーテキス ト 文字列) こ の構成の一意名。 type (キーワー ド ) こ の構成に対する主要内容種別。 有効なキーワー ド は 3D ・ Flash ・ Sound ・ Video です。 デ フ ォ ル ト : こ のシーン種別は、 instances オプ シ ョ ン リ ス ト の 1 個 目の要素で指定 さ れている フ ァ イルフ ァ イルの種別を参照する こ と によ っ て決定 さ れま す。 (オプ シ ョ ン リ ス ト ) 読み込み解除 ( リ ス タ ー ト か一時停止) の条件を指定 し ます : condition (キーワー ド ) こ の注釈がいつ起動解除 さ れるかを指定 し ます (デ フ ォ ル ト : clicked) : clicked こ の注釈は、 ユーザーア ク シ ョ ンかス ク リ プ ト に よ っ て明示的に起動解除 さ れる。 closed こ の注釈は、 こ の注釈を内容 と するページがカ レ ン ト ページ と し ての フ ォ ー カ ス を失 っ た時にただ ちに起動解除 さ れる。 invisible こ の注釈は、 こ の注釈を内容 と するページが見えな く な っ た時にただ ちに起 動解除 さ れる。 views 274 (3D ビ ュ ーハン ド ルの リ ス ト ) PDF_create_3dview( ) に よ っ て返 さ れた 3D ビ ュ ーハン ド ル。 ビ ュ ー が指定 さ れない場合には、 3D ビ ュ ーの、 レ ン ダ リ ング / ラ イ ト ニ ングモー ド 群、 背景色、 カ メ ラ デー タ と い っ た構成要素群に対 し て、 デ フ ォル ト 値群が使用 さ れます。 デ フ ォ ル ト : 空 リ ス ト 第 13 章 : マルチ メ デ ィ ア機能 表 13.8 PDF_create_annotation( ) の richmedia オプ シ ョ ンの activate サブオプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 animation (オプ シ ョ ン リ ス ト ) このアー ト ワー ク内に存在するキー フ レームアニ メ ーシ ョ ン群を駆動する希 望方式。 使え るオプ シ ョ ン : playcount (整数) 非負数は、 こ のア ニ メ ーシ ョ ンが再生 さ れる回数を表 し ます。 負数は、 こ のア ニ メ ーシ ョ ンが無限に繰 り 返 さ れる こ と を示 し ます。 デ フ ォル ト : -1 condition speed (正の float) 1 よ り 大き い値は、 こ のア ニ メ ーシ ョ ン を再生する ためにかかる時間を短 縮、 つま り こ のア ニ メ ーシ ョ ン を ス ピー ド ア ッ プ し ます。 これを利用する と 、 作成者 は、 アニ メ ーシ ョ ンの内容を オーサ リ ング し なおす こ と な く 、 その望む速度を変え る こ と がで き ます。 デ フ ォ ル ト : 1 style (キーワー ド ) そのア ニ メ ーシ ョ ン ス タ イルを指定 し ます (デ フ ォ ル ト : none) : none キー フ レームアニ メ ーシ ョ ン群は、 ビ ュ ーア ア プ リ ケーシ ョ ンに よ っ て直接 駆動 さ れるべき ではない。 この値は、 JavaScript な どの代替手段を通 じ てア ニ メ ーシ ョ ン を駆動する こ と を意図 さ れた文書に よ っ て用い ら れます。 こ の animation オプ シ ョ ンの残 り のサブオプ シ ョ ン群は無視 さ れます。 linear キー フ レームアニ メ ーシ ョ ンは最初か ら最後ま で線形に駆動 さ れる。 こ れ は、 歩行動作な どにおいて、 こ のアニ メ ーシ ョ ンの通 し 再生を繰 り 返す こ と にな り ます。 oscillating キー フ レームアニ メ ーシ ョ ンはその時間範囲に沿 っ て往復する。 こ れは、 破 片の爆発や分解な どにおいて、 こ のア ニ メ ーシ ョ ンの往復再生にな り ます。 (キーワー ド ) この注釈がいつ起動 さ れるかを指定 し ます (デ フ ォ ル ト : clicked) : clicked こ の注釈は、 ユーザーア ク シ ョ ンかス ク リ プ ト に よ っ て明示的に起動 さ れる。 opened こ の注釈は、 こ の注釈を内容 と するページがカ レ ン ト ページ と し ての フ ォ ー カ ス を得た 時にただ ちに起動 さ れる。 visible こ の注釈は、 こ の注釈を内容 と するページの任意の部分が見えた時にただ ちに起動 さ れ る。 presentation (オプ シ ョ ン リ ス ト ) この注釈 と ユーザー イ ン タ フ ェ ース要素群がどのよ う に レ イ アウ ト さ れて描 画 さ れるかを指定 し ます : 使え る オプ シ ョ ン群を表 13.9 に挙げています。 scripts (ハイパーテキス ト 文字列の リ ス ト ) PDF_load_asset( ) を用いて埋め込まれている、 かつ こ の richmedia オプ シ ョ ンのサブオプ シ ョ ン で指定 さ れた、 type=JavaScript の リ ッ チ メ デ ィ ア アセ ッ ト 群の名前群を内容 と する リ ス ト 。 空 リ ス ト は、 ス ク リ プ ト が実行 さ れない こ と を意味 し ます。 デ フ ォル ト : 空 リ ス ト view (キーワー ド か 3D ビ ュ ーハン ド ル) 3D リ ッ チ メ デ ィ アの起動ビ ュ ーを指定 し ます。 ハン ド ルは、 richmedia オプ シ ョ ン リ ス ト の views サブオプ シ ョ ンに も含まれている必要があ り ます。こ の views オプ シ ョ ンが指定 さ れない場合には、 3D ビ ュ ーの構成要素群に対するデ フ ォ ル ト 値群が用い ら れ ます。 使え るキーワー ド (デ フ ォ ル ト : first) : first richmedia オプ シ ョ ン リ ス ト の views サブオプ シ ョ ンの 1 番目の要素 13.2 アセ ッ ト ・ リ ッ チ メ デ ィ ア機能 (Flash) 275 表 13.9 PDF_create_annotation( ) の richmedia オプ シ ョ ンの activate サブオプ シ ョ ンの presentation サブオプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 navigationpane (論理値) ナビゲーシ ョ ンパネルユーザー イ ン タ フ ェ ース要素のデ フ ォ ル ト 動作。 true の場合、 こ の内容が初期起動 さ れる際にナ ビゲーシ ョ ンパネルは表示 さ れます。 デ フ ォル ト : false passcontextclick (論理値) こ の リ ッ チ メ デ ィ ア注釈上での コ ン テキス ト ク リ ッ ク が メ デ ィ ア プ レーヤ ラ ン タ イ ムへ 渡 さ れるか、 それ と も PDF ビ ュ ーアに よ っ て処理 さ れるかを指定 し ます。 false の場合、 PDF ビ ュ ーアが こ の コ ン テキス ト ク リ ッ ク を処理 し ます。 true の場合、 PDF ビ ュ ーアの コ ン テキス ト メ ニ ュ ーは表示 さ れず、 ユーザーは メ デ ィ ア プ レーヤ ラ ン タ イ ムに よ っ て生成 さ れた コ ン テキス ト メ ニ ュ ー と 任意のカ ス タ ムア イ テム群を目に し ます。 デ フ ォル ト : false style (キーワー ド ) こ の リ ッ チ メ デ ィ アがどのよ う に表示 さ れるかを指定 し ます (デ フ ォ ル ト : embedded) : embedded PDF ページ内に埋め込まれて windowed window オプ シ ョ ン リ ス ト によ っ て指定 さ れた別ウ ィ ン ド ウ内で toolbar (論理値) こ の注釈に紐付け ら れた イ ン タ ラ ク テ ィ ブ ツールバーのデ フ ォル ト 動作。 true の場合、 こ の注釈が起動 さ れて フ ォ ー カ ス を与え られた時に ツールバーが表示 さ れます。 デ フ ォ ル ト : type=3D では true、 それ以外では false transparent (論理値) ページ内容が こ の リ ッ チ メ デ ィ ア内容の透過領域を通 し て表示 さ れるかど う かを指定 し ます。 true の場合、 こ の リ ッ チ メ デ ィ ア アー ト ワー クはページ内容の上にアル フ ァ チ ャ ン ネルを 用いて合成 さ れます。 false の場合、 こ の リ ッ チ メ デ ィ ア アー ト ワー クはページ内容の上に合成 さ れる前に不透明な背景の上に描画 さ れます。 デ フ ォル ト : false window (オプ シ ョ ン リ ス ト ) style=windowed に対する フ ローテ ィ ングウ ィ ン ド ウのサイ ズ と 位置。 座標は usercoordinates オプ シ ョ ンに応 じ てユーザーまたはデ フ ォル ト 座標で表 さ れます。 その動作は注釈オプ シ ョ ン zoom ・ rotate がに設定 さ れている場合 と 同様です。 使え るサブオプ ション : heightdefault (float) こ のウ ィ ン ド ウのデ フ ォル ト 高 さ 。 デ フ ォ ル ト : 216 (デ フ ォル ト 座標で) widthdefault (float) こ のウ ィ ン ド ウのデ フ ォル ト 幅。 デ フ ォ ル ト : 288 (デ フ ォ ル ト 座標で) 276 第 13 章 : マルチ メ デ ィ ア機能 表 13.10 PDF_create_annotation( ) の option オプ シ ョ ンの configurations サブオプ シ ョ ンの instances サブオプ シ ョ ンの params サブオプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン binding 説明 (キーワー ド ) この Flash 内容がどの実体に固着 し ているかを指定 し ます (デ フ ォル ト : none) : background こ の Flash 内容は背景に固着 し てお り 、 ア ク テ ィ ブ な注釈内のすべての 3D モデル内容 と Flash 前面要素群の背面に レ ン ダ さ れる。 ある 1 個の リ ッ チ メ デ ィ ア注釈に対 し て は、 binding=background を伴 う params オプ シ ョ ン リ ス ト を持つア ク テ ィ ブ な イ ン ス タ ン スは 1 個ある こ と がで き ます。 複数指定 さ れている場合には、 その背景に対 し て指定 さ れた最後のイ ン ス タ ン スが用い ら れます。 foreground こ の Flash 内容は前目に固着 し てお り 、 ア ク テ ィ ブ な注釈内の 3D モデル と 背景 Flash 内 容の前面に レ ン ダ さ れる。 複数のイ ン ス タ ン スが binding=foreground を持つ場合、 そ の Flash 内容は背面から 前面へ順に レ ン ダ さ れ、 各イ ン ス タ ン スはそれ以前のイ ン ス タ ン ス群の上にそのアル フ ァ チ ャ ン ネルを用いて合成 さ れます。 cuepoints material こ の Flash 内容は 3D 内容の一部である素材に固着 し ている。その素材が 3D シーン内の形 状に適用 さ れている場合には、 その Flash オブ ジ ェ ク ト はこ のオブ ジ ェ ク ト 上で、 こ の オブ ジ ェ ク ト の表面に貼 り 付いているかのよ う に再生 し ている よ う に見え ます。 none こ の Flash 内容は固着 さ れてお ら ず、 再生時に見えない。 (オプ シ ョ ン リ ス ト の リ ス ト ) 映像はキ ュ ーポ イ ン ト 群を含む こ と がで き ます。 こ のキ ュ ーポ イ ン ト は、 その映像ス ト リ ーム内に符号化 さ れているか、 あ るいはその Flash 内容内の連携 ActionScript に よ っ て作成 さ れる こ と も で き ます。 各オプ シ ョ ン リ ス ト は、 そのキ ュ ーポ イ ン ト を ア ク シ ョ ンに関連付ける ス テー ト を指定 し ます。、 こ のア ク シ ョ ンは、 ア プ リ ケーシ ョ ンへ渡す こ と も で き ます し 、 あ るいは体裁を変え る ために使 う こ と も で き ます。 その Flash 内容内のキ ュ ーポ イ ン ト 群が、 PDF フ ァ イル内で name ま たは time オプ シ ョ ン群に よ っ て指定 さ れた値群によ っ て 宣言 さ れたキ ュ ーポ イ ン ト 群 と マ ッ チ さ れます。 使え るオプ シ ョ ン : action name flashvars (ア ク シ ョ ン リ ス ト ) こ のキ ュ ーポ イ ン ト が ト リ ガ さ れた、 すなわち こ の Flash 内容がそ の再生中に こ れにマ ッ チするキ ュ ーポ イ ン ト に達 し た場合に実行 さ れる ア ク シ ョ ン。 activate このキ ュ ーポ イ ン ト が ト リ ガ さ れた、すなわち こ の Flash 内容がその再生中に これにマ ッ チするキ ュ ーポ イ ン ト に達 し た場合に実行 さ れる ア ク シ ョ ン。 (テキス ト 文字列。 必須) こ のキ ュ ーポ イ ン ト の名前。 こ の Flash 内容内のキ ュ ーポ イ ン ト に対 し てマ ッ チ さ れます。 また、 表示に も用い られます。 time (float。 必須) こ のキ ュ ーポ イ ン ト の時刻値を ミ リ 秒単位で表 し た もの。 この Flash 内容 内のキ ュ ーポ イ ン ト に対 し てマ ッ チ さ れます。 また、 表示に も 用い ら れます。 なお、 Acrobat 9 ・ X は こ の タ イ ムス タ ン プ を無視 し ます。 ダ ミ ー値を与え る こ と も で き ます。 type (キーワー ド ) こ のキ ュ ーポ イ ン ト の種別 Event イ ベン ト と は、 照応する ア ク シ ョ ンが ト リ ガ さ れる こ と 以外何の特徴 も ない 汎用のキ ュ ーポ イ ン ト です。 Navigation ナ ビゲーシ ョ ンキ ュ ーポ イ ン ト と は、 Flash ムービー (FLV) 内に符号化 さ れ た イ ベン ト です。 ユーザーがチ ャ プ タ ーへ飛ぶ こ と やチ ャ プ タ ーを スキ ッ プ する こ と を要求 し た時に、 ナ ビゲーシ ョ ンキ ュ ーポ イ ン ト を用いてそのチ ャ プ タ ーの位置を示す こ と がで き る よ う 、 チ ャ プ タ ース ト ッ プ を符号化する こ と が可能です。 (ハイパーテキス ト 文字列) 起動 さ れた時に Flash プ レーヤ コ ン テキス ト へ渡 さ れる、 整形 さ れた 名前 ・ 値ペア。 こ の形式の仕様については、 www.adobe.com/go/tn_16417 で入手で き る文書 「Using FlashVars to pass variables to a SWF」 (TechNote tn_16417) を参照 し て く だ さ い。 デ フ ォ ル ト : Flash プ レーヤへ何のデー タ も 送られない materialname (ハイパーテキス ト 文字列。 binding=material では必須) 内容を紐付け し たい素材名。 13.2 アセ ッ ト ・ リ ッ チ メ デ ィ ア機能 (Flash) 277 表 13.10 PDF_create_annotation( ) の option オプ シ ョ ンの configurations サブオプ シ ョ ンの instances サブオプ シ ョ ンの params サブオプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 settings (ハイパーテキス ト 文字列) Flash イ ン ス タ ン スに紐付け ら れた設定情報を格納する ために用い ら れる テキス ト 文字列。 この値は、 ActionScript の ExternalInterface コ マ ン ド multimedia_ loadSettingsString に よ っ て渡 さ れます。 デ フ ォ ル ト : undefined 278 第 13 章 : マルチ メ デ ィ ア機能 14 文書交換 14.1 文書情報 フ ィ ール ド C++ Java C# void set_info(String key, String value) Perl PHP set_info(string key, string value) C void PDF_set_info(PDF *p, const char *key, const char *value) C void PDF_set_info2(PDF *p, const char *key, const char *value, int len) 文書情報フ ィ ール ド key に value を書 き 込みます。 key (名前文字列) 文書情報フ ィ ール ド の名前。 標準フ ィ ール ド 名のいずれか、 ま たは任 意のカ ス タ ム フ ィ ール ド 名を用い る こ と がで き ます (表 14.1 参照)。 カ ス タ ム フ ィ ール ド の数に制限は あ り ま せん。 カ ス タ ム文書情報 フ ィ ール ド の利用 と 意味づけ に関 し て は、 Dublin Core Metadata 要素セ ッ ト を一読す る こ と を PDFlib ユーザーに奨励 し ます。1 value (ハ イ パーテ キ ス ト 文字列) key 引数に設定 し たい文字列。 Acrobat では、 value に 最大長 255 バ イ ト と い う 制約が課 さ れてい ます。 len (PDF_set_info2( ) のみ、 かつ C 言語バ イ ンデ ィ ン グのみ) value の長 さ (バ イ ト 単 位)。 len=0 にす る と null 終了文字列を与え る 必要があ り ます。 詳細 与え る 情報の値は、 カ レ ン ト 文書にだけ使われ る ので、 同 じ オブ ジ ェ ク ト ス コ ープの中で 生成す る 文書すべ て に 使 わ れ る わ け で は あ り ま せ ん。 PDF_begin/end_document( ) に autoxmp オプ シ ョ ン を 与え て あ る と 、 PDF_set_info( ) に与え た情報 フ ィ ール ド 群か ら 、 PDFlib が自動的に XMP 文書 メ タ デー タ を同期作成 し ます。 文書情報フ ィ ール ド 群は、 PDF_begin/end_document( ) の metadata オプシ ョ ンに与え ら れ る XMP 文書 メ タ デー タ 内の照応す る プ ロ パテ ィ 群をオーバ ラ イ ド し ます。 PDF/X key=Title と key=Creator を持つ情報フ ィ ール ド には、空でない値を与え る 必要があ り ます。 あ る いは、 PDF/X-4 ・ PDF/X-5 では、 PDF_begin_document( ) の metadata オプシ ョ ンで dc:title ・ xmp:CreatorTool XMP プ ロ パテ ィ を与え る こ と も で き ます。 Trapped 情報フ ィ ール ド では値 True と False のみが許容 さ れます。 PDF/UA key=Title を持つ情報フ ィ ール ド には、 空でない値を与え る 必要があ り ます。 あ る いは、 PDF_begin_document( )のmetadataオプシ ョ ンでdc:title XMPプ ロ パテ ィ を与え る こ と も で き ます。 スコープ 任意。 オブ ジ ェ ク ト ス コ ープで使 う と 、 与え る 値は次の文書にのみ使われます。 表 14.1 文書情報 フ ィ ール ド に対するキー キー 説明 Subject 文書のサブ タ イ ト ル Title 文書の タ イ ト ル 1. dublincore.org 参照 14.1 文書情報 フ ィ ール ド 279 表 14.1 文書情報フ ィ ール ド に対するキー キー 説明 Creator 文書の作成に使用 さ れた ソ フ ト ウ ェ ア (PDF 生成ソ フ ト ウ ェ ア を示す Producer と は別です。 Producer はつねに PDFlib にな り ます)。 Acrobat では、 この項目は 「ア プ リ ケーシ ョ ン」 と 表示 さ れます。 Author 文書の作成者 Keywords 文書の内容を記述 し たキーワー ド Trapped 文書に ト ラ ッ ピ ングが適用 さ れているかど う かを表 し ます。 と り う る値は True ・ False ・ Unknown。 その他任意の名前 ユーザー定義の文書情報 フ ィ ール ド 。 PDFlib は、 任意の数のフ ィ ール ド に対 応 し ています。 1 つのカ ス タ ム フ ィ ール ド 名は一度 し か与えてはいけません。 PDF_begin/end_document( ) の moddate オプ シ ョ ン も参照。 XMP メ タ デー タ が作成 さ れる (autoxmp または metadata オプ シ ョ ンによ っ て) 場合は、 カ ス タ ム文書情報 フ ィ ール ド には、 以下のいずれのキ ャ ラ ク タ を も 含めてはいけません : & \ < > " 空白 標準識別に用い ら れる フ ィ ール ド は許容 さ れません。 280 第 14 章 : 文書交換 14.2 XMP メ タ デー タ XMP メ タ デー タ は、 文書全体か、 個別のページ ・ フ ォ ン ト ・ ICC プ ロ フ ァ イ ル ・ 画像 ・ テ ン プ レ ー ト ・ 取 り 込み PDF ページに対 し て与え る こ と がで き ま す。 さ ま ざ ま な関数の metadata オプシ ョ ンのサブオプシ ョ ン を表 14.2 に示 し ます。 表 14.2 PDF_begin/end_document( ) ・ PDF_begin/end_page_ext( ) ・ PDF_load_font( ) ・ PDF_load_iccprofile( ) ・ PDF_load_ image( ) ・ PDF_begin_template_ext( ) ・ PDF_open_pdi_page( ) の metadata オプ シ ョ ン と PDF_load_graphics( ) の templateoptions オプ シ ョ ンのサブオプ シ ョ ン オプ シ ョ ン 説明 compress (論理値。 PDF_begin/end_document( ) では不可) PDF 出力内の XMP メ タ デー タ ス ト リ ームを圧縮 し ます。 こ のオプ シ ョ ン を PDF_begin_page_ext( ) でのみ与え、 PDF_end_page_ext( ) で与えない と 、 そ の値はデ フ ォル ト よ り も優先 さ れます。 デ フ ォ ル ト : false PDF/A-1 ・ PDF/X : compress=true は許 さ れません。 inputencoding (キーワー ド ) filename で与えた メ タ デー タ を解釈する ためのエ ン コ ーデ ィ ン グ。 デ フ ォル ト : unicode inputformat (キーワー ド ) filename で与えた メ タ デー タ の形式。 デ フ ォ ル ト : utf8、 ただ し inputencoding が 8 ビ ッ ト エ ン コ ーデ ィ ングの と きは bytes keepxmp (論理値。 PDF_load_image( ) ・ PDF_load_graphics( ) でのみ可。 filename と の組み合わせ不可) 画像ま たはグ ラ フ ィ ッ ク フ ァ イル内に存在する XMP メ タ デー タ が保持 さ れます。 すなわち、 PDF 文書内 の生成画像に付け られます。 XMP メ タ デー タ は、 TIFF ・ JPEG ・ JPEG 2000 画像形式内 と SVG グ ラ フ ィ ッ ク内で効力を持ち ます。 画像ま たはグ ラ フ ィ ッ ク フ ァ イル内に XMP メ タ デー タ が見つか ら ない と きは、 こ のオプ シ ョ ンは何の効力も持ち ません。 デ フ ォル ト : false filename (名前文字列。 keepxmp を与えなければ必須) 整形式 XMP メ タ デー タ を内容 と し て持つ フ ァ イルの 名前。 こ れは filenamehandling グ ローバルオプ シ ョ ン に従っ て解釈 さ れます (表 2.3 参照)。 PDF/A PDF/A のための XMP 識別プ ロ パテ ィ 群は自動的に作成 さ れます。 PDFlib は、ユーザーが与え た XMP ス ト リ ームの中の関連項目群を、標準文書情報フ ィ ー ル ド 群へ同期 さ せます (autoxmp モー ド が文書情報フ ィ ール ド を XMP へ同期 さ せ る の と 同様です)。 ただ し 、 PDFlib はそれ以外の XMP 項目群を カ ス タ ム文書情報フ ィ ール ド 群へ 同期 さ せ る こ と は し ません。 XMP 文書 メ タ デー タ に対す る さ ら な る PDF/A 必要条件群を PDFlib チ ュ ー ト リ アルで説明 し てい ます。 以下の検証が XMP メ タ デー タ に対 し て行われ ます : > PDF/A-1 : 文書レベル XMP が、XMP 2004 に準拠する か、 あ る いは拡張ス キーマ記述を 含む必要があ り ます。文書レベルXMPのための ス キーマ記述は、PDF_begin_document( ) か PDF_end_document( ) で与え る こ と がで き ます。 > PDF/A-2/3:文書レベルお よ び コ ン ポーネ ン ト レベル (ページ等) の XMP が、XMP 2005 に準拠す る か、 あ る いは拡張 ス キーマ記述を含む必要があ り ます。 コ ン ポーネ ン ト レ ベル XMP のための ス キーマ記述は、 それぞれの コ ン ポーネ ン ト レベル XMP を用いて (PDF_begin_page_ext( ) 内な ど で)、 あ る いは、 PDF_begin_document( ) の中で文書レベ ル XMP を用いて与え る こ と がで き ます。 PDF/X PDF/X-4/5 のための XMP 識別プ ロ パテ ィ 群は自動的に作成 さ れます。 PDF/VT PDF/VT のための XMP 識別プ ロ パテ ィ 群は自動的に作成 さ れます。 PDF/UA PDF/UA のための XMP 識別プ ロ パテ ィ 群は自動的に作成 さ れます。 14.2 XMP メ タ デー タ 281 14.3 タ グ付 き PDF タ グ付き PDF を生成す る には、 PDF_begin_document( ) で tagged オプシ ョ ンが true に設 定 さ れてい る 必要があ り ます。 タ グ付 き PDF モー ド は、 PDF/A-1a/2a/3a ・ PDF/UA 規格 では自動的に起動 さ れます。 タ グ付き PDF を作成す る 際には PDF/UA 規則群に従 う こ と を強 く 推奨 し ます。 ク ッ ク ブ ッ ク 完全な コ ー ド サン プルがク ッ ク ブ ッ ク の interchange/starter_pdfua1 ト ピ ッ ク にあ り ま す。 C++ Java C# int begin_item(String tagname, String optlist) Perl PHP int begin_item(string tagname, string optlist) C int PDF_begin_item(PDF *p, const char *tagname, const char *optlist) タ グ付 き PDF のために構造エ レ メ ン ト かその他の コ ン テ ン ツ エ レ メ ン ト を開 き ます。 tagname そのア イ テ ムのエ レ メ ン ト 構造種別の名前。 表 14.3 に従っ て、 以下のグルー プのエ レ メ ン ト 種別を使え ます (詳 し く は PDFlib チ ュ ー ト リ アルを参照) : > 標準エ レ メ ン ト 種別群 (標準エ レ メ ン ト 種別群の詳 し い説明は PDFlib チ ュ ー ト リ アル にあ り ます) > 構造エ レ メ ン ト ではない擬似エ レ メ ン ト 種別群 > タ グ名 Plib_custom_tag は、 カ ス タ ムエ レ メ ン ト 種別の使用を暗黙に前提 し ます ( こ れ は customtag=true と 等価です)。 実際の タ グ名を tagname オプシ ョ ンで与え る 必要が あ り ます。 カ ス タ ム エ レ メ ン ト 種別群は rolemap 文書オプシ ョ ン を必要 と し ます。 あ る いは タ グ名を、 こ の引数を オーバ ラ イ ド す る tagname オプシ ョ ン を通 じ て与え る こ と も で き ます。 表 14.3 PDF_begin_item( ) ・ PDF_begin_mc( ) ・ PDF_mc_point( ) の、 および さ ま ざ ま な関数の tag オプ シ ョ ンの、 標 準 ・ 擬似 ・ カ ス タ ムエ レ メ ン ト 種別 カテゴ リ タグ 標準構造エ レ メ ン ト 種別群 グループ化 Document ・ Part ・ Art ・ Sect ・ Div ・ BlockQuote ・ Caption ・ TOC ・ TOCI ・ Index ・ NonStruct ・ Private 見出 し と 段 落 P ・ H ・ H1 ・ H2 ・ H3 ・ H4 ・ H5 ・ H6 ・ H7 ・ H8 な ど (BLSE) ラ ベル と 箇 条書き L ・ LI ・ Lbl ・ LBody (BLSE) テーブル Table (BLSE) ・ TR ・ TH ・ TD ・ THead1 ・ TBody1 ・ TFoot1 (テーブル タ グはすべて、 PDF_fit_table( ) によ っ て自動的に作成 さ れる こ と も で き ます。 PDFlib チ ュ ー ト リ アル参照) インライン Span ・ Quote ・ Note ・ Reference ・ BibEntry ・ Code ・ Link ・ Annot1 (ILSE、 ただ し オプ シ ョ ン inline=false を用いて BLSE へ変え る こ と も で き ます) イラス ト レーシ ョ ン Figure ・ Formula ・ Form (ILSE) 日本語 Ruby1 (グループ化) ・ RB1 ・ RT1 ・ RP1 ・ Warichu1 (グループ化) ・ WT1 ・ WP1 282 第 14 章 : 文書交換 表 14.3 PDF_begin_item( ) ・ PDF_begin_mc( ) ・ PDF_mc_point( ) の、 および さ ま ざ ま な関数の tag オプ シ ョ ンの、 標 準 ・ 擬似 ・ カ ス タ ムエ レ メ ン ト 種別 カテゴ リ タグ 擬似エ レ メ ン ト 種別群 非構造化エ レメン ト群 Artifact ページの本文か ら区別するべき ページ装飾。 (ア ク セ シ ビ リ テ ィ スパン。 PDF には Span と し て書き込まれますが、 イ ン ラ イ ン ア イ テ ム Span と は区別する必要があ り ます) こ れを使 う と 、 構造エ レ メ ン ト に属 さ ない コ ン テ ン ツや、 構造エ レ メ ン ト の一部分に似た コ ン テ ン ツに対 し て、 ア ク セ シ ビ リ テ ィ 属性 群を与え る こ と がで き ます。 ReversedChars (非推奨) 文字の並び順が反対にな っ ている右書きの言語のテキス ト を指定 し ます。 ASpan Clip (非推奨) マー ク付き切 り 抜き シーケ ン ス を指定 し ます。 すなわち、 ク リ ッ ピ ングパス または表現モー ド 7 のテキス ト のみを指定 し ます。 表示 さ れる グ ラ フ ィ ッ ク または PDF_save( ) / PDF_restore( ) を含みません。 カ ス タ ムエ レ メ ン ト 種別群 ユーザー定 義エ レ メ ン ト群 tag 引数では タ グ名 Plib_custom_tag を与え る必要があ り ます。 PDF へ書き込まれる実際の タ グ名 を tagname オプ シ ョ ン で与え る必要があ り ます。 カ ス タ ムエ レ メ ン ト 種別群は rolemap 文書オプ シ ョ ン を必要 と し ます。 1. 要 PDF 1.5 以上 optlist ア イ テ ムの詳細を指定 し たオプシ ョ ン リ ス ト 。 継承可能な設定はすべて子エ レ メ ン ト へ継承 さ れますので、 繰 り 返す必要はあ り ません。 ア イ テ ムのプ ロ パテ ィ は後で変更 で き ないので、 すべて こ こ で設定す る 必要があ り ます。 以下のオプシ ョ ンが使え ます : > 一般オプシ ョ ン : hypertextencoding (表 2.3 参照) > 表 14.4 に従っ た タ グ制御 ・ ア ク セシ ビ リ テ ィ オプシ ョ ン群 : ActualText ・ Alt ・ customtag ・ E ・ inline ・ Lang ・ tagname ・ Placement ・ Title > 表 14.4 に従っ た、 ページ装飾に関連す る オプシ ョ ン : artifactsubtype ・ artifacttype ・ Attached > 表 14.4 に従っ た テーブル関連オプシ ョ ン : ColSpan ・ Headers ・ id ・ RowSpan ・ Scope ・ Summary > 表 14.4 に従っ た幾何情報オプシ ョ ン : BBox ・ Height ・ usercoordinates ・ Width > 表 14.4 に従っ た、 エ レ メ ン ト ど う し の関係のためのオプシ ョ ン : index?parent > 表 14.4 に従っ た、 し お り を付け る ためのオプシ ョ ン : bookmark > 表 14.4 に従っ た、 箇条書 き 特性を指定す る ためのオプシ ョ ン : ListNumbering > 表 14.4 に従っ た、 ネ ス ト さ れた構造エ レ メ ン ト を挿入す る ためのオプシ ョ ン : tag 戻り値 ア イ テ ムハン ド ル。 以後のア イ テ ム関連の呼び出 し で使え ます。 詳細 新規構造エ レ メ ン ト ま たはページ装飾 (ま と めて ア イ テム と いい ます) を開始 し ます。 デ フ ォ ル ト では、 こ の新規エ レ メ ン ト は、 カ レ ン ト でア ク テ ィ ブなア イ テ ムの子 と し て挿入 さ れます。 し か し 、 parent ・ index オプシ ョ ン を用いて、 構造ツ リ ー内の別の場所を指定 す る こ と も で き ます。 構造エ レ メ ン ト は、 任意の レベルにネ ス ト で き ます。 疑似 ・ イ ン ラ イ ン種別を除 き 、 構造エ レ メ ン ト は、 それが開かれたページに縛 ら れず、 任意の数のペー ジへ続 く こ と も で き ます。 空の構造エ レ メ ン ト は避け る こ と が推奨 さ れます。 構造エ レ メ ン ト と Alt/ActualText 属性は、PDFlib チ ュ ー ト リ アル内の諸規則に従っ て適 切にネ ス ト さ れ る 必要があ り ます。い く つかの装飾的要素は自動的にページ装飾 と し て タ 14.3 タ グ付き PDF 283 グ付け さ れます。 詳 し く は PDFlib チ ュ ー ト リ アルを参照 し て く だ さ い。 PDF/A PDF/A-1a/2a/3a では タ グ付けは必須ですが、 タ グ用途やネ ス ト 化について具体的な必要 条件はあ り ません。 PDF/UA すべてのテ キ ス ト に自然言語指定が必須です。 すべての画像 ・ グ ラ フ ィ ッ ク 内容は Artifact か Figure と し て タ グ付け さ れ る 必要があ り ま す。 追加の規則群が さ ま ざ ま なエ レ メ ン ト 種別 と オプシ ョ ンに適用 さ れます(PDFlib チ ュ ー ト リ アル参照)。 スコープ ページ。 グループ化エ レ メ ン ト の場合は文書 も 。 照応する PDF_end_item( ) と 必ずペアに し て呼び出す必要があ り ます。 こ の関数は タ グ付 き PDF モー ド でのみ使え ます。 表 14.4 PDF_begin_item( ) の、 および さ ま ざ ま な関数の tag オプ シ ョ ン を用いた短縮 タ グ付けの、 構造 ・ 擬似 タ グの ためのオプ シ ョ ン。 い く つかのオプ シ ョ ンは PDF_begin_mc( ) ・ PDF_mc_point( ) で も使用可能です。 オプ シ ョ ン 説明 ActualText (ハイパーテキス ト 文字列。 PDF 1.5 における ASpan 以外の擬似 タ グでは不可。 PDF 1.4 モー ド で使 う と きは、 inline オプ シ ョ ン を false に設定する必要があ り ます) コ ン テ ン ツ ア イ テム と その子 群に対する等価な代替テキス ト 。 Alt (ハイパーテキス ト 文字列。 PDF 1.5 における ASpan 以外の擬似 タ グでは不可。 PDF 1.4 モー ド で使 う と きは、 inline オプ シ ョ ン を false に設定する必要があ り ます) コ ン テ ン ツ ア イ テム と その子 群に対する代替説明 と し ての単語か句。 図や画像な ど、 テキス ト と し て認識で き ない ものに対 し て与え る必要があ り ます。 artifactsubtype (キーワー ド 。 tagname=Artifact かつ artifacttype=Pagination でのみ可。 PDF 1.7) ページ装飾 の下位種別 : Header ・ Footer ・ Watermark artifacttype (キーワー ド 。 tagname=Artifact でのみ可) コ ン テ ン ツ ア イ テムのページ装飾種別を指定 し ます : Pagination ラ ン ニ ングヘ ッ ダやページ番号 と い っ た付随的なページ機能。 Layout 脚注罫線や表の背景色 と い っ た タ イ ポグ ラ フ ィ またはデザイ ン要素。 Page ト ンボやカ ラ ーバー と い っ た印刷支援。 Background (PDF 1.7) ページか構造エ レ メ ン ト の長 さ い っ ぱい、 および / または幅い っぱいにわた る画像か色付き ブ ロ ッ ク Attached (キーワー ド の リ ス ト 。 tagname=Artifact かつ artifacttype=Pagination か Background で、 ペー ジ全体の背景ページ装飾を持つ場合のみ可) ページ装飾が論理的に添付 さ れる、 ページの辺を、 も し あれば指定 し ます。 こ の リ ス ト は、 1 ~ 4 個のキーワー ド Top ・ Bottom ・ Left ・ Right を内容 と し ます。 Left と Right の両方、 または Top と Bottom の両方を含む場合は、 ページ装飾がそれぞ れ幅い っぱいか高 さ い っぱいであ る こ と を示 し ます。 BBox (長方形。 tagname=Artifact ・ Figure ・ Form ・ Table でのみ可。 artifacttype=Background では必 須、 それ以外ではオプ シ ョ ナル、 ただ し Reflow では推奨) こ のエ レ メ ン ト の外接枠を、 デ フ ォル ト 座標で (usercoordinates=false の場合)、 あるいはユーザー座標で (usercoordinates=true の 場合) 表 し た もの。 PDFlib は、 配置 さ れた画像 ・ グ ラ フ ィ ッ ク ・ PDF ページ (tagname=Figure か Artifact を持つ) ・ フ ォ ーム フ ィ ール ド (tagname=Form か Artifact を持つ) と 、 表エ ン ジ ン によ っ て作成 さ れた表 (tagname=Table か Artifact を持つ) に対 し て、 自動的に こ の BBox を作成 し ま す。 bookmark ( し お り ハン ド ル。 イ ン ラ イ ン ・ 疑似 タ グでは不可) この構造エ レ メ ン ト と 紐付け られる し お り に 対するハン ド ル。 ColSpan (整数。 tagname=TH ・ TD でのみ可) テーブルのセルがわた る列の数。 デ フ ォル ト : 1 284 第 14 章 : 文書交換 表 14.4 PDF_begin_item( ) の、 および さ ま ざ ま な関数の tag オプ シ ョ ン を用いた短縮 タ グ付けの、 構造 ・ 擬似 タ グの ためのオプ シ ョ ン。 い く つかのオプ シ ョ ンは PDF_begin_mc( ) ・ PDF_mc_point( ) で も使用可能です。 オプ シ ョ ン 説明 contents (文字列。 PDF_begin_mc( ) でのみ可) マー ク付き コ ン テ ン ツ シーケ ン ス を記述する コ ン テ ン ツ文字 列。 customtag (論理値。 rolemap 文書オプ シ ョ ン を必要 と し ます) true の場合、 tagname オプ シ ョ ン で与え られ たエ レ メ ン ト 種別名は、 rolemap 文書オプ シ ョ ン を通 じ て標準エ レ メ ン ト 種別へマ ッ プ さ れる必要 のある カ ス タ ムエ レ メ ン ト 種別です。 デ フ ォル ト : false こ のオプ シ ョ ン を true に設定する こ と は、 引数 tagname=Plib_custom_tag を与え る こ と と 等価で す。 E (ハイパーテキス ト 文字列。 ASpan 以外の擬似 タ グでは不可。 TagSuspect では不可。 構造 タ グに対 し ては要 PDF 1.5) コ ン テ ン ツ ア イ テムに対する略語の展開形。 略語や頭字語を説明する ためには 与え る必要があ り ます。 Acrobat の読み上げ機能は、 展開テキス ト を、 た と え明示的な単語区切 り がな く て も、 独立 し た単語 と し て扱います。 Headers (文字列の リ ス ト 。 tagname=TH ・ TD でのみ可。 PDF 1.5) この リ ス ト の各文字列は、 このセルに紐 付いた テーブルヘ ッ ダセル (TH エ レ メ ン ト ) の識別子です。 こ の識別子 (群) は、 その タ ーゲ ッ ト セルに、 その id オプ シ ョ ン を用いて割 り 当て られている必要があ り ます。 複数のヘ ッ ダセルが 参照 さ れる場合には、 テーブル行ヘ ッ ダ群を テーブル列ヘ ッ ダ群よ り 前に挙げるべき です。 こ れ ら のグループ名では、 ヘ ッ ダ群は、 最も 個別な ものか ら最も 汎用な ものへ と 並べるべき です。 Height (float。 tagname=Figure ・ Form ・ Formula ・ Table ・ TD ・ TH でのみ可) こ のエ レ メ ン ト の高 さ を、 デ フ ォ ル ト 座標で (usercoordinates=false の場合)、 あるいはユーザー座標で (usercoordinates=true の場合) 表 し た も の。 id (文字列。 疑似エ レ メ ン ト と 、 Note 以外のイ ン ラ イ ン エ レ メ ン ト では不可) こ のエ レ メ ン ト に識別 子を割 り 当て ます。 こ の文字列は、 すべての構造エ レ メ ン ト の中で一意である必要があ り ます。 index (整数。 擬似 タ グでは不可) エ レ メ ン ト を親の中に挿入 し たい位置の、 ゼロか ら始ま る番号。 この 位置から 開始 し て、 その親の既存の子孫群が上方へシ フ ト さ れてい き ます。 0 から 、 カ レ ン ト の子 の数ま での値を与え る こ と がで き ます。 値 -1 は、 こ のエ レ メ ン ト を末尾に、 すなわち新規の最近 ア イ テム と し て追加 し ます。 こ れは、 カ レ ン ト のエ レ メ ン ト 数を index と し て与え る こ と と 等価 です。 デ フ ォル ト : -1 inline (論理値。 tagname=Code ・ BibEntry ・ Note ・ Quote ・ Reference ・ Span でのみ可) true にする と 、 コ ン テ ン ツ ア イ テムはイ ン ラ イ ン で書き込まれ、 構造エ レ メ ン ト は作成 さ れません。 デ フ ォル ト : true Lang (文字列。 ASpan 以外の擬似 タ グでは不可) コ ン テ ン ツ ア イ テムの言語識別子を、 表 3.1 の lang オ プ シ ョ ン で説明 し ている形式で指定 し ます。 こ れを使 う と 、 文書全体の言語を、 個々の コ ン テ ン ツ ア イ テムについてオーバラ イ ド する こ と が可能です。 PDF/UA-1 : 自然言語を、 こ のオプ シ ョ ン を用いて、 または PDF_begin_document( ) の lang オプ シ ョ ン を用いて指定する必要があ り ます。 14.3 タ グ付き PDF 285 表 14.4 PDF_begin_item( ) の、 および さ ま ざ ま な関数の tag オプ シ ョ ン を用いた短縮 タ グ付けの、 構造 ・ 擬似 タ グの ためのオプ シ ョ ン。 い く つかのオプ シ ョ ンは PDF_begin_mc( ) ・ PDF_mc_point( ) で も使用可能です。 オプ シ ョ ン 説明 ListNumbering (キーワー ド 。 tagname=L でのみ可。 PDF/UA-1 では必須。 PDF/UA-1 では、 LI のいずれの子も エ レ メ ン ト を内容 と し ない箇条書き では None と する必要があ り ます) 番号付き箇条書き内の Lbl エ レ メ ン ト 群の コ ン テ ン ツに対 し て用い ら れる付番系列、 あ るいは番号な し 箇条書き内の各項目の 頭に付 く 記号 (デ フ ォ ル ト : None) : Circle 白丸ビ ュ レ ッ ト Decimal 10 進ア ラ ビ ア数字 (1 ~ 9、 10 ~ 99、 …) isc 黒丸ビ ュ レ ッ ト LowerAlpha 英小文字 (a, b, c, ...) LowerRoman ローマ数字小文字 (i, ii, iii, iv, ...) None 自動付番な し 。 Lbl エ レ メ ン ト 群 (も し あれば) が、 付番な し で任意のテキス ト を内容 と する。 こ の場合には、 こ の箇条書きのラ ベル群を表現するすべてのグ ラ フ ィ ッ ク を Artifact と し てマー ク する必要があ り ます。 Square 黒四角ビ ュ レ ッ ト UpperAlpha 英大文字 (A, B, C, ...) UpperRoman ローマ数字大文字 (I, II, III, IV, ...) parent (ア イ テムハン ド ル。 擬似 タ グでは不可) こ のエ レ メ ン ト の親。 以前に PDF_begin_item( ) を、 また は PDF_get_option( ) の activeitemid キーワー ド を呼び出 し て返 さ れたハン ド ルです。 値 0 は、 構 造ツ リ ーのルー ト を参照 し ます。 -1 は、 カ レ ン ト でア ク テ ィ ブ な エ レ メ ン ト を参照 し ます。 いい かえれば parent=-1 は、 カ レ ン ト エ レ メ ン ト の子を開き ます。 擬似 ・ イ ン ラ イ ン エ レ メ ン ト 種別 は親 と し て許容 さ れません。 デ フ ォ ル ト : -1 Placement (キーワー ド 。 擬似エ レ メ ン ト と イ ン ラ イ ン エ レ メ ン ト Span ・ Quote ・ Note ・ Reference ・ BibEntry ・ Code に対 し ては不可) エ レ メ ン ト の、 それを囲 う 参照領域に対する相対的な位置付け を指定 し ます。 これは、 文書が再整形 さ れる際や、 他の形式へ書き出 さ れる際に意味を持ち ます。 Figure ・ Formula ・ Form ・ Link ・ Annot エ レ メ ン ト に対 し ては、 それがグループ化エ レ メ ン ト の子 と し て作成 さ れている な ら ば、 Placement=Block を推奨 し ます (デ フ ォ ル ト : Inline) : Before Block 要素の割 り 当て四角形の 「前」 辺が、 要素を囲 う 最も 近い参照領域のそれ と 同 じ 位置に な る よ う 配置 し ます。 要素を囲 う 参照領域または親 BLSE 内のブ ロ ッ ク進行向き内にス タ ッ ク し ます。 End 要素の割 り 当て四角形の 「終」 辺が、 要素を囲 う 最も 近い参照領域のそれ と 同 じ 位置に な る よ う 配置 し ます。 Inline 要素を囲 う BLSE 内のイ ン ラ イ ン進行向き内にパ ッ ク し ます。 Start 要素の割 り 当て四角形の 「始」 辺が、 要素を囲 う 最も 近い参照領域のそれ と 同 じ 位置に な る よ う 配置 し ます。 RowSpan (整数。 tagname=TH ・ TD のみ) テーブルのセルがわた る テーブル行の数。 デ フ ォ ル ト : 1 Scope (キーワー ド 。 tagname=TH のみ。 PDF 1.5。 PDF/UA-1 では推奨) そのテーブルヘ ッ ダセルが、 そ れを含むテーブル行内の他のセル群に対する も のなのか、 それ と も それを含むテーブル列内のそ れなのか、 あ るいはそれを含むテーブル行 と テーブル列の両方に対する も のなのかを、 Row ・ Column ・ Both のいずれかのキーワー ド で指定 し ます。 Summary (ハイパーテキス ト 文字列。 tagname=Table でのみ可。 PDF 1.7) こ のテーブルの目的 と 構造の概要 tag (オプ シ ョ ン リ ス ト ) カ レ ン ト エ レ メ ン ト の子 と し て挿入 さ れる追加の構造エ レ メ ン ト 。 表 14.4 に 従っ たすべてのオプ シ ョ ン をサブオプ シ ョ ン と し て使え ます。 タ グ群は任意のレ ベルにネス ト す る こ と がで き ます。 286 第 14 章 : 文書交換 表 14.4 PDF_begin_item( ) の、 および さ ま ざ ま な関数の tag オプ シ ョ ン を用いた短縮 タ グ付けの、 構造 ・ 擬似 タ グの ためのオプ シ ョ ン。 い く つかのオプ シ ョ ンは PDF_begin_mc( ) ・ PDF_mc_point( ) で も使用可能です。 オプ シ ョ ン 説明 tagname (名前文字列。 PDF_add_table_cell( ) を除き、 tag オプ シ ョ ン を用いた短縮 タ グ付けのためには こ の オプ シ ョ ンが必須です) 表 14.3 に従 っ た標準エ レ メ ン ト 種別か疑似エ レ メ ン ト 種別の名前、 また はカ ス タ ム タ グの名前。 あ るいは こ のオプ シ ョ ンの値は、 関数引数 tagname を通 じ て与え る こ と も で き ます。 カ ス タ ム タ グ名を与え るには、 オプ シ ョ ン customtag=true か引数 tagname=Plib_custom_tag を与 え ます。 こ の場合には、 この tagname オプ シ ョ ンはカ ス タ ム タ グの任意の名前を内容 と し ます。 ただ し こ の名前に対 し て、 標準エ レ メ ン ト 種別へのマ ッ ピ ン グが、 PDF_begin_document( ) の rolemap オプ シ ョ ン を用いて定義 さ れている必要があ り ます。 カ ス タ ムエ レ メ ン ト 種別名は、 127 個の winansi キ ャ ラ ク タ か、 ま たは最長 127 UTF-8 バイ ト へ展開 さ れる Unicode キ ャ ラ ク タ 列を上 限 と し ます。 カ ス タ ムエ レ メ ン ト 種別名は、 予約済み接頭辞 Plib で始ま っ てはいけません。 Title (ハイパーテキス ト 文字列。 イ ン ラ イ ン ・ 擬似 タ グでは不可。 PDF/UA-1 では見出 し に対 し て推奨) 構造エ レ メ ン ト の タ イ ト ル。 こ の タ イ ト ルは、 Acrobat で構造ツ リ ーを表示または操作する ために 有用で し ょ う 。 usercoordinates (論理値) false の場合、 BBox ・ Width ・ Height はデ フ ォル ト 座標で表 さ れている と 見な さ れ、 そ う で ない場合にはユーザー座標が用い ら れます。 デ フ ォ ル ト : グローバル usercoordinates オプ シ ョ ンの値 Width (float。 tagname=Figure ・ Form ・ Formula ・ Table ・ TD ・ TH でのみ可) こ のエ レ メ ン ト の幅を、 デ フ ォ ル ト 座標で (usercoordinates=false の場合)、 あるいはユーザー座標で (usercoordinates=true の場合) 表 し た も の。 C++ Java C# void end_item(int id) Perl PHP end_item(int id) C void PDF_end_item(PDF *p, int id) 構造エ レ メ ン ト やその他の内容ア イ テ ム を閉 じ ます。 id ア イ テ ムのハン ド ル。 PDF_begin_item( ) で取得 し てお く 必要があ り ます。 詳細 イ ン ラ イ ン ア イ テ ムはすべて、 ページ を終え る 前に閉 じ る 必要があ り ます。 通常ア イ テ ム はすべて、 文書を終え る 前に閉 じ る 必要があ り ます。 ただ し 、 通常ア イ テ ムはすべて、 完 了次第閉 じ る こ と を強 く 推奨 し ます。 ア イ テ ムは、 そのすべての子を あ ら か じ め閉 じ てい る と き にのみ、 閉 じ る こ と がで き ます。 ア イ テ ム を閉 じ た後は、 その親がア ク テ ィ ブなア イ テ ムにな り ます。 スコープ イ ン ラ イ ン ア イ テ ムの場合はページ。グループ化ア イ テ ムの場合は文書 も 。照応する PDF_ begin_item( ) と 必ずペアに し て呼び出す必要があ り ます。 こ の関数は タ グ付 き PDF モー ド でのみ使え ます。 短縮 タ グ付け 構造エ レ メ ン ト と ページ装飾は、PDF_begin/end_item( ) ペア を用いて作成 す る こ と がで き ます。 あ る いはそのかわ り に、 以下の関数の tag オプシ ョ ン (表 14.5 参 照) を用いて短縮 タ グ付け を利用す る こ と も 可能です : > PDF_add_table_cell( ) と 、 PDF_fit_*( ) の照応す る オプシ ョ ン : fitgraphics ・ fitimage ・ fitpath ・ fitpdipage ・ fittextline ・ fittextflow ・ fitannotation ・ fitfield > PDF_begin_document( ) : 短縮 タ グ付け を用いて、 その構造 ヒ エ ラ ルキーのルー ト エ レ メ ン ト を作成で き ます 14.3 タ グ付き PDF 287 > > > > > > > > > > PDF_create_annotation( ) PDF_create_field( ) PDF_draw_path( ) PDF_fit_graphics( ) PDF_fit_image( ) PDF_fit_pdi_page( ) ・ PDF_info_pdi_page( ) PDF_fit_table( ) : 短縮 タ グ付けが自動テーブル タ グ付け を引 き 起 こ し ます PDF_fit_textflow( ) PDF_fit_textline( ) さ ま ざ ま な関数の matchbox オプシ ョ ン 短縮 タ グ付け を用いて グループ化エ レ メ ン ト を作成す る こ と はで き ません。 ただ し PDF_ begin_document( ) で用い ら れ る 場合は例外です( こ れ以外の関数はすべて直接 コ ン テ ン ツ を作成 し ますが、 こ れはグループ化エ レ メ ン ト では許容 さ れないか ら です) 。 短縮 タ グ付 けの詳 し い説明は PDFlib チ ュ ー ト リ アルにあ り ます。 表 14.5 PDF_add_table_cell( ) と 、 PDF_add_table_cell( ) ・ PDF_create_annotation( ) ・ PDF_create_field( ) ・ PDF_draw_ path( ) ・ PDF_fit_graphics( ) ・ PDF_fit_image( ) ・ PDF_fit_pdi_page( ) ・ PDF_fit_table( ) ・ PDF_fit_textflow( ) ・ PDF_fit_ textline( ) の照応する fit* オプ シ ョ ン と 、 さ ま ざ ま な関数の matchbox オプ シ ョ ンの、 短縮 タ グ付けのためのオプ ション オプ シ ョ ン 説明 tag (オプ シ ョ ン リ ス ト ) その配置 さ れる コ ン テ ン ツに対する構造エ レ メ ン ト かページ装飾を作成 し ま す。 表 14.4 に挙げているサブオプ シ ョ ン群を使え ます。 C++ Java C# void activate_item(int id) Perl PHP activate_item(int id) C void PDF_activate_item(PDF *p, int id) 以前に作成 し た構造エ レ メ ン ト やその他の コ ン テ ン ツ ア イ テ ム を ア ク テ ィ ブ化 し ます。 id ア イ テ ムのハン ド ル。 PDF_begin_item( ) で取得 し てお く 必要があ り ます。 ま だ閉 じ ら れていてはいけ ません。 擬似 ・ イ ン ラ イ ン ア イ テ ムはア ク テ ィ ブ化で き ません。 詳細 構造エ レ メ ン ト を一時停止 し てお き 、 後で ま た ア ク テ ィ ブ化す る と い う 方式を採用す る と 、 多段組の レ イ ア ウ ト や、 本文中に割 り 込む コ ラ ム な ど、 た と え 1 つのページ上に複数 の構造の枝が同時併行 し てい る よ う な場合で も 、 タ グ付き PDF のページ を柔軟に効率 よ く 作成す る こ と がで き る よ う にな り ます。 parent ・ index タ グ付けオプシ ョ ン (表 14.4 参照) を用い る と 構造エ レ メ ン ト を構造ツ リ ー内の特定箇所に挿入で き る のに対 し 、 PDF_activate_item( ) を用い る と 、 以前に作成 し た構造エ レ メ ン ト に さ ら な る 内容を追加す る こ と がで き ます。 Acrobat での諸問題を回避す る ために、PDF_activate_item( ) を呼び出 し た直後に直接 コ ン テ ン ツ を追加す る べ き ではあ り ません。 他の構造エ レ メ ン ト のみを追加する べき です。 スコープ 文書 ・ ページ。 こ の関数は タ グ付 き PDF モー ド でのみ使え ます。 288 第 14 章 : 文書交換 14.4 マー ク 付 き コ ン テ ン ツ C++ Java C# void begin_mc(String tagname, String optlist) Perl PHP begin_mc(string tagname, string optlist) C void PDF_begin_mc(PDF *p, const char *tagname, const char *optlist) マー ク 付 き コ ン テ ン ツ シーケ ン ス を開始 さ せ ま す。 プ ロ パテ ィ 群を与え る こ と も で き ま す。 tagname マー ク 付 き コ ン テ ン ツ シーケ ン ス の名前。 以下の タ グが使え ます : > 表 14.4 のすべての イ ン ラ イ ン ・ 擬似 タ グ群。 > ユーザー定義プ ロ パテ ィ を持つカ ス タ ム項目に対 し ては タ グ名Plib_custom を用い る こ と がで き ます。 > タ グ名 Plib は予約済みです。 optlist 以下のマー ク 付 き コ ン テ ン ツ シーケ ン ス オプシ ョ ン群が使え ます : > 一般オプシ ョ ン : hypertextencoding (表 2.3 参照) > マー ク 付 き コ ン テ ン ツ シーケ ン ス の標準プ ロ パテ ィ 群のためのオプシ ョ ン群。 表 14.4 の タ グ付けオプシ ョ ン群の、 以下の部分集合が使え ます : ActualText ・ Alt ・ artifactsubtype ・ artifacttype ・ contents ・ customtag ・ E ・ Lang ・ ListNumbering ・ Placement ・ tagname > タ グ Plib_custom ・ Plib では表 14.6 の properties オプシ ョ ン も 使え ます。 詳細 指定 し た タ グ と プ ロ パテ ィ 群を持っ たマー ク 付 き コ ン テ ン ツ シーケ ン ス が開始 さ れ ます。 オプシ ョ ン を何 も 与え なければ、 プ ロ パテ ィ を何 も 持た ないシーケ ン ス が作成 さ れ ます。 マ ー ク 付 き コ ン テ ン ツ シ ー ケ ン ス は 任 意 の 階層 に ネ ス ト 可 能 で す。 PDF_begin/end_ item( ) ・ PDF_begin/end_mc( ) のネ ス ト を適切に行 う のはユーザー側の役割です。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 。 照応す る PDF_end_mc( ) と 必ずペアに し て、 同 じ ス コ ープ内で呼び出す必要があ り ます。 表 14.6 PDF_begin_mc( ) ・ PDF_mc_point( ) によ る タ グのユーザー定義プ ロパテ ィ のためのオプ シ ョ ン オプ シ ョ ン 説明 properties (オプ シ ョ ン リ ス ト の リ ス ト 。 tagname=Plib ・ tagname=Plib_custom のみ) 各 リ ス ト は、 ユーザー 定義プ ロパテ ィ を指定 し た 3 個のオプ シ ョ ン を内容 と し て持ち ます : key (文字列。 必須) プ ロパテ ィ の名前。 type (キーワー ド 。 必須) プ ロパテ ィ 値の型 : boolean ・ name ・ string のいずれか。 value (type=string な らハイパーテキス ト 文字列、 そ う で ないな ら文字列。 必須) プ ロパ テ ィ の値。 C++ Java C# void end_mc( ) Perl PHP end_mc( ) C void PDF_end_mc(PDF *p) も っ と も 最近に開かれたマー ク 付 き コ ン テ ン ツ シーケ ン ス を終了 さ せます。 詳細 マー ク 付 き コ ン テ ン ツ シーケ ン ス はすべて、 PDF_end_page_ext( ) を呼び出す前に閉 じ る 必要があ り ます。 14.4 マー ク付き コ ン テ ン ツ 289 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ。 照応す る PDF_begin_mc( ) と 必ずペアに し て、 同 じ ス コ ープ内で呼び出す必要があ り ます。 C++ Java C# void mc_point(String tagname, String optlist) Perl PHP mc_point(string tagname, string optlist) C void PDF_mc_point(PDF *p, const char *tagname, const char *optlist) マー ク 付 き コ ン テ ン ツ ポ イ ン ト を追加 し ます。 プ ロ パテ ィ 群を与え る こ と も で き ます。 tagname マー ク 付 き コ ン テ ン ツ ポ イ ン ト の名前。 以下の タ グが使え ます : > 表 14.4 のすべての イ ン ラ イ ン ・ 擬似 タ グ群。 > カ ス タ ム項目に対 し ては タ グ名 Plib_custom を用い る こ と がで き ます。 > タ グ名 Plib は予約済みです。 optlist 以下のオプシ ョ ンが使え ます : > 表 14.6 に従っ たマー ク 付 き コ ン テ ン ツ ポ イ ン ト の標準プ ロ パテ ィ オプシ ョ ン群。 > タ グ Plib_custom ・ Plib では表 14.6 のオプシ ョ ン も 使え ます。 詳細 指定 し た タ グ名 と プ ロ パテ ィ 群を持っ たマー ク 付 き コ ン テ ン ツ ポ イ ン ト が作成 さ れ ます。 オプシ ョ ン を何 も 与え なければ、プ ロ パテ ィ を何 も 持た ないマー ク 付 き コ ン テ ン ツ ポ イ ン ト が作成 さ れます。 スコープ ページ ・ パ タ ーン ・ テ ン プ レー ト ・ グ リ フ 290 第 14 章 : 文書交換 14.5 文書部分 ヒ エ ラ ルキー C++ Java C# void begin_dpart(String optlist) Perl PHP begin_dpart(string optlist) C void PDF_begin_dpart(PDF *p, const char *optlist) 文書部分 ヒ エ ラ ルキー内に新規 ノ ー ド を開始 し ます(PDF/VTかPDF 2.0を必要 と し ます)。 optlist 表 14.7 に従っ た文書部分 ヒ エ ラ ルキーオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : associatedfiles ・ dpm PDF/VT PDF_begin_dpart( ) への初めての呼び出 し は、 暗黙的に、 文書部分 (DPart) ヒ エ ラ ルキー のルー ト ノ ー ド を作成 し ます。 最上位レベルで PDF_begin_dpart( ) を複数回呼び出す こ と はエ ラ ーです。 PDF_begin_dpart( ) を呼び出 し た後に PDF_begin_page_ext( ) を呼び出す こ と は、文書部 分のページ範囲の開始を定義 し ます。 次に PDF_begin_dpart( ) を呼び出すま での間のすべ ての後続す る ページ群は、 その同一の文書部分に属 し ます。 すべての呼び出 し は と も に文 書部分 ヒ エ ラ ルキーを木構造 と し て作成 し 、 こ の文書部分 ヒ エ ラ ルキーは 2 種類の ノ ー ド を内容 と す る こ と がで き ます : > 内部 ノ ー ド は、他の 1 個ない し 複数の ノ ー ド を子孫 と し て持ち ます。 こ の子孫は、内部 ノ ー ド か葉 ノ ー ド のいずれかであ る こ と がで き ますが、 あ る 1 つの内部 ノ ー ド が両方 の種類の子孫を内容 と す る こ と はで き ません。 > 葉 ノ ー ド は、 あ る 範囲内のページ (群) を記述 し ま す。 葉 ノ ー ド は子孫 ノ ー ド を決 し て持ち ません。 PDF_begin_dpart( ) と PDF_end_dpart( )への呼び出 し は、PDF_end_document( ) が呼び出 さ れ た際にマ ッ チ し てい る 必要があ り ます。文書に対 し て文書部分 ヒ エ ラ ルキーを作成 し よ う と す る と き は、 こ の関数を、 PDF_begin_page_ext( ) を初めて呼び出す よ り も 前に少な く と も 1 回は呼び出 し てお く 必要があ り ます。PDF_begin_dpart( ) への複数回の呼び出 し は、文 書部分 ヒ エ ラ ルキーの、 よ り 深い レベル群を作成 し ます。 文書部分 ヒ エ ラ ルキーの こ の生 成 さ れ る 深 さ (すなわち、 PDF_begin_dpart( ) の最大ネ ス ト 化レベル) は、 nodenamelist 文書オプシ ョ ン を用いて指定 さ れた リ ス ト の長 さ と マ ッ チす る 必要があ り ます。 スコープ 文書。 こ の関数は、 マ ッ チす る PDF_end_dpart( ) への呼び出 し と 必ずペアにす る 必要があ り ます。 表 14.7 PDF_begin/end_dpart( ) のオプ シ ョ ン オプ シ ョ ン 説明 associatedfiles (アセ ッ ト ハン ド ルの リ ス ト 。 PDF 2.0 ・ PDF/A-3 でのみ可) PDF/A-3 に従っ た連携 フ ァ イル群の ためのア セ ッ ト ハン ド ル群。 こ の フ ァ イル群は、 PDF_load_asset( ) と type=attachment を用いて読 み込まれている必要があ り ます。 dpm (POCA コ ン テナハン ド ル。 PDF_begin_dpart( ) か PDF_end_dpart( ) に与え る こ と がで き ますが、 同一 文書部分について両方の関数に与え る こ と はで き ません) PDF_poca_new( ) を用いて作成 さ れた辞 書 コ ン テナに対するハン ド ル。 こ の辞書 コ ン テナは、 その新規 ノ ー ド に対する文書部分 メ タ デー タ を内容 と し ています。 この辞書は、 オプ シ ョ ン usage=dpm を用いて作成 さ れている必要があ り ます。 14.5 文書部分 ヒ エ ラルキー 291 C++ Java C# void end_dpart(String optlist) Perl PHP end_dpart(string optlist) C void PDF_end_dpart(PDF *p, const char *optlist) 文書部分 ヒ エ ラ ルキー内で ノ ー ド を閉 じ ます (PDF/VT か PDF 2.0 を必要 と し ます)。 optlist 表 14.7 に従っ て文書部分 ヒ エ ラ ルキーオプシ ョ ン群を指定 し たオプシ ョ ン リ ス ト : associatedfiles ・ dpm PDF/VT PDF_end_page_ext( ) の後の初めての PDF_end_dpart( ) への呼び出 し は、 暗黙的に、 文書部 分 ヒ エ ラ ルキーの葉に属す る ページ範囲の終了を定義 し ます。 PDF_begin_dpart( ) と PDF_ end_dpart( ) への呼び出 し は、PDF_end_document( ) が呼び出 さ れた際にマ ッ チ し てい る 必 要があ り ます。 スコープ 文書。 こ の関数は、 マ ッ チす る PDF_begin_dpart への呼び出 し と 必ずペアにす る 必要があ り ます。 292 第 14 章 : 文書交換 A 全 API 関数一覧 こ の付章ではすべての API 関数を挙げます。 関数名を ク リ ッ ク す る と その説明へ飛 べます。 一般 set_option フォン ト load_font テキス ト 組版 set_text_option 色 setcolor get_option close_font fit_textline makespotcolor get_string setfont info_textline load_iccprofile new (C only) info_font add_textflow begin_pattern_ext delete begin_font create_textflow end_pattern create_pvf end_font fit_textflow shading_pattern delete_pvf begin_glyph_ext info_textflow shfill info_pvf end_glyph delete_textflow shading get_errnum encoding_set_char 表組版 add_table_cell 画像 ・ テ ン プ レー ト load_image get_errmsg get_apiname get_opaque (C/C++ only) 単純テキス ト 出力 set_text_pos fit_table close_image poca_new show info_table fit_image poca_delete show_xy delete_table info_image poca_insert continue_text poca_remove stringwidth 文書 と ページ begin_document Unicode 変換 convert_to_unicode begin_template_ext 範囲枠 info_matchbox end_template_ext SVG グ ラ フ ィ ッ ク load_graphics begin_document_callback (C/C++ only) close_graphics end_document info_graphics fit_graphics get_buffer begin_dpart end_dpart begin_page_ext end_page_ext suspend_page resume_page define_layer set_layer_dependency begin_layer end_layer 第 A 章 : 全 API 関数一覧 293 グ ラ フ ィ ッ ク ス テー ト set_graphics_option パス構築 moveto PDI open_pdi_document イ ン タ ラ ク テ ィ ブ機能 create_action setlinewidth lineto curveto open_pdi_callback (C/C++ only) add_nameddest save restore circle close_pdi_document create_field create_gstate arc open_pdi_page create_fieldgroup set_gstate arcn close_pdi_page create_bookmark circular_arc fit_pdi_page add_portfolio_folder ellipse info_pdi_page add_portfolio_file translate elliptical_arc process_pdi scale rect rotate closepath align pCOS pcos_get_number create_3dview skew load_asset concat パス描画 ・ ク リ ッ ピ ング stroke pcos_get_string setmatrix closepath_stroke 座標変換 create_annotation マルチ メ デ ィ ア load_3ddata pcos_get_stream 文書交換 set_info fill_stroke ブ ロ ッ ク流 し 込み (PPS) fill_textblock closepath_fill_stroke fill_imageblock end_item clip fill_pdfblock activate_item endpath fill_graphicsblock begin_mc fill begin_item end_mc Path Objects add_path_point draw_path info_path delete_path 294 第 A 章 : 全 API 関数一覧 mc_point B 全オプ シ ョ ン ・ キーワー ド 一覧 こ の索引は、 すべてのオプシ ョ ン を アルフ ァ ベ ッ ト 順に並べて、 それを使え る 関数を併記 し た も のです。 ページ番号を ク リ ッ ク す る と その説明へ飛びます。 & &name fit_textflow() のオプ シ ョ ン リ ス ト マ ク ロ呼 び出 し 109 3D 3Dactivate create_annotation() の 270 3Ddata create_annotation() の 270 3Dinitialview create_annotation() の 270 3Dinteractive create_annotation() の 270 3Dshared create_annotation() の 270 3Dview create_action() の 250 A acrobat info_font() 77 action begin/end_page_ext() の 56 create_annotation() の 233 create_bookmark() の 229 create_field/group() の 243 end_document() の 45 process_pdi() の 215 activate create_annotation() の richmedia のサブオ プ シ ョ ン 274 activeitemid キーワー ド get_option() の 30 activeitemindex キーワー ド get_option() の 30 activeitemisinline キーワー ド get_option() の 30 activeitemkidcount キーワー ド get_option() の 30 activeitemname キーワー ド get_option() の 30 activeitemstandardname キーワー ド get_option() の 30 actual info_font() の 77 ActualText begin_item() と tag オプ シ ョ ンの 284 actualtext set_text_option() ・ fit_textline() ・ fill_ textblock() の 80 addfitbox fit_textflow() の wrap のサブオプ シ ョ ン 116 addpath add_path_point() のキーワー ド 160 adjustmethod add/create_textflow() の 105 adjustpage fit_image/fit_graphics/fit_pdi_page() の 183 advancedlinebreak add/create_textflow() の 105 align begin_pattern_ext() の transform オプ シ ョ ンのキーワー ド 200 draw_path() の 134 alignchar fit/info_textline() の 134 alignment add/create_textflow() の 104 create_annotation() の 233 create_field/group() の 243 fit/info_textline() ・ add/create_textflow() の leader のサブオプ シ ョ ン 98 alpha create_gstate() の softmask の type サブオ プ シ ョ ンのキーワー ド 148 alphachannelname load_image() の 179 alphaisshape create_gstate() の 147 Alt begin_item() と tag オプ シ ョ ンの 284 angle info_textline() のキーワー ド 100 angularunit georeference のサブオプ シ ョ ン 262 animation annotation() の richmedia の activate サブ オプ シ ョ ンのサブオプ シ ョ ン 275 annotation create_action() の targetpath のサブオプ シ ョ ン 253 annotationtype add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 124 annotcolor create_annotation() の 233 索引 295 antialias shading() の 175 い く つかの関数の shading オプ シ ョ ンの サブオプ シ ョ ン 145 api info_font() の 77 apiversion PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 area fill in fit_table() の fill のサブオプ シ ョ ン 127 areaunit georeference のサブオプ シ ョ ン 262 artbox begin/end_page_ext() の 56 artifactsubtype begin_item() と tag オプ シ ョ ンの 284 artifacttype begin_item() と tag オプ シ ョ ンの 284 ascender info_font() の 76 info_textline() のキーワー ド 100 load_font() の 69 asciifile set_option() の 25 assets create_annotation() の richmedia のサブオ プ シ ョ ン 274 PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 associatedfiles begin/end_dpart() の 291 end_document() の 45 in begin/end_page_ext() 56 load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の 197 Attached begin_item() と tag オプ シ ョ ンの 284 attachment create_annotation() の 233 attachmentpassword begin_document() の 50 attachmentpoint draw_path() の 134 attachments begin/end_document() の 45 autospace set_option() の 26 autosubsetting load_font() の 69 avoidbreak add/create_textflow() の 105 avoiddemostamp set_option() の 26 avoidemptybegin add/create_textflow() の 104 296 索引 avoidwordsplitting add_table_cell() の 121 fit_textflow() の 113 B backdropcolor create_gstate() の softmask のサブオプ シ ョ ン 148 background create_3dview() の 267 backgroundcolor create_field/group() の 243 barcode create_field/group() の 243 basestate set_layer_dependency() の 64 BBox begin_item() と tag オプ シ ョ ンの 284 bboxexpand draw_path() の 164 bboxwidth, bboxheight info_path() のキーワー ド 165 begoptlistchar create_textflow() の 110 beziers fit_textflow() の wrap のサブオプ シ ョ ン 116 bitreverse load_image() の 181 bleedbox begin/end_page_ext() の 56 blendmode create_gstate() の 147 blind fit_table() の 125 fit_textflow() の 113 多 く の関数の 134 block process_pdi() の 215 blockname process_pdi() の block のサブオプ シ ョ ン 215 blocks in begin/end_page_ext() 56 bookmark begin_item() と tag オプ シ ョ ンの 284 bordercolor create_field/group() の 243 borderstyle create_annotation() の 233 create_field/group() の 243 borderwidth い く つかの関数の 143 bottom add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 255 boundingbox begin_glyph_ext() の 92 begin_pattern_ext() の 173 begin/end_page_ext() の viewports オプ シ ョ ンのサブオプ シ ョ ン 262 draw_path() の 164 info_*() のキーワー ド 138 info_matchbox() のキーワー ド 142 info_textflow() のキーワー ド 118 shading() の 175 bounds georeference のサブオプ シ ョ ン 262 boxes fit_textflow() の wrap のサブオプ シ ョ ン 116 boxexpand open_pdi_page() の 208 boxheight matchbox のサブオプ シ ョ ン 139 boxlinecount info_textflow() のキーワー ド 118 boxsize さ ま ざ ま な関数の 134 boxwidth matchbox のサブオプ シ ョ ン 139 bpc load_image() の 181 buttonlayout create_field/group() の 243 buttonstyle create_field/group() の 244 C calcorder create_field/group() の 244 calloutline create_annotation() の 233 camera2world create_3dview() の 267 cameradistance create_3dview() の 267 canonicaldate create_action() の 250 capheight info_font() の 76 info_textline() のキーワー ド 100 load_font() の 69 caption create_field/group() の 244 create_field/group() の barcode オプ シ ョ ン のサブオプ シ ョ ン 248 fit_table() の 126 captiondown create_field/group() の 244 captionoffset create_annotation() の 233 captionposition create_annotation() の 233 captionrollover create_field/group() の 244 cascadedflate load_image() の 179 category PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 centerwindow begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 52 charclass add/create_textflow() の 107 charmapping add/create_textflow() の 107 charref set_option() の 26 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 80 charspacing create_field/group() の 244 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 checkcolorspace info_image() のキーワー ド 184 keyword in info_font() 77 checkoutputintentprofile in open_pdi_document() 204 checktags begin_document() の 49 open_pdi_document() の 204 checktransgroupprofile open_pdi_page() の 208 children set_layer_dependency() の 64 cid info_font() の 75, 76 cidfont info_font() の 76 circle add_path_point() のキーワー ド 160 circles fit_textflow() の wrap のサブオプ シ ョ ン 116 circular add_path_point() のキーワー ド 160 classes set_option() の logging のサブオプ シ ョ ン 20 clip draw_path() の 164 clipping matchbox のサブオプ シ ョ ン 140 clippingarea open_pdi_page() の 209 clippingpath info_image() のキーワー ド 184 索引 297 clippingpathname load_image() の 179 cliprule い く つかの関数の 143 clockwise add_path_point() の 162 elliptical_arc() の 157 cloneboxes fit_pdi_page() の 211 open_pdi_page() の 209 close add_path_point() の 162 draw_path() の 164 cloudy create_annotation() の 234 CMap set_option() の 26 code begin_glyph_ext() の 92 info_font() の 75, 76 codepage info_font() の 76 codepagelist info_font() の 77 colorize load_image() の 179 colorized begin_font() の 90 colscalegroup add_table_cell() の 121 ColSpan begin_item() と tag オプ シ ョ ンの 284 colspan add_table_cell() の 121 colwidth add_table_cell() の 121 colwidthdefault fit_table() の 126 comb create_field/group() の 244 comment fit_textflow() のオプ シ ョ ン リ ス ト マ ク ロ 定義 106 commitonselect create_field/group() の 244 compatibility begin_document() の 47 components load_image() の 181 compress metadata のサブオプ シ ョ ン 281 set_option() の 26 condition annotation() の richmedia の activate サブ オプ シ ョ ンのサブオプ シ ョ ン 275 configuration create_annotation() の richmedia のサブオ プ シ ョ ン 274 298 索引 containertype poca_new() の 39 contents begin_mc() の 285 create_annotation() の 234 continuetextflow add_table_cell() の 121 control add_path_point() のキーワー ド 160 convert pcos_get_stream() の 218 copy create_pvf() の 36 copyglobals load_image() の 181 count info_matchbox() のキーワー ド 142 coversheet end_document() の portfolio のサブオプ シ ョ ン 259 coversheetfolderend_document() の portfolio のサブオプ シ ョ ン 259 crease create_3dview() の rendermode のサブオ プ シ ョ ン 268 createdate create_annotation() の 234 createfittext fit_textflow() の 113 createlastindent fit_textflow() の 113 creatematchboxes fit_textflow() の wrap のサブオプ シ ョ ン 117 createorderlist set_layer_dependency() の 64 createoutput begin_document() の 50 createpvf begin_document() の 51 createrichtext create_annotation() の 234 createtemplate load_image() の 179 createwrapbox matchbox のサブオプ シ ョ ン 140 creatorinfo define_layer() の 61 cropbox begin/end_page_ext() の 56 ctm_a/b/c/d/e/f キーワー ド get_option() の 30 currentvalue create_field/group() の 244 currentx/y キーワー ド get_option() の 30 curve add_path_point() のキーワー ド 160 custom create_annotation() の 234 customtag begin_item() と tag オプ シ ョ ンの 285 D dasharray add_path_point() の 161 create_annotation() の 234 create_field/group() の 244 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 い く つかの関数の 143 dashphase add_path_point() の 161 い く つかの関数の 143 dataprep create_field/group() の barcode オプ シ ョ ン のサブオプ シ ョ ン 248 datestring create_annotation() の 234 deactivate create_annotation() の richmedia のサブオ プ シ ョ ン 274 debugshow fit_table() の 126 decorationabove set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 defaultcmyk begin/end_page_ext() の 56 defaultdir create_action() の 250 defaultfontfamily load_graphics() の 187 defaultfontfamily in load_graphics() 191 defaultfontoptions load_graphics() の 187 defaultgray begin/end_page_ext() の 56 defaultimageoptions load_graphics() の 187 defaultrgb begin/end_page_ext() の 56 defaultstate define_layer() の 61 defaultvalue create_field/group() の 244 defaultvariant set_layer_dependency() の 64 defaultview load_3ddata() の 266 depend set_layer_dependency() の 64 descender info_font() の 77 info_textline() のキーワー ド 100 load_font() の 69 description info_graphics() のキーワー ド 192 load_asset() の、 ま たはその他諸関数のサ ブオプ シ ョ ン 272 load_iccprofile() の 170 PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 destination begin/end_document() の 45 create_action() の 250 create_annotation() の 234 create_bookmark() の 229 destname create_action() の 250 create_action() の targetpath のサブオプ シ ョ ン 253 create_annotation() の 235 create_bookmark() の 229 end_document() の 45 devicergb load_graphics() の 188 direct poca_insert() の 39, 40 direction begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 52 disable add/create_textflow() の shadow のサブオ プ シ ョ ン 83 create_annotation() の 3Dactivate のサブオ プ シ ョ ン 270 set_option() の logging のサブオプ シ ョ ン 19 disablestate create_annotation() の 3Dactivate のサブオ プ シ ョ ン 270 display create_annotation() の 235 create_field/group() の 244 displaydoctitle begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 52 displaysystem georeference のサブオプ シ ョ ン 262 documentattachment load_asset() の、 ま たはその他諸関数のサ ブオプ シ ョ ン 273 domain shading() の 175 い く つかの関数の shading オプ シ ョ ンのサ ブオプ シ ョ ン 145 doubleadapt matchbox のサブオプ シ ョ ン 140 doubleoffset matchbox のサブオプ シ ョ ン 140 索引 299 down create_annotation() の template のサブオ プ シ ョ ン 238 downsamplemask load_image() の 179 dpi さ ま ざ ま な関数の 134 dpm begin/end_dpart() の 291 drawbottom ・ drawleft ・ drawright ・ drawtop matchbox のサブオプ シ ョ ン 140 dropcorewidths load_font() の 69 duplex begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 52 duration begin/end_page_ext() の 56 create_action() の 250 E E begin_item() と tag オプ シ ョ ンの 285 ecc create_field/group() の barcode オプ シ ョ ンのサブオプ シ ョ ン 248 editable create_field/group() の 244 ellipse add_path_point() のキーワー ド 160 elliptical add_path_point() のキーワー ド 160 embedding load_font() の 69 embedprofile load_iccprofile() の 170 enable create_annotation() の 3Dactivate のサブ オプ シ ョ ン 270 set_option() の logging のサブオプ シ ョ ン 19 enablestate create_annotation() の 3Dactivate のサブ オプ シ ョ ン 270 Encoding set_option() の 26 encoding info_font() の 76, 77 load_font() の 70 end matchbox のサブオプ シ ョ ン 140 い く つかの関数の shading オプ シ ョ ンの サブオプ シ ョ ン 145 endcolor い く つかの関数の shading オプ シ ョ ンの サブオプ シ ョ ン 145 300 索引 endingstyles create_annotation() の 235 endoptlistchar create_textflow() の 110 endx ・ endy info_textline() のキーワー ド 100 entire create_3dview() の background のサブオプ シ ョ ン 267 enumeratefonts set_option() の 26 environment load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の pdfvt の サブオプ シ ョ ン 201 epsg georeference の coords ・ displaycoords サ ブオプ シ ョ ンのサブオプ シ ョ ン 263 errorconditions load_graphics() の 188 escapesequence set_option() の 26 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 80 exceedlimit matchbox のサブオプ シ ョ ン 140 exchangefillcolors fit_textflow() の 113 exchangestrokecolors fit_textflow() の 113 exclude create_action() の 251 exists info_matchbox() のキーワー ド 142 exportable create_field/group() の 244 exportmethod create_action() の 251 extend0 shading() の 175 extend1 shading() の 175 external in load_asset() and suboption for other functions 273 F facecolor create_3dview() の rendermode のサブオ プ シ ョ ン 268 fakebold set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 faked info_font() の 76 fallbackfont info_font() の 77 fallbackfontfamily load_graphics() の 188 fallbackfontoptions load_graphics() の 188 fallbackfonts load_font() の 70 fallbackheight load_graphics() の 188 fallbackimage load_graphics() の 189 fallbackwidth load_graphics() の 189 familyname begin_font() の 90 info_font() の 77 feature info_font() の 77 featurelist info_font() の 77 features fit/info_textline() ・ fill_textblock() ・ add/ create_textflow() の 99 fieldlist add_portfolio_folder() の 257 fieldname add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 124 fieldtype add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 124 create_fieldgroup() の 245 filemode begin_document() の 51 filename begin_template_ext() ・ load_image() ・ open_pdi_page() の reference のサブオプ シ ョ ン 200 create_action() の 251 info_graphics() のキーワー ド 192 info_image() のキーワー ド 184 load_asset() の、 ま たはその他諸関数のサ ブオプ シ ョ ン 273 metadata のサブオプ シ ョ ン 281 set_option() の logging のサブオプ シ ョ ン 19 filenamehandling set_option() の 27 fileselect create_field/group() の 245 fill add_path_point() の 162 draw_path() の 164 fit_table() の 127 fillcolor add_path_point() の 161 add/create_textflow() の shadow のサブオ プ シ ョ ン 83 create_3dview() の background のサブオプ シ ョ ン 267 create_annotation() の 235 create_field/group() の 245 fit/info_textline() ・ add/create_textflow() の leader のサブオプ シ ョ ン 98 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 い く つかの関数の 143 fillrule add_path_point() の 161 fit_textflow() の wrap のサブオプ シ ョ ン 117 い く つかの関数の 143 firstbodyrow info_table() のキーワー ド 129 firstdraw fit_table() の 127 firstlinedist fit_textflow() の 113 info_textflow() のキーワー ド 118 firstparalinecount info_textflow() のキーワー ド 118 fitannotation add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 124 fitfield add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 124 fitgraphics add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 122 fitheight add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 fitimage add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 122 fitmethod create_annotation() の template のサブオ プ シ ョ ン 238 create_field/group() の 245 fit_textflow() の 114 さ ま ざ ま な関数の 134 fitpath add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 fitpdipage add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 fitrect add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 fitscalex, fitscaley info_*() のキーワー ド 138 索引 301 fittext info_textflow() のキーワー ド 118 fittextflow add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 fittextline add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 fittingpossible info_graphics() のキーワー ド 192 info_pdi_page() のキーワー ド 212 fitvisible add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 fitvisibleheight ・ fitvisiblewidth add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 fitwidth add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 fitwindow add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 52 fixed add_nameddest( ) と destination オプ シ ョ ンの type オプ シ ョ ンのキーワー ド 256 fixedleading add/create_textflow() の 104 fixedtextformat create_textflow() の 110 flash PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 flatness add_path_point() の 161 create_gstate() の 147 い く つかの関数の 143 flush begin_document() の 51 set_option() の logging のサブオプ シ ョ ン 19 font create_annotation() の 235 create_field/group() の 245 fit/info_textline() ・ add/create_textflow() の leader のサブオプ シ ョ ン 98 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 FontAFM set_option() の 27 fontfile info_font() の 77 fontname info_font() の 77 load_font() の 70 302 索引 FontnameAlias set_option() の 27 FontOutline set_option() の 27 FontPFM set_option() の 27 fontscale fit_textflow() の 114 info_textflow() のキーワー ド 118 fontsize create_annotation() の 235 create_field/group() の 245 fit/info_textline() ・ add/create_textflow() の leader のサブオプ シ ョ ン 98 info_font() の 76 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 fontstyle create_bookmark() の 230 info_font() の 77 load_font() の 70 fonttype info_font() の 78 footer fit_table() の 127 forcebox open_pdi_page() の 209 forcedheight/forcedwidth load_graphics() の 189 forcedwidth load_graphics() の 189 full info_font() の 77 functionname create_action() の 251 G georeference begin/end_page_ext() の viewports のサブ オプ シ ョ ン 262 load_image() の 197 glyphcheck set_option() の 27 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 80 glyphid info_font() の 75, 78 glyphname begin_glyph_ext() の 92 info_font() の 75, 78 graphics add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 graphicsheight, graphicswidth info_graphics() のキーワー ド 192 group add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 255 begin_page_ext() の 56 begin/end_document() の labels オプ シ ョ ン と begin/end_page_ext() の label オプ シ ョ ンのサブオプ シ ョ ン 52 resume_page() の 60 set_layer_dependency() の 64 groups begin_document() の 45 gstate add_path_point() の 161 add/create_textflow() の shadow のサブオ プ シ ョ ン 83 fit_image/fit_graphics/fit_pdi_page() の 183 fit_table() の 127 fit/info_textline() ・ add/create_textflow() の 114 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 shading_pattern() の 174 さ ま ざ ま なグ ラ フ ィ ッ ク 関数の 144 H header fit_table() の 127 Headers begin_item() と tag オプ シ ョ ンの 285 Height begin_item() と tag オプ シ ョ ンの 285 height add_path_point() の 162 begin/end_page_ext() の 56 info_*() のキーワー ド 138 info_matchbox() のキーワー ド 142 load_image() の 181 hide create_action() の 251 hidemenubar begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 52 highlight create_annotation() の 235 create_field/group() の 245 honorclippingpath load_image() の 179 honoriccprofile load_image() の 179 horboxgap info_table() のキーワー ド 129 horizscaling set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 horshrinking info_table() のキーワー ド 129 horshrinklimit fit_table() の 127 hortabmethod add/create_textflow() の 104 HostFont set_option() の 27 hostfont info_font() の 78 hypertextencoding begin_template_ext() ・ load_image() ・ open_pdi_page() の reference のサブオプ シ ョ ン 200 begin/end_document() の labels オプ シ ョ ン と begin/end_page_ext() の label オプ シ ョ ンのサブオプ シ ョ ン 52 begin/end_page_ext() の viewports のサブ オプ シ ョ ン 262 set_option() の 27 hypertextformat set_option() の 27 hyphenchar add/create_textflow() の 108 I icccomponents keyword in get_option() 30 ICCProfile set_option() の 27 iccprofile get_option() の 31 info_image() のキーワー ド 184 load_image() の 179 iccprofilecymk, iccprofilegray, iccprofilergb set_option() の 28 icon create_field/group() の 245 PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 icondown create_field/group() の 245 iconname create_annotation() の 235 load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の 197 iconrollover create_field/group() の 245 id begin_item() と tag オプ シ ョ ンの 285 PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 ignoreclippingpath fit_image/fit_graphics/fit_pdi_page() の 183 ignoremask load_image() の 179 ignoreorientation fit_image/fit_graphics/fit_pdi_page() の 183 load_image() の 179 ignorepdfversion in open_pdi_document() 209 索引 303 image add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 imagehandle load_image() の 181 imageheight info_image() のキーワー ド 185 imagemask info_image() のキーワー ド 185 imagetype info_image() のキーワー ド 185 imagewidth info_image() のキーワー ド 185 includeoid 19 includepid set_option() の logging のサブオプ シ ョ ン 19 includetid set_option() の logging のサブオプ シ ョ ン 19 index begin_item() と tag オプ シ ョ ンの 285 create_bookmark() の 230 info_font() の 79 info_pdi_page() の 213 poca_insert() ・ poca_remove() の 40 indextype begin/end_document() の search のサブオ プ シ ョ ン 47 infomode info_image() のキーワー ド 185 load_image() の 180 open_pdi_document() の 204 initialexportstate define_layer() の 61 initialprintstate define_layer() の 62 initialsubset load_font() の 71 initialviewend_document() の portfolio のサブ オプ シ ョ ン 259 initialviewstate define_layer() の 62 inittextstate set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 set_text_state() の 144 inline begin_item() と tag オプ シ ョ ンの 285 load_image() の 182 inmemory begin_document() の 51 open_pdi_document の 204 innerbox matchbox のサブオプ シ ョ ン 140 inputencoding metadata のサブオプ シ ョ ン 281 304 索引 inputformat metadata のサブオプ シ ョ ン 281 inreplyto create_annotation() の 235 instance create_action() の 251 intent define_layer() の 62 interiorcolor create_annotation() の 235 interpolate load_image() の 180 inversefill fit_textflow() の wrap のサブオプ シ ョ ン 117 invert load_image() の 180 invisiblelayers set_layer_dependency() の 64, 65 ismap create_action() の 251 istemplate info_graphics() のキーワー ド 192 italicangle info_font() の 78 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 item create_bookmark() の 230 itemname create_field/group() の 245 itemnamelist create_field/group() の 245 itemtextlist create_field/group() の 246 J justifymethod fit/info_textline() の 96 K K load_image() の 182 keepfilter pcos_get_stream() の 219 keepfont load_font() の 71 keephandles delete_table() の 130 keepnative info_font() の 78 load_font() の 71 keepxmp metadata のサブオプ シ ョ ン 281 kerning set_option() の 28 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 kerningpairs info_font() の 78 key add_portfolio_file/folder() の fieldlist のサ ブオプ シ ョ ン 259 create_annotation() の custom のサブオプ シ ョ ン 234 poca_insert() ・ poca_remove() の 40 L label begin/end_page_ext() の 57 labels begin/end_document() の 45 Lang begin_item() と tag オプ シ ョ ンの 285 lang begin_document() の 49 info_pdi_page() のキーワー ド 212 load_graphics() の 189 language define_layer() の 62 fit/info_textline() ・ fill_textblock() ・ add/ create_textflow() の 99 info_font() の 77 largearc add_path_point() の 162 elliptical_arc() の 157 lastalignment add/create_textflow() の 104 lastbodyrow info_table() のキーワー ド 129 lastfont info_textflow() のキーワー ド 118 lastfontsize info_textflow() のキーワー ド 118 lastlinedist fit_textflow() の 114 info_textflow() のキーワー ド 118 lastmark info_textflow() のキーワー ド 118 lastparalinecount info_textflow() のキーワー ド 118 layer create_annotation() の 236 create_field/group() の 246 load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の 197 layerstate create_action() の 252 leader add/create_textflow() の 104 fit/info_textline() の 96 leaderlength create_annotation() の 236 leaderoffset create_annotation() の 236 leading info_textflow() のキーワー ド 118 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 left add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 255 leftindent add/create_textflow() の 104 leftlinex ・ leftliney info_textflow() のキーワー ド 118 licensefile set_option() の 28 lighting create_3dview() の 267 limitcheck begin_document() の 47 line add_path_point() のキーワー ド 160 create_annotation() の 236 fit_table() の stroke のサブオプ シ ョ ン 128 linearunit georeference のサブオプ シ ョ ン 263 linecap add_path_point() の 161 create_gstate() の 147 い く つかの関数の 144 linegap info_font() の 78 load_font() の 71 lineheight fit_textflow() の wrap のサブオプ シ ョ ン 117 linejoin add_path_point() の 161 create_gstate() の 147 い く つかの関数の 144 linespreadlimit fit_textflow() の 114 linewidth add_path_point() の 161 create_annotation() の 236 create_field/group() の 246 create_gstate() の 147 い く つかの関数の 144 listmode set_layer_dependency() の 65 ListNumbering begin_item() と tag オプ シ ョ ンの 286 loadtype PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 索引 305 locale add/create_textflow() の 106 PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 locked create_annotation() の 236 create_field/group() の 246 lockedcontents create_annotation() の 236 lockmode create_field/group() の 246 logging set_option() の 28 luminosity create_gstate() の softmask の type サブオ プ シ ョ ンのキーワー ド 148 M macro fit_textflow() のオプ シ ョ ン リ ス ト マ ク ロ 定義 109 maingid info_font() の 78 major キーワー ド get_option() の 30 mappoints georeference のサブオプ シ ョ ン 263 margin add_table_cell() の 121 matchbox のサブオプ シ ョ ン 140 さ ま ざ ま な関数の 135 marginbottom add_table_cell() の 121 marginleft add_table_cell() の 121 marginright add_table_cell() の 121 margintop add_table_cell() の 121 mark add/create_textflow() の 106 mask load_image() の 180 masked load_image() の 180 masterpassword begin_document() の 50 matchbox add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 add/create_textflow() の 106 さ ま ざ ま な関数の 135 matrix begin_pattern_ext() の transform オプ シ ョ ンのキーワー ド 200 maxchar create_field/group() の 246 306 索引 maxcode info_font() の 78 maxfilehandles set_option() の 28 maxlinelength info_textflow() のキーワー ド 118 maxlines fit_textflow() の 114 maxliney info_textflow() のキーワー ド 119 maxspacing add/create_textflow() の 106 maxuvsunicode in info_font() 78 mediabox begin/end_page_ext() の 57 menuname create_action() の 252 metadata 281 begin/end_document() の 45 begin/end_page_ext() の 57 info_graphics() のキーワー ド 192 load_font() の 71 load_iccprofile() の 170 load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の 197 metricsfile info_font() の 78 mimetype load_asset() の、 またはその他諸関数のサ ブオプ シ ョ ン 273 minfontsize fit_textflow() の 114, 135 mingapwidth fit_textflow() の 114 minlinecount add/create_textflow() の 104 minlinelength info_textflow() のキーワー ド 119 minliney info_textflow() のキーワー ド 119 minor キーワー ド get_option() の 30 minrowheight add_table_cell() の 121 minspacing add/create_textflow() の 106 minuvsunicode in info_font() 78 mirroringx ・ mirroringy info_image() のキーワー ド 185 info_pdi_page() のキーワー ド 212 miterlimit add_path_point() の 161 create_gstate() の 147 い く つかの関数の 144 moddate begin/end_document() の 45 modeltree create_annotation() の 3Dactivate のサブオ プ シ ョ ン 270 move add_path_point() のキーワー ド 160 movieposter create_annotation() の 236 multiline create_field/group() の 246 multiselect create_field/group() の 246 N numcopies begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 numglyphs info_font() の 78 numpoints info_path() の 165 numusableglyphs info_font() の 78 numusedglyphs info_font() の 78 N O shading() の 175 い く つかの関数の shading オプ シ ョ ンのサ ブオプ シ ョ ン 145 name add_path_point() の 162 begin/end_page_ext() の viewports のサブ オプ シ ョ ン 262 create_3dview() の 267 create_action() の targetpath のサブオプ シ ョ ン 253 create_annotation() の 236 info_font() の 76, 77 info_matchbox() のキーワー ド 142 load_asset() の、 ま たはその他諸関数のサ ブオプ シ ョ ン 273 matchbox のサブオプ シ ョ ン 141 PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 namelist create_action() の 252 navigatorend_document() の portfolio のサブ オプ シ ョ ン 259 newwindow create_action() の 252 nextline add/create_textflow() の 106 nextparagraph add/create_textflow() の 106 nodenamelist begin_document() の 47 nofitlimit add/create_textflow() の 106 nonfullscreenpagemode begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 normal create_annotation() の template のサブオ プ シ ョ ン 238 normalize set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 numcids info_font() の 78 objectheight, objectwidth info_*() のキーワー ド 138 objectstreams begin/end_document() の 46 offset add/create_textflow() の shadow のサブオ プ シ ョ ン 83 fit_textflow() の wrap の 117 offsetbottom ・ offsetleft ・ offsetright ・ offsettop matchbox のサブオプ シ ョ ン 141 onpanel define_layer() の 62 opacity create_3dview() の rendermode のサブオプ シ ョ ン 268 create_annotation() の 236 opacityfill create_gstate() の 147 opacitystroke create_gstate() の 147 open create_annotation() の 236 create_bookmark() の 230 openmode begin/end_document() の 46 openrect matchbox のサブオプ シ ョ ン 141 operation create_action() の 252 OPI-1.3, OPI-2.0 load_image() ・ load_graphics() ・ begin_ template_ext()n の 197 optimize begin_document() の 46 optimizeinvisible load_font() の 71 orientate create_annotation() の 236 create_field/group() の 246 fit_textflow() の 114 さ ま ざ ま な関数の 135 orientation info_image() のキーワー ド 185 索引 307 outlineformat info_font() の 78 outputblockname process_pdi() の block のサブオプ シ ョ ン 215 overline set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 82 overprintfill create_gstate() の 148 overprintmode create_gstate() の 148 overprintstroke create_gstate() の 148 P page add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 255 load_image() の 180 pageelement define_layer() の 62 pageheight, pagewidth info_pdi_page() のキーワー ド 212 pageheight, pagewidth キーワー ド get_option() の 31 pagelabel begin_template_ext() ・ load_image() ・ open_pdi_page() の reference のサブオプ シ ョ ン 200 pagelayout begin/end_document() の 46 pagenumber begin_page_ext() の 57 begin_template_ext() ・ load_image() ・ open_pdi_page() の reference のサブオプ シ ョ ン 200 begin/end_document() の labels オプ シ ョ ン と begin/end_page_ext() の label オプ シ ョ ンのサブオプ シ ョ ン 52 create_action() の targetpath のサブオプ シ ョ ン 254 process_pdi() の block のサブオプ シ ョ ン 215 resume_page() の 60 pages begin/end_page_ext() の separationinfo の サブオプ シ ョ ン 57 painttype begin_page_ext() の 173 parameters create_action() の 252 308 索引 parent begin_item() と tag オプ シ ョ ンの 286 create_bookmark() の 230 set_layer_dependency() の 64 parentlayer open_pdi_document の 204 parentname create_annotation() の 236 parenttitle open_pdi_document の 204 parindent add/create_textflow() の 104 passthrough load_image() の 180 password create_field/group() の 246 load_asset() の、 またはその他諸関数のサ ブオプ シ ョ ン 273 open_pdi_document の 205 path add_path_point() の 162 add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 fit_textline() の textpath のサブオプ シ ョ ン 97 pathlength info_textline() のキーワー ド 100 pathref add_path_point() のキーワー ド 160 paths fit_textflow() の wrap のサブオプ シ ョ ン 117 pdfa begin_document() の 48 pdfua begin_document() の 48 pdfvt begin_document() の 48 load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の 198 pdfx begin_document() の 48 pdipage add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 pdiusebox begin_template_ext() ・ load_image() ・ open_pdi_page() の reference のサブオプ シ ョ ン 200 open_pdi_page() の 209 pdi キーワー ド get_option() の 31 permissions begin_document() の 50 perpendiculardir info_textline() のキーワー ド 100 picktraybypdfsizeDefault Para Font> begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 Placement begin_item() と tag オプ シ ョ ンの 286 playmode create_annotation() の 237 polar add_path_point() の 162 polygons fit_textflow() の wrap のサブオプ シ ョ ン 117 polylinelist create_annotation() の 237 popup create_annotation() の 237 portfolio end_document() の 47 position create_annotation() の template のサブオ プ シ ョ ン 238 create_field/group() の 246 さ ま ざ ま な関数の 135 postscript begin_template_ext() の 194 predefcmap info_font() の 78 prefix add_portfolio_file/folder() の fieldlist のサ ブオプ シ ョ ン 259 begin/end_document() の labels オプ シ ョ ン と begin/end_page_ext() の label オプ シ ョ ンのサブオプ シ ョ ン 52 presentation annotation() の richmedia の activate サブ オプ シ ョ ンのサブオプ シ ョ ン 275 preserveoldpantonenames set_option() の 167 preservepua load_font() の 72 preserveradio create_action() の 252 printarea begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 printclip begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 printscaling begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 printsubtype define_layer() の 62 properties begin_mc() ・ mc_point() の 289 px ・ py info_path() の 165 R r0 shading() の 175 r1 shading() の 175 radians add_path_point() の 162 radius add_path_point() の 162 readfeatures load_font() の 72 readkerning load_font() の 72 readonly create_annotation() の 237 create_field/group() の 246 readselectors in load_font() 72 readshaping load_font() の 72 readverticalmetrics load_font() の 72 recordlevel begin_document() の 48 recordsize begin_document() の 51 rect add_path_point() のキーワー ド 160 rectangle info_matchbox() のキーワー ド 142 rectdiff create_annotation() の 237 rectify add_path_point() の 162 elliptical_arc() の 157 reference begin_template_ext() ・ load_graphics() ・ open_pdi_page() の 198 refpoint fill_*block() ・ info_path() の 135 fill_*block() の 164 relation create_action() の targetpath のサブオプ シ ョ ン 254 relationship load_asset() の、 ま たはその他諸関数のサ ブオプ シ ョ ン 273 relative add_path_point() の 162 remove set_option() の logging のサブオプ シ ョ ン 19 removeonsuccess set_option() の logging のサブオプ シ ョ ン 19 索引 309 removeunused define_layer() の 62 rendercolor create_3dview() の rendermode のサブオ プ シ ョ ン 268 renderingintent create_gstate() の 148 load_image() の 181 rendermode create_3dview() の 267 repair open_pdi_document の 205 repeatcontent add_table_cell() の 122 replacedchars info_textline() の 100 replacementchar info_font() の 79 load_font() の 72 replyto create_annotation() の 237 required create_field/group() の 246 requiredmode open_pdi_document の 205 resetfont add/create_textflow() の 107 resolution create_field/group() の barcode オプ シ ョ ンのサブオプ シ ョ ン 248 resourcefile set_option() の 28 resourcenumber get_option() の 31 restore add/create_textflow() の 107 resx ・ resy info_image() のキーワー ド 185 return add_table_cell() の 122 add/create_textflow() の 107 returnatmark fit_textflow() の 115 returnreason info_table() のキーワー ド 129 info_textflow() のキーワー ド 119 revision キーワー ド get_option() の 30 rewind fit_table() の 127 fit_textflow() の 115 richmedia create_annotation() の 237 richmediaargs create_action() の 253 richtext create_field/group() の 246 310 索引 right add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 255 rightindent add/create_textflow() の 104 rightlinex ・ rightliney info_textflow() のキーワー ド 119 righttoleft info_textline() の 100 rolemap begin_document() の 49 rollover create_annotation() の template のサブオ プ シ ョ ン 238 rotate begin_pattern_ext() の transform オプ シ ョ ンのキーワー ド 200 begin/end_page_ext() の 57 create_annotation() の 237 fit_textflow() の 115 info_pdi_page() のキーワー ド 212 さ ま ざ ま な関数の 136 round add_path_point() の 163 draw_path() の 164 matchbox のサブオプ シ ョ ン 141 rowcount info_table() のキーワー ド 129 rowheight add_table_cell() の 122 rowheightdefault fit_table() の 128 rowjoingroup add_table_cell() の 122 rowscalegroup add_table_cell() の 122 RowSpan begin_item() と tag オプ シ ョ ンの 286 rowspan add_table_cell() の 122 rowsplit info_table() のキーワー ド 129 ruler add/create_textflow() の 104 S save add/create_textflow() の 107 saveresources set_option() の 28 scale begin_pattern_ext() の transform オプ シ ョ ンのキーワー ド 200 さ ま ざ ま な関数の 136 scalex ・ scaley info_textline() のキーワー ド 100 schemaend_document() の portfolio のサブオ プ シ ョ ン 260 Scope begin_item() と tag オプ シ ョ ンの 286 scope load_image() ・ load_graphics() ・ open_pdi_ page() ・ begin_template_ext() の pdfvt の サブオプ シ ョ ン 201 scope キーワー ド get_option() の 31 script create_action() の 253 fit/info_textline() ・ fill_textblock() ・ add/ create_textflow() の 99 info_font() の 77 load_3ddata() の 266 scriptlist info_textline() のキーワー ド 100 scriptname create_action() の 253 scripts annotation() の richmedia の activate サブ オプ シ ョ ンのサブオプ シ ョ ン 275 scrollable create_field/group() の 246 search begin/end_document() の 47 searchpath set_option() の 28 selector in info_font() 75 keyword in info_font() 79 selectorlist keyword in info_font() 79 separationinfo begin_page_ext() の 57 shading い く つかの関数の 144 shadow set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 83 shaping fit/info_textline() ・ fill_textblock() ・ add/ create_textflow() の 99 shapingsupport info_font() の 79 showborder fit_textflow() の 115 さ ま ざ ま な関数の 136 showcaption create_annotation() の 237 showcells fit_table() の 128 showcontrols create_annotation() の 237 showgrid fit_table() の 128 showtabs fit_textflow() の 115 shrinklimit add/create_textflow() の 106 さ ま ざ ま な関数の 136 shrug open_pdi_document の 205 shutdownstrategy set_option() の 28 simplefont load_font() の 72 singfont info_font() の 79 skew begin_pattern_ext() の transform オプ シ ョ ンのキーワー ド 200 skipembedding in load_font() 73 skipposttable load_font() の 73 smoothness create_gstate() の 148 sorted create_field/group() の 247 sortend_document() の portfolio のサブオプ シ ョ ン 260 soundvolume create_annotation() の 237 space add/create_textflow() の 107 spellcheck create_field/group() の 247 split info_textflow() のキーワー ド 119 splitend_document() の portfolio のサブオプ シ ョ ン 260 spotcolor begin/end_page_ext() の separationinfo の サブオプ シ ョ ン 57 spotcolorlookup set_option() の 167 spotname begin/end_page_ext() の separationinfo の サブオプ シ ョ ン 57 spreadlimit add/create_textflow() の 106 stamp fit_textflow() の 115 さ ま ざ ま な関数の 136 standardfont info_font() の 79 start begin/end_document() の labels オプ シ ョ ン と begin/end_page_ext() の label オプ シ ョ ンのサブオプ シ ョ ン 52 い く つかの関数の shading オプ シ ョ ンのサ ブオプ シ ョ ン 145 startcolor shading() の 176 索引 311 startoffset fit_textline() の textpath のサブオプ シ ョ ン 97 startx ・ starty info_textline() のキーワー ド 100 stretch begin_font() の 90 strikeout set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 83 stringformat set_option() の 29 stringlimit set_option() の logging のサブオプ シ ョ ン 19 strings PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 strips info_image() のキーワー ド 185 stroke draw_path() の 163, 164 fit_table() の 128 strokeadjust create_gstate() の 148 strokecolor add_path_point() の 161 add/create_textflow() の shadow のサブオ プ シ ョ ン 83 create_field/group() の 247 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 83 い く つかの関数の 144 strokewidth add/create_textflow() の shadow のサブオ プ シ ョ ン 83 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 83 strongref begin_template_ext() ・ open_pdi_page() の reference のサブオプ シ ョ ン 200 structuretype begin_document() の 49 style begin/end_document() の labels オプ シ ョ ン と begin/end_page_ext() の label オプ シ ョ ンのサブオプ シ ョ ン 52 subject create_annotation() の 237 submitemptyfields create_action() の 253 submitname create_field/group() の 247 subpaths draw_path() の 164 subsetlimit load_font() の 73 312 索引 subsetminsize load_font() の 73 subsetting load_font() の 73 Summary begin_item() と tag オプ シ ョ ンの 286 supplement info_font() の 79 svgpath add_path_point() の 163 symbol create_annotation() の 237 symbolfont info_font() の 79 symbology create_field/group() の barcode オプ シ ョ ンのサブオプ シ ョ ン 248 T tabalignchar add/create_textflow() の 108 tabalignment add/create_textflow() の 105 tableheight, tablewidth info_table() のキーワー ド 129 taborder begin/end_page_ext() の 57 create_field/group() の 247 tag begin_document() の 49 begin_item() と tag オプ シ ョ ンの 286 fit_image() ・ fit_pdi_page() ・ fit_ graphics() ・ fit_textline() ・ fit_textflow() ・ draw_path() ・ create_annotation() ・ fill_ *block() ・ create_field() の、 および add_ table_cell() のサブオプ シ ョ ン 288 tagged begin_document() の 49 tagname begin_item() と tag オプ シ ョ ンの 287 tagtrailinghyphen set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 83 target begin_template_ext() ・ load_image() ・ open_pdi_page() の reference のサブオプ シ ョ ン 201 create_action() の 253 targetpath create_action() の 253 create_action() の targetpath のサブオプ シ ョ ン 254 tempfilenames begin_document() の 51 template create_annotation() の 238 create_gstate() の softmask のサブオプ シ ョ ン 148 load_image() の 181 templateoptions load_graphics() の 189 text add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 fit/info_textline() ・ add/create_textflow() の leader のサブオプ シ ョ ン 98 textcolor create_bookmark() の 230 textendx, textendy info_textflow() のキーワー ド 119 textflow add_table_cell() と caption オプ シ ョ ンのサ ブオプ シ ョ ンの 123 textformat set_option() の 29 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 81 textheight info_textflow() のキーワー ド 119 info_textline() のキーワー ド 100 textknockout create_gstate() の 148 textlen create_textflow() の 110 textpath fit/info_textline() の 97 textrendering add/create_textflow() の shadow のサブオ プ シ ョ ン 83 set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 84 textrise set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 84 textstate get_option() の 31 textwidth info_textflow() のキーワー ド 119 info_textline() のキーワー ド 100 textx, texty キーワー ド get_option() の 31 thumbnail load_asset() の、 ま たはその他諸関数のサ ブオプ シ ョ ン 273 tilingtype begin_page_ext() の 173 Title begin_item() と tag オプ シ ョ ンの 287 title create_annotation() の 238 info_graphics() のキーワー ド 192 toggle create_fieldgroup() の 247 tolerance fit_textline() の textpath のサブオプ シ ョ ン 97 toolbar create_annotation() の 3Dactivate のサブオ プ シ ョ ン 270 tooltip create_field/group() の 247 top add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 255 topdown begin_page_ext() の 57 begin_pattern_ext() の 173 topindex create_field/group() の 247 topleveltag info_pdi_page() のキーワー ド 212 topleveltagcount info_pdi_page() のキーワー ド 212 transform begin_pattern_ext() ・ begin_template_ ext() ・ load_graphics() ・ open_pdi_page() の 199 transition begin/end_page_ext() の 58 create_action() の 253 translate begin_pattern_ext() の transform オプ シ ョ ンのキーワー ド 200 transparencygroup begin/end_page_ext() の 58 open_pdi_page() ・ load_graphics() ・ begin_ template_ext() の 199 transparent info_image() のキーワー ド 185 trimbox begin/end_page_ext() の 58 truncatetrailingwhitespace fit_textflow() の 115 索引 313 type add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 256 add_portfolio_file/folder() の fieldlist のサ ブオプ シ ョ ン 259 create_3dview() の 267 create_3dview() の rendermode のサブオ プ シ ョ ン 269 create_annotation() の custom のサブオプ シ ョ ン 234 create_gstate() の softmask のサブオプ シ ョ ン 148 georeference の coords ・ displaycoords サ ブオプ シ ョ ンのサブオプ シ ョ ン 263 info_graphics() のキーワー ド 192 load_3d() の 266 poca_insert() の 41 い く つかの関数の shading オプ シ ョ ンの サブオプ シ ョ ン 145 U U3Dpath create_3dview() の 267 underline set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 84 underlineposition set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 84 underlinewidth set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 84 unicode info_font() の 76, 79 unicodefont info_font() の 79 unicodemap load_font() の 73 unisonselect create_fieldgroup() の 247 unknownchars info_textline() のキーワー ド 100 unmappedchars info_textline() のキーワー ド 101 unmappedglyphs info_font() の 79 url create_action() の 253 urls load_iccprofile() の 170 usage load_iccprofile() の 170 poca_new() の 39 used info_textflow() のキーワー ド 119 314 索引 usedglyph info_font() の 79 useembeddedimage info_image() の 185 usehostfonts set_option() の 29 usehypertextencoding set_option() の 29 uselayers open_pdi_document の 205 usematchbox create_annotation() の 238 usematchboxes fit_textflow() の wrap のサブオプ シ ョ ン 117 usercoordinates begin_item() と tag オプ シ ョ ンの 287 create_annotation() の 238 create_field/group() の 247 set_option() の 29 userlog set_option() の 29 userpassword begin_document() の 50 userunit begin/end_page_ext() の 59 usestransparency begin_document() の 48 usetags open_pdi_document の 205 open_pdi_page の 209 V value add_portfolio_file/folder() の fieldlist のサ ブオプ シ ョ ン 259 create_annotation() の custom のサブオプ シ ョ ン 234 poca_insert() の 41 values poca_insert() の 41 variantname set_layer_dependency() の 65 version PDF_add_portfolio_file/folder() の portfolio のサブサブオプ シ ョ ン 261 vertboxgap info_table() のキーワー ド 129 vertical info_font() の 79 load_font() の 73 verticalalign fit_textflow() の 116 vertshrinking info_table() のキーワー ド 129 vertshrinklimit fit_table() の 128 view annotation() の richmedia の activate サブ オプ シ ョ ンのサブオプ シ ョ ン 275 viewarea begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 viewclip begin/end_document() の viewerpreferences オプ シ ョ ンのサブオプ シ ョ ン 53 viewports begin/end_page_ext() の 59 views create_annotation() の richmedia のサブオ プ シ ョ ン 274 load_3ddata() の 266 visiblelayers set_layer_dependency() の 65 W watermark begin_template_ext() の 194 weight begin_font() の 90 info_font() の 79 wellformed info_textline() のキーワー ド 101 Width begin_item() と tag オプ シ ョ ンの 287 width add_path_point() の 163 begin_glyph_ext() の 92 begin/end_page_ext() の 59 info_*() のキーワー ド 138 info_matchbox() のキーワー ド 142 load_image() の 182 widthsonly begin_font() の 91 willembed info_font() の 79 willsubset info_font() の 79 windowposition create_annotation() の 238 windowscale create_annotation() の 239 wkt georeference の coords ・ displaycoords サ ブオプ シ ョ ンのサブオプ シ ョ ン 263 wordspacing set_text_option() ・ fit/info_textline() ・ fill_ textblock() ・ add/create_textflow() の 84 worldpoints georeference のサブオプ シ ョ ン 263 worldsystem georeference のサブオプ シ ョ ン 263 wrap fit_textflow() の 116 writingdirx ・ writingdiry info_textline() のキーワー ド 101 X x1 ・ y1 ・ …x4 ・ y4 info_matchbox() のキーワー ド 142 info_textflow() のキーワー ド 119 x1, y1, ..., x4, y4 info_*() のキーワー ド 138 xadvancelist fit/info_textline() の 97 xheight info_font() の 79 info_textline() のキーワー ド 101 load_font() の 73 xid begin_template_ext() の pdfvt のサブオプ シ ョ ン 201 info_graphics() のキーワー ド 192 info_image() のキーワー ド 185 info_pdi_page() のキーワー ド 212 xrotate add_path_point() の 163 elliptical_arc() の 157 xstep begin_pattern_ext() の 173 xsymheight create_field/group() の barcode オプ シ ョ ン のサブオプ シ ョ ン 248 xvertline info_table() のキーワー ド 129 Y yhorline info_table() のキーワー ド 129 yposition fit/info_textline() ・ add/create_textflow() の leader のサブオプ シ ョ ン 98 ystep begin_pattern_ext() の 173 Z zoom add_nameddest() のオプ シ ョ ン、 create_ action() ・ create_annotation() ・ create_ bookmark() ・ begin/end_document() の destination オプ シ ョ ンのサブオプ シ ョ ン 256 create_annotation() の 239 define_layer() の 62 索引 315 316 索引 C 改訂履歴 日付 更新点 2016 年 1 月 25 日 > PDFlib 9.0.6 に関する更新 2015 年 5 月 24 日 > PDFlib 9.0.5 に関する更新 2014 年 12 月 16 日 > PDFlib 9.0.4 に関する更新 2014 年 5 月 12 日 > PDFlib 9.0.3 に関する更新 2013 年 12 月 17 日 > PDFlib 9.0.2 に関する更新 2013 年 10 月 17 日 > PDFlib 9.0.1 に関する更新 2013 年 5 月 11 日 > PDFlib 9.0.0 に関する更新 2011 年 5 月 30 日 > PDFlib 8 VT Edition (内部的には 8.1.0) に関する更新 2011 年 5 月 30 日 > PDFlib 8.0.3 に関する さ ま ざ ま な更新 ・ 修正 2010 年 12 月 09 日 > PDFlib 8.0.2 に関する さ ま ざ ま な更新 ・ 修正 2010 年 9 月 22 日 > PDFlib 8.0.1p7 に関する さ ま ざ ま な更新 ・ 修正 2010 年 4 月 13 日 > PDFlib 8.0.1 に関する さ ま ざ ま な更新 ・ 修正 2009 年 12 月 04 日 > PDFlib 8 に関する更新 2009 年 3 月 13 日 > PDFlib 7.0.4 に関する さ ま ざ ま な更新 ・ 修正 2008 年 2 月 13 日 > PDFlib 7.0.3 に関する さ ま ざ ま な更新 ・ 修正 2007 年 8 月 08 日 > PDFlib 7.0.2 に関する さ ま ざ ま な更新 ・ 修正 2007 年 3 月 09 日 > PDFlib 7.0.1 に関する さ ま ざ ま な更新 ・ 修正 2006 年 10 月 03 日 > PDFlib 7.0.0 に関する更新 と 再構成。 説明書を チ ュ ー ト リ アル と API リ フ ァ レ ン スに分割 2006 年 2 月 21 日 > PDFlib 6.0.3 に関する さ ま ざ ま な更新 ・ 修正。 Ruby の節を追加 2005 年 8 月 09 日 > PDFlib 6.0.2 に関する さ ま ざ ま な更新 ・ 修正 2004 年 11 月 17 日 > PDFlib 6.0.1 に関する小規模な更新 ・ 修正 > 8 章に言語別関数プ ロ ト タ イ プ用新書式導入 > 3 章にハイパーテキス ト の例を追加 2004 年 6 月 18 日 > PDFlib 6 に関する大規模な変更 2004 年 1 月 21 日 > PDFlib 5.0.3 に関する小規模な追加 ・ 修正 2003 年 9 月 15 日 > PDFlib 5.0.2 に関する小規模な追加 ・ 修正。 ブ ロ ッ クの仕様を追加 2003 年 5 月 26 日 > PDFlib 5.0.1 に関する小規模な更新 ・ 修正 2003 年 3 月 26 日 > PDFlib 5.0.0 に関する全面的変更 と 書き直 し 2002 年 6 月 14 日 > PDFlib 4.0.3 に関する小規模な変更 と .NET バイ ンデ ィ ングに関する追加 2002 年 1 月 26 日 > PDFlib 4.0.2 に関する小規模な変更 と IBM eServer エデ ィ シ ョ ンに関する追加 第 C 章 : 改訂履歴 317 日付 更新点 2001 年 5 月 17 日 > PDFlib 4.0.1 に関する小規模な変更 2001 年 4 月 1 日 > PDFlib 4.0.0 の PDI ・ 他機能を解説 2001 年 2 月 5 日 > PDFlib 3.5.0 のテ ン プ レー ト ・ CMYK 機能を解説 2000 年 12 月 22 日 > ColdFusion 解説 と PDFlib 3.03 に関する追加。 COM エデ ィ シ ョ ン を別マニ ュ アルに 2000 年 8 月 8 日 > Delphi 解説 と PDFlib 3.02 に関する小規模な追加 2000 年 7 月 1 日 > PDFlib 3.01 に関する追加 ・ 説明の明瞭化 2000 年 2 月 20 日 > PDFlib 3.0 に関する変更 1999 年 8 月 2 日 > PDFlib 2.01 に関する小規模な変更 ・ 追加 1999 年 6 月 29 日 > 言語バイ ンデ ィ ン グご と に節を分離 > PDFlib 2.0 に関する追加 1999 年 2 月 1 日 > PDFlib 1.0 に関する小規模な追加 (公開せず) 1998 年 8 月 10 日 > PDFlib 0.7 に関する追加 (1 つのお客様用のみ) 1998 年 7 月 8 日 > PDFlib 0.6 の PDFlib ス ク リ プ テ ィ ングサポー ト を初めて記述 1998 年 2 月 25 日 > PDFlib 0.5 に関 し て説明を若干追加 1997 年 9 月 22 日 > PDFlib 0.4 と 本マニ ュ アルを初めて公開 索引 なお、 オプシ ョ ン と キー ワー ド は別途 295 ページ 「付章 B」 に挙げてい ます。 A N All スポ ッ ト カ ラ ー名 169 alphaisshape gstate オプ シ ョ ン 147 Author フ ィ ール ド 280 None スポ ッ ト カ ラ ー名 169 B blendmode gstate オプ シ ョ ン 147 C CMYK カ ラ ー 14 cmyk キーワー ド 15 Creator フ ィ ール ド 280 D Dublin Core 279 F float オプ シ ョ ン リ ス ト の 12 float 値 ・ 整数値 オプ シ ョ ン リ ス ト の 12 G gray キーワー ド 15 I iccbased keyword 15 iccbasedcmyk キーワー ド 15 iccbasedgray キーワー ド 15 iccbasedrgb キーワー ド 15 ICC プ ロ フ ァ イル 170 ICC ベース カ ラ ー 14 info_textflow() 118 IVS 72 K Keywords フ ィ ール ド 280 L Lab カ ラ ー 14 lab キーワー ド 15 O opacityfill gstate オプ シ ョ ン 147 opacitystroke gstate オプ シ ョ ン 147 overprintfill gstate オプ シ ョ ン 148 overprintmode gstate オプ シ ョ ン 148 overprintstroke gstate オプ シ ョ ン 148 P pattern キーワー ド 15 pCOS 関数 203, 216 PDF_activate_item() 288 PDF_add_nameddest() 255 PDF_add_portfolio_folder() 257 PDF_add_table_cell( ) 120 PDF_add_textflow() 102 PDF_align() 152 PDF_arc() 155 PDF_arcn() 155 PDF_begin_document() 43 PDF_begin_dpart() 291 PDF_begin_font() 90 PDF_begin_glyph_ext() 91 PDF_begin_item() 282 PDF_begin_layer() 65 PDF_begin_mc() 289 PDF_begin_page_ext() 55 PDF_begin_pattern_ext 172 PDF_begin_template_ext() 193 PDF_circle() 155 PDF_clip() 159 PDF_close_font() 74 PDF_close_graphics() 190 PDF_close_image() 182 PDF_close_pdi_document() 206 PDF_close_pdi_page() 209 PDF_closepath_fill_stroke() 159 PDF_closepath_stroke() 158 PDF_closepath() 157 PDF_concat() 152 PDF_continue_text() 88 PDF_continue_text2() 88 PDF_convert_to_unicode( ) 23 PDF_create_3dview() 266 PDF_create_action() 249 PDF_create_annotation() 231 索引 319 PDF_create_bookmark() 229 PDF_create_field() 240 PDF_create_fieldgroup() 242 PDF_create_gstate() 147 PDF_create_pvf() 35 PDF_create_textflow() 109 PDF_curveto() 154 PDF_define_layer() 61 PDF_delete_dl( ) 34 PDF_delete_path() 165 PDF_delete_pvf() 36 PDF_delete_table( ) 130 PDF_delete_textflow() 119 PDF_delete() 34 PDF_elliptical_arc() 156 PDF_encoding_set_char() 93 PDF_end_document() 44 PDF_end_dpart() 292 PDF_end_font() 91 PDF_end_glyph() 92 PDF_end_item() 287 PDF_end_layer() 66 PDF_end_mc() 289 PDF_end_pattern() 172 PDF_endpath() 159 PDF_fill_graphicsblock() 227 PDF_fill_imageblock() 225 PDF_fill_pdfblock() 226 PDF_fill_stroke() 158 PDF_fill_textblock() 222 PDF_fill() 158 PDF_fit_graphics() 190 PDF_fit_image() 182 PDF_fit_pdi_page() 210 PDF_fit_table( ) 124 PDF_fit_textflow() 111 PDF_fit_textline() 95 PDF_get_apiname() 22 PDF_get_buffer() 54 PDF_get_errmsg() 22 PDF_get_errnum() 21 PDF_get_opaque() 22 PDF_get_option() 29 PDF_get_parameter() 32 PDF_get_string() 31 PDF_get_value() 32 PDF_info_font() 75 PDF_info_graphics() 191 PDF_info_matchbox() 141 PDF_info_pvf() 36 PDF_info_table( ) 129 PDF_info_textflow() 118 PDF_info_textline() 98 PDF_lineto() 154 PDF_load_3ddata() 265 PDF_load_asset() 271 PDF_load_font() 67 PDF_load_graphics() 186 320 索引 PDF_load_iccprofile() 170 PDF_load_image() 177 PDF_makespotcolor() 169 PDF_mc_point() 290 PDF_moveto() 154 PDF_new_dl( ) 33 PDF_new() 33 PDF_new2() 33 PDF_open_pdi_callback() 205 PDF_open_pdi_document() 203 PDF_open_pdi_page() 207 PDF_pcos_get_number( ) 216 PDF_pcos_get_stream( ) 217 PDF_pcos_get_string( ) 216 PDF_poca_delete() 39 PDF_poca_insert() 40 PDF_poca_new() 38 PDF_poca_remove() 42 PDF_process_pdi() 214 PDF_rect() 157 PDF_restore() 147 PDF_resume_page() 59 PDF_rotate() 151 PDF_save() 146 PDF_scale() 151 PDF_set_graphics_option() 145 PDF_set_gstate() 148 PDF_set_info() 279 PDF_set_info2() 279 PDF_set_layer_dependency() 62 PDF_set_option() 25 PDF_set_parameter() 32 PDF_set_text_option() 84 PDF_set_text_pos() 86 PDF_set_value() 32 PDF_setcolor() 167 PDF_setfont() 86 PDF_setlinewidth() 146 PDF_setmatrix() 153 PDF_shading_pattern() 174 PDF_shading() 175 PDF_shfill() 174 PDF_show_xy() 87 PDF_show_xy2() 87 PDF_show() 87 PDF_show2() 87 PDF_skew() 152 PDF_stringwidth() 88 PDF_stringwidth2() 88 PDF_stroke() 158 PDF_suspend_page() 59 PDF_translate() 151 PDF/X 出力イ ン テ ン ト 215 PDFlib Personalization Server 221 PDF オブ ジ ェ ク ト 作成 API (POCA) 38 PDF 取 り 込み関数 (PDI) 203 PDI (PDF 取 り 込み) 203 POCA (PDF オブ ジ ェ ク ト 作成 API) 38 PPS (PDFlib Personalization Server) 221 え 円 オプ シ ョ ン リ ス ト の 16 R renderingintent gstate オプ シ ョ ン 148 RGB カ ラ ー 14 rgb キーワー ド 15 S smoothness gstate オプ シ ョ ン 148 softmask create_gstate() の 148 spotname キーワー ド 15 spot キーワー ド 15 strokeadjust gstate オプ シ ョ ン 148 Subject フ ィ ール ド 279 SVG 186 T textknockout gstate オプ シ ョ ン 148 Title フ ィ ール ド 279 Trapped フ ィ ール ド 280 U Unichar 値 オプ シ ョ ン リ ス ト の 11 Unicode 範囲 オプ シ ョ ン リ ス ト の 11 W Web 最適化 PDF 45 X XMP メ タ デー タ 281 あ アクシ ョ ンリス ト オプ シ ョ ン リ ス ト の 13 い 色 オプ シ ョ ン リ ス ト 内の 14 色関数 167 イ ン ラ イ ンオプ シ ョ ン リ ス ト テキス ト フ ローの 110 う 上付き 84 お オブ ジ ェ ク ト ス コ ープ 18 オプ シ ョ ン リ ス ト の文法 8 折れ線 オプ シ ョ ン リ ス ト の 16 か 画像関数 177 括弧で囲ま ない文字列 オプ シ ョ ン リ ス ト 内の 10 関数のス コ ープ 18 き キーワー ド オプ シ ョ ン リ ス ト の 12 曲線 オプ シ ョ ン リ ス ト の 16 く グ ラ フ ィ ッ ク関数 143, 186 グ ラ フ ィ ッ ク ス テー タ ス関数 146 グ リ フ ス コ ープ 18 グ ローバルオプ シ ョ ン 25 こ 高速 Web 表示 45 し 下付き 84 斜形化 152 情報フ ィ ール ド 279 す 数値 オプ シ ョ ン リ ス ト の 12 ス コ ープ 18 スポ ッ ト カ ラ ー (分版色空間) 14 せ 整列 (position オプ シ ョ ン) 135 セ ッ ト ア ッ プ関数 33 セル内枠 表セルの 121 線形化 PDF 45 索引 321 た め 短縮 タ グ付け 287 メ タ デー タ 281 ち も 長方形 オプ シ ョ ン リ ス ト の 16 文字サイ ズ オプ シ ョ ン リ ス ト の 12 文字列 オプ シ ョ ン リ ス ト の 10 て テキス ト 関数 67 テキス ト フ ロー : イ ン ラ イ ン オプ シ ョ ン リ ス ト 110 テ ン プ レー ト ス コ ープ 18 と 取 り 込み関数 PDF の 203 ね ネス ト さ れたオプ シ ョ ン リ ス ト 8 ら ラ イ セ ン ス 28 ラ ス タ 画像関数 177 り リスト値 オプ シ ョ ン リ ス ト の 8 は ろ パスス コ ープ 18 パスの描画 と ク リ ッ ピ ン グ 158 パ タ ーン カ ラ ー 14 パ タ ーン ス コ ープ 18 ハン ド ル オプ シ ョ ン リ ス ト の 12 論理値 オプ シ ョ ン リ ス ト の 12 ひ 表意文字異体字シーケ ン ス (IVS) 72 標準ページサイ ズ 55 表の組版 120 ふ フ ォ ン ト ス コ ープ 18 不可視テキス ト 84 袋文字 84 文書 ・ ページ関数 43, 55 文書情報フ ィ ール ド 279 文書ス コ ープ 18 分版色空間 14 文法 オプ シ ョ ン リ ス ト の 8 へ ページサイ ズ形式 55 ページ ス コ ープ 18 ベ ク ト ルグ ラ フ ィ ッ ク関数 186 ベジ エ曲線 154 322 よ 横置き モー ド 56 索引 索引 323 ABC PDFlib GmbH Franziska-Bilek-Weg 9 80339 München, Germany www.pdflib.com 電話 +49 • 89 • 452 33 84-0 FAX +49 • 89 • 452 33 84-99 ご質問がある と きは、 PDFlib メ ー リ ング リ ス ト と groups.yahoo.com/neo/groups/pdflib/info にある アー カ イ ブ を チ ェ ッ ク し て く だ さ い ラ イ セ ン ス発行のお問い合わせ [email protected] サポー ト [email protected] (お持ちの ラ イ セ ン ス番号をお書 き く だ さ い)