set_option("searchpath={" . $searchpath . "}"); # load_font() 等でエラーが起きた場合、0を返す $p->set_option("errorpolicy=return"); $p->set_option("stringformat=utf8"); # 出力PDF文書を開く if ($p->begin_document("", "") == 0) { echo("Error: " . $p->get_errmsg()); exit(1); } $p->set_info("Creator", "PDFlib Cookbook"); $p->set_info("Title", "Starter Text Line"); # 出力PDFページをA4サイズで作成する $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $font = $p->load_font("Helvetica", "unicode", ""); if ($font == 0) { echo("Error: " . $p->get_errmsg()); exit(1); } # フォントと、フォントサイズを指定する $p->setfont($font, 14); # ----------------------- # 1行目 : オプション無し # ----------------------- # オプション無しで出力 # # サンプルテキスト $p->fit_textline($textline, $x, $y, ""); # 説明用テキスト $p->fit_textline("fit_textline() without any options", $xt, $y, "fontsize=12"); # --------------------------- # 2行目 : フォントサイズ設定 # --------------------------- # "fontsize" フォントサイズを設定 # $optlist = "fontsize=22"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ------------------- # 3行目 : 取り消し線 # ------------------- # "strikeout" 取り消し線 # $optlist = "strikeout"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ----------------------- # 4行目 : アンダーライン # ----------------------- # "underline" アンダーラインを引く # "underlinewidth" アンダーラインの線幅を指定 # "underlineposition" アンダーラインの位置を、フォントのベースライン # からの距離で指定 # $optlist = "underline underlinewidth=7% underlineposition=-20%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ----------------------- # 5行目 : オーバーライン # ----------------------- # "overline" オーバーラインを引く # $optlist = "overline"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ----------------------------- # 6行目 : フォントの横幅の拡大 # ----------------------------- # "horizscaling" フォントの横幅の倍率を設定 # $optlist = "horizscaling=150%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ----------------------- # 7行目 : 文字間隔の設定 # ----------------------- # "charspacing=30%" 文字の間にフォントサイズの30%のスペースを挿入 # $optlist = "charspacing=30%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ----------------------- # 8行目 : 単語間隔を設定 # ----------------------- # "wordspacing=50%" 単語の間にフォントサイズの50%のスペースを挿入 # $optlist = "wordspacing=50%"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # 説明用テキスト # ------------------------------------- # 9行目 : フォントの塗りつぶし色を設定 # ------------------------------------- # "fillcolor" フォントの塗りつぶし色を設定 # $optlist = "fillcolor={rgb 0.5 0.2 0.5}"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); $p->fit_textline($optlist, $xt, $y, "fontsize=12"); # -------------------------------------- # 10行目 : フォントを塗りつぶし、縁取る # -------------------------------------- # "fontsize" フォントサイズを設定 # "fillcolor" フォントの塗りつぶし色を設定 # "strokecolor" 縁取り線の色を設定 # "strokewidth" 縁取り線の幅を設定 # "textrendering=2" フォントを塗りつぶし、縁取る。 # $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("fillcolor={rgb 0.6 0.3 0.6} strokecolor={gray 0} ", $xt, $y+10, "fontsize=12"); $p->fit_textline("strokewidth=0.4 textrendering=2 fontsize=22", $xt, $y-5, "fontsize=12"); # ---------------- # 11行目 : 袋文字 # ---------------- # "fontsize" フォントサイズを設定 # "strokecolor" 縁取り線の色を設定 # "strokewidth" 縁取り線の幅を設定 # "textrendering=1" 袋文字 # $optlist = "fontsize=22 strokecolor={gray 0} strokewidth=0.4 textrendering=1"; # サンプルテキスト $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # 説明用テキスト $p->fit_textline("strokecolor={gray 0} strokewidth=0.4", $xt, $y+10, "fontsize=12"); $p->fit_textline("textrendering=1 fontsize=22", $xt, $y-=5, "fontsize=12"); # ----------------------------------------- # 12行目 : はめ込み枠内に配置(デフォルト) # ----------------------------------------- # "boxsize={200 20}" はめ込み枠の大きさ。幅200×高さ20 # "showborder" はめ込み枠の境界線 # # テキストは、はめ込み枠内の左下に配置される(デフォルト値) # $optlist = "boxsize={200 20} showborder"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y+3, "fontsize=12"); # 説明用テキスト # ---------------------------------- # 13行目 : はめ込み枠内の右上に配置 # ---------------------------------- # "boxsize={200 20}" はめ込み枠の大きさ。幅200×高さ20 # "position={top right}" はめ込み枠内の、右上にテキストを配置 # "showborder" はめ込み枠の境界線 # $optlist = "boxsize={200 20} position={top right} showborder"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y+3, "fontsize=12"); # 説明用テキスト # ------------------------------------------------ # 14行目 : はめ込み枠からはみ出た部分を切り落とす # ------------------------------------------------ # "boxsize={130 20}" はめ込み枠の大きさ。幅130×高さ20 # "fitmethod=clip" はめ込み枠に対し、テキストが大きい場合は、枠より # はみ出た部分が切り落とされる # "showborder" はめ込み枠の境界線 # $optlist = "boxsize={130 20} fitmethod=clip showborder"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y+3, "fontsize=12"); # 説明用テキスト # ------------------------------------------------------------ # 15行目 : はめ込み枠の大きさに合わせ、テキストを枠内に収める # ------------------------------------------------------------ # "boxsize={130 20}" はめ込み枠の大きさ。幅130×高さ20 # # "fitmethod=auto" テキストをはめ込み枠内に自動的に収める。 # テキストが枠内に収まる場合は、そのままの大きさで配置する。 # テキストが枠より大きく、収まりきらない場合は、フォントの横幅を元の # 75%を下限とし、縮小させて配置する。 # 75%に縮小しても枠内に収まりきらない場合は、"fitmethod=meet"が適用さ # れ、縦横比を保ったまま、枠内に収まるようフォントを縮小する。 # # "shrinklimit=0.75" デフォルト値のため省略。"fitmethod=auto"でテキス # トを枠内に収めるために使用する、長体比率の下限 # # このケースは、テキストが枠より 大きく、枠内に収まりきらないため、文 # 字の横幅を75%を下限とし縮小させ枠内に収める # $optlist = "boxsize={130 20} fitmethod=auto showborder"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y+3, "fontsize=12"); # 説明用テキスト # ------------------------------------------------------ # 16行目 : 小さなはめ込み枠に、縦横比を保ったまま配置 # ------------------------------------------------------ # はめ込み枠のサイズをさらに小さくし(80×20)、"fitmethod=auto"で、テキ # ストを自動的に縮小し枠内に収める。 # # このケースは、文字の横幅を元の75%に縮小しても枠内に収まりきらないため、 # "fitmethod=meet"が適用され、縦横比を保ったまま枠内に収まるようフォン # トを、縮小し配置する # $optlist = "boxsize={100 20} fitmethod=auto showborder"; $p->fit_textline($textline, $x, $y-=$yoff, $optlist); # サンプルテキスト $p->fit_textline($optlist, $xt, $y+3, "fontsize=12"); # 説明用テキスト $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=starter_textline.pdf"); print $buf; } catch (PDFlibException $e) { echo("PDFlib exception occurred in starter_textline sample:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); exit(1); } catch (Exception $e) { echo($e); exit(1); } $p = 0; ?>