17.05.2014 Views

チュートリアル - PDFlib

チュートリアル - PDFlib

チュートリアル - PDFlib

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2 ページ 記 述<br />

3.2.1 座 標 系<br />

PDF のデフ ォル ト 座 標 系 が <strong>PDFlib</strong> の 内 部 では 用 い られています。 デフ ォル ト 座 標 系 (デ<br />

フ ォル ト ユーザースペース と も い う ) では、 ページの 左 下 隅 に 原 点 があ り 、 DTP ポ イ ン ト<br />

を 単 位 と して 用 いています。<br />

1 pt = 1/72 inch = 25.4/72 mm = 0.3528 mm<br />

1 番 目 の 座 標 は 右 へ 向 かって 増 加 し、 2 番 目 の 座 標 は 上 へ 向 かって 増 加 し ます。 <strong>PDFlib</strong> の<br />

ク ラ イ アン ト プ ロ グ ラ ムでは、 こ のデフ ォル ト ユーザースペース を 回 転 ・ 拡 縮 ・ 並 行 移<br />

動 ・ 斜 形 化 させる こ と に よ って、 新 し いユーザー 座 標 を 作 る こ と も で き ます。 こ う し た 変<br />

形 に 対 応 する 関 数 はそれぞれ PDF_rotate( ) ・ PDF_scale( ) ・ PDF_translate( ) ・ PDF_skew( ) で<br />

す。 座 標 系 を 変 更 し た 場 合 、 グ ラ フ ィ ッ ク ・ テキ ス ト 関 数 の 中 の 座 標 はすべて 新 し い 座 標<br />

系 に 従 って 指 定 し なければな り ません。 座 標 系 は、 各 ページの 最 初 でデフ ォル ト 座 標 系 に<br />

再 設 定 さ れます。<br />

メ ー ト ル 座 標 の 利 用 メ ー ト ル 座 標 を 利 用 し たい 場 合 は 簡 単 で、 座 標 系 を 拡 大 すれば 利<br />

用 で き ます。 拡 大 率 は、 上 記 の DTP ポ イ ン ト の 定 義 よ り 導 かれます。<br />

p.scale(28.3465, 28.3465);<br />

こ の 呼 び 出 し の 後 は、 <strong>PDFlib</strong> はすべての 座 標 をセンチ メ ー ト ル 単 位 と し て 解 釈 し ます (イ<br />

ン タ ラ ク テ ィ ブ 機 能 については 例 外 、 後 述 )。 こ れは 72 ÷ 2.54 = 28.3465 だからです。<br />

関 連 する 機 能 と し て、 PDF_begin/end_page_ext( ) で userunit オプシ ョ ンを 指 定 して<br />

(PDF 1.6) ページ 全 体 に 対 す る 拡 縮 倍 率 を 与 え る こ と も で き ます。 ただ し ユーザー 座 標<br />

は、 Acrobat での 最 終 的 なページ 表 示 に 対 し てのみ 効 力 を 持 つも のであ り 、 <strong>PDFlib</strong> で 座 標<br />

の 拡 縮 を 行 う ものではあ り ません。<br />

クックブック 完 全 な コー ド サンプルがク ッ ク ブ ッ クの general/metric_topdown_coordinates トピックに<br />

あります。<br />

イ ン タ ラ ク テ ィ ブ 要 素 の 座 標 イ ン タ ラ ク テ ィ ブ 関 数 には、 作 成 し たいテキ ス ト 注 釈 ・ リ<br />

ン ク ・ フ ァ イル 注 釈 の 矩 形 の 座 標 を 与 え る 必 要 があ り ます。 PDF では、 ハイパーテキ ス ト<br />

の 関 数 のための 座 標 はつねにデフ ォル ト 座 標 系 で 記 述 されている と 見 な されます。 ユー<br />

ザー 座 標 系 ( 変 形 さ れてい る か も しれない) で 記 述 さ れてい る と 見 な さ れる こ と はあ り ま<br />

せん。 こ れは 非 常 にやっかいですので、 <strong>PDFlib</strong> には、 ユーザー 座 標 が 指 定 さ れて も それを<br />

PDF が 認 め る 形 式 に 自 動 変 換 する 機 能 があ り ます。 こ の 自 動 変 換 を 有 効 にする には、 次 の<br />

ように、usercoordinates パラ メ タを true に 設 定 し ます。<br />

p.set_parameter("usercoordinates", "true");<br />

リ ン ク ・ フ ィ ール ド の 矩 形 と し ては、 その 縁 がページの 縁 に 平 行 な ものにしか PDF では<br />

対 応 し ていないので、 拡 縮 ・ 回 転 ・ 並 行 移 動 ・ 斜 形 化 に よ って 座 標 系 が 変 形 し てい る と き<br />

には 与 え ら れた 矩 形 は 形 を 調 整 し なければな り ません。 こ の よ う な 場 合 、 <strong>PDFlib</strong> では、 そ<br />

の 四 角 形 を 含 み、 かつ 縁 がページの 縁 と 平 行 な 最 小 の 矩 形 を 計 算 し ます。 そ し て こ れをデ<br />

フ ォル ト 座 標 に 変 換 し、 その 結 果 の 値 を、 与 え られた 座 標 のかわ り に 用 います。<br />

要 する に 大 局 的 に 言 って どんな 効 果 があ る か と いえば、usercoordinates パラ メ タがtrue<br />

に 設 定 さ れていれば、ページ 内 容 に 対 し て も イ ン タ ラ ク テ ィ ブ 要 素 に 対 し て も 同 じ 座 標 系<br />

が 使 え る と い う こ と です。<br />

3.2 ページ 記 述 67

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!