PHPでPDFlibで文字修飾(フォントの大きさ、色、下線)を変える方法です。 この例では、fit_textline関数の第4引数のオプションで変更を加えています。 オプションの詳細は、PDFlib/PDI/PPSリファレンスp.60の表4.1を参照してください。
<?php define('PATH_CMaps', '/usr/local/pdflib7/resource/cmap'); $x = 10; $xt = 280; $y = 800; $yoff = 70; $textline = mb_convert_encoding('あいうえお かきくけこ', 'UCS-2LE', 'UTF-8'); $desc_opt = 'fontsize=12 boxsize={300 20} fitmethod=auto'; try { $p = new PDFlib(); $p->set_parameter("SearchPath", PATH_CMaps); $p->set_parameter("errorpolicy", "return"); $p->begin_document("", ""); $p->set_info("Creator", "Opentype Co.Ltd."); $p->set_info("Title", "Pretty Text Line"); $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $font = $p->load_font("HeiseiKakuGo-W5", "UniJIS-UCS2-H", ""); if ($font == 0) { die("Error: " . $p->get_errmsg()); } $p->setfont($font, 14); # オプションなしのテキスト $p->fit_textline($textline, $x, $y, ""); $p->fit_textline(mb_convert_encoding("オプションなし", 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 解説 # フォントサイズを変更 $optlist = 'fontsize=22'; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 取り消し線をひく $optlist = "strikeout"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 下線をひく $optlist = "underline underlinewidth=7% underlineposition=-20%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 上線をひく $optlist = "overline"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 文字幅 $optlist = "horizscaling=150%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 文字間の幅 $optlist = "charspacing=30%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 単語間の幅 $optlist = "wordspacing=200%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 文字色の変更 $optlist = "fillcolor={rgb 0.5 0.2 0.5}"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 文字枠の設定 $optlist = "fontsize=22 fillcolor={rgb 0.6 0.3 0.6} strokecolor={gray 0} " . "strokewidth=0.4 textrendering=2"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); # 中抜き白文字 $optlist = "fontsize=22 strokecolor={gray 0} strokewidth=0.4 textrendering=1"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline(mb_convert_encoding($optlist, 'UCS-2LE', 'UTF-8'), $xt, $y, $desc_opt); $p->end_page_ext(""); $p->end_document(""); $buf = $p->get_buffer(); $len = strlen($buf); header("Content-type: application/pdf"); header("Content-Length: $len"); header("Content-Disposition: inline; filename=pretty_text.pdf"); print $buf; } catch (PDFlibException $e) { die("PDFlib exception occurred in hello sample:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); } catch (Exception $e) { die($e); } $p = 0;
このPDFを見る
codeなにがし::PDFlibで文字修飾を変えるには