17.05.2014 Views

12 PPS と PDFlib Block Plugin

12 PPS と PDFlib Block Plugin

12 PPS と PDFlib Block Plugin

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>12</strong>.5 <strong>PPS</strong> でブロッ クへ 流 し 込 み<br />

<strong>PPS</strong> でブ ロ ッ ク へ 流 し 込 みを 行 う には、 まずブ ロ ッ ク を 含 むページを、PDF_fit_pdi_page( )<br />

関 数 で 出 力 ページ 上 に 貼 り 付 け る 必 要 があ り ます。 ページを 貼 り 付 けた 後 、 その 上 のブ<br />

ロックへPDF_fill_*block( ) 関 数 群 で 流 し 込 みを 行 う こ と がで き ます。<br />

簡 単 な 例 : 可 変 テキス ト を テ ンプ レー ト に 追 加 PDF テンプレー ト への 動 的 テキ ス ト の<br />

追 加 は、 非 常 に 頻 繁 に 必 要 と な る 動 作 です。 以 下 の コー ド では、 入 力 PDF 文 書 (テンプ<br />

レー ト 、 ブ ロ ッ ク コ ンテナ) の 中 のページを 開 き、 それを 出 力 ページ 上 に 配 置 し、 そ し て<br />

firstname というテキス トブロックに 可 変 テキス トを 入 れ 込 んでいます:<br />

doc = p.open_pdi_document(filename, "");<br />

if (doc == -1)<br />

throw new Exception("エラー : " + p.get_errmsg());<br />

page = p.open_pdi_page(doc, pageno, "");<br />

if (page == -1)<br />

throw new Exception("エラー : " + p.get_errmsg());<br />

p.begin_page_ext(width, height, "");<br />

/* 取 り 込 んだページを 貼 り 付 け */<br />

p.fit_pdi_page(page, 0.0, 0.0, "");<br />

/* 貼 り 付 けたページ 上 のブロック1 個 へ 流 し 込 み */<br />

p.fill_textblock(page, "firstname", "Serge", "encoding=winansi");<br />

p.close_pdi_page(page);<br />

p.end_page_ext("");<br />

p.close_pdi_document(doc);<br />

クックブック 完 全 な コー ド サンプルがク ッ ク ブ ッ クの blocks/starter_block トピックにあります。<br />

ブロックのプロパティを 上 書 き 場 合 に よ っ てプ ロ グ ラ マーは、 ブ ロ ッ ク の 定 義 が 与 え<br />

てい る プ ロパテ ィ 群 を 一 部 だけ 採 用 し、その 他 のプ ロパテ ィ を カ ス タ ムの 値 で 上 書 き し た<br />

い こ と があ り ます。 こ れは さ ま ざ ま な 場 合 に 有 用 です :<br />

> 業 務 上 の 要 請 であ る 種 の 上 書 き が 必 要 と 判 断 さ れる 場 合 に 対 応 。<br />

> 画 像 ・PDF ページの 拡 縮 倍 率 を、ブ ロ ッ ク 定 義 か ら 採 らずに、アプ リ ケーシ ョ ンで 算 出 。<br />

> ブ ロ ッ ク の 座 標 をプ ロ グ ラ ムで 変 え る。 生 成 し たい 請 求 書 のデータ 項 目 数 が 一 定 でな<br />

い 場 合 等 。<br />

> 別 々のス ポ ッ ト カ ラー 名 を 与 え る こ と も 可 能 。 プ リ ン ト サービ ス 業 務 で、 顧 客 ご と の<br />

要 請 に 合 わせる ため。<br />

プロパティを 上 書 きするには、 PDF_fill_*block( ) 関 数 群 のオプシ ョ ン リ ス ト にプ ロパテ ィ<br />

の 名 前 と その 値 を 与 えます。 例 :<br />

p.fill_textblock(page, "firstname", "Serge", "fontsize=<strong>12</strong>");<br />

これは、 ブロッ クの 内 部 の fontsize プロパティを、 与 えた 値 <strong>12</strong> で 上 書 きします。 ほとん<br />

どすべてのプロパテ ィ 名 を、 オプシ ョ ン と して 用 いる こ とが 可 能 です。<br />

プ ロパテ ィ の 上 書 きは、 それぞれの 関 数 呼 び 出 し にのみ 適 用 さ れます。 ブ ロ ッ ク 定 義<br />

内 に 保 持 されるわけではあ り ません。<br />

<strong>12</strong>.5 <strong>PPS</strong> でブロックへ 流 し 込 み 335

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

Saved successfully!

Ooh no, something went wrong!