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.

PDF_fill_textblock( ) への 次 の 呼 び 出 し では、 前 段 で 返 さ れたテキ ス ト フ ローハン ド ルを<br />

textflowhandle オプシ ョ ンに 与 える こ とができ ます (このと き text 引 数 にテキ ス ト を<br />

与 えて も 無 視 さ れる ので、 空 にするべき です)。 ブ ロ ッ ク へ、 テキ ス ト フ ローの 余 り が<br />

流 し 込 まれます。<br />

> こ の 処 理 を、 さ ら な る テキ ス ト フ ローブ ロ ッ ク 群 に 対 し て 繰 り 返 すこ と がで き ます。<br />

> 返 されたテキス ト フローハンドルは、PDF_info_textflow( ) に 与 えれば、ブ ロ ッ ク 流 し 込<br />

みの 結 果 を 知 る こ と がで き ます。 終 了 状 況 やテキ ス ト の 終 了 位 置 な どがわか り ます。<br />

なお、 fitmethod プロパティは clip に 設 定 する 必 要 があ り ます (textflowhandle を 与 えて<br />

い る と きはどのみち こ れがデフ ォル ト です) 。 テキ ス ト フ ローブ ロ ッ ク を 連 結 する 基 本 的<br />

な コー ド の 骨 組 みは 以 下 の よ う にな り ます :<br />

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

tf = -1;<br />

for (i = 0; i < blockcount; i++)<br />

{<br />

String optlist = "encoding=winansi textflowhandle=" + tf;<br />

int reason;<br />

tf = p.fill_textblock(page, blocknames[i], text, optlist);<br />

text = null;<br />

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

break;<br />

/* いちばん 最 近 のfit_textflow() 呼 び 出 しの 結 果 をチェック */<br />

reason = (int) p.info_textflow(tf, "returnreason");<br />

result = p.get_string(reason, "");<br />

}<br />

/* テキストが 全 部 配 置 されたならループを 抜 ける */<br />

if (result.equals("_stop"))<br />

{<br />

p.delete_textflow(tf);<br />

break;<br />

}<br />

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

ブロ ッ クの 流 し 込 み 順 序 ブ ロ ッ ク 関 数 群 PDF_fill_*block( ) は、プロパティ とブロック 内<br />

容 を、 以 下 の 順 序 で 処 理 し ます :<br />

> 背 景 :backgroundcolor プロパティが 存 在 し、かつ None 以 外 のカ ラースペース キーワー<br />

ド を 持 ってい る と きは、 ブ ロ ッ ク 領 域 は 指 定 さ れた 色 で 塗 られます。<br />

> 枠 線 :bordercolor プロパティが 存 在 し、かつ None 以 外 のカ ラースペース キーワー ド を<br />

持 ってい る と きは、 ブ ロ ッ ク の 枠 は 指 定 さ れた 色 と 線 幅 で 描 線 さ れます。<br />

> 内 容 : 与 え ら れたブ ロ ッ ク 内 容 と 、 bordercolor ・ linewidth 以 外 のすべてのプ ロパテ ィ<br />

が 処 理 されます。<br />

> テキスト 行 ・テキストフローブロック:テキストもデフォルトテキストも 与 えられて<br />

いない と きは、 何 の 出 力 も 行 われません。 背 景 色 やブ ロ ッ ク の 枠 線 も あ り ません。<br />

入 れ 子 にな っ たブ ロ ッ ク ブロックへ 流 し 込 みを 行 う 前 には、 そのブロックを 含 むペー<br />

ジを 出 力 ページ 上 にまず 貼 り 付 け る 必 要 があ り ます (そ う でない と 、 ページを 拡 縮 ・ 回<br />

転 ・ 平 行 移 動 し た 後 のブ ロ ッ ク の 位 置 を <strong>PPS</strong> が 知 り えないため)。 ページをブ ロ ッ ク の コ<br />

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

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

Saved successfully!

Ooh no, something went wrong!