Our paper planes" . " are the " . "ideal " . "way of passing the time. We offer " . "re­volu­tionary " . "new develop­ments of the traditional common paper planes. If your " . "lesson, conference, or lecture turn out to be deadly boring, you " . "can have a wonderful time with our planes. All our models are " . "fol­ded from one paper sheet. They are exclu­sively folded " . "with­out using any adhesive. Several models are equipped with " . "a folded landing gear enabling a " . "safe landing " . "on the intended loca­tion provided that you " . "have aimed well. Other models are able to fly loops or cover long " . "distances. Let them start from a vista point in the mountains " . "and see where they touch the ground. "; /* アンダーラインの装飾にマッチボックスを使用するテキスト */ $coloredtext = "" . "Our paper planes" . " " . "are the " . "" . "ideal" . " " . "way of passing the time. We offer " . "" . "re­volu­tionary" . " " . "new develop­ments of the traditional " . "common paper planes. If your lesson, conference, or lecture turn " . "out to be deadly boring, you can have a wonderful time with our " . "planes. All our models are fol­ded from one paper sheet. They " . "are exclu­sively folded with­out using any adhesive. " . "Several models are equipped with a folded landing gear enabling a " . "" . "safe landing" . " " . "on the intended loca­tion provided that you " . "have aimed well. Other models are able to fly loops or cover long " . "distances. Let them start from a vista point in the mountains and ". "see where they touch the ground. "; try { $p = new pdflib(); $p->set_option("searchpath={" . $searchpath . "}"); /* load_font() 等の戻り値を確認する */ $p->set_option("errorpolicy=return"); if ($p->begin_document($outfile, "") == 0) throw new Exception("Error: " . $p->get_errmsg()); $p->set_info("Creator", "PDFlib Cookbook"); $p->set_info("Title", $title ); $font = $p->load_font("NotoSerif-Regular", "unicode", ""); if ($font == 0) throw new Exception("Error: " . $p->get_errmsg()); $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $p->setfont($font, 18); /* ******************************************************** */ $p->fit_textline("Textline with default underline settings:", $llx, $y, "fillcolor=red"); $p->fit_textline("Our paper planes are the ideal way of passing the time.", $llx, $y-=25, "underline"); /* ******************************************************** */ $p->fit_textline("Textline with custom underline width and position:", $llx, $y-=50, "fillcolor=red"); $p->fit_textline("Our paper planes are the ideal way of passing the time.", $llx, $y-=25, "underline underlinewidth=3 underlineposition=-40%"); /* ******************************************************** */ $p->fit_textline("Textflow with default underline settings:", $llx, $y-=65, "fillcolor=red"); $tf = $p->create_textflow($text, $optlist . " leading=120%"); if ($tf == 0) throw new Exception("Error: " . $p->get_errmsg()); $result = $p->fit_textflow($tf, $llx, $lly-200, $urx, $y-=10, ""); if ($result != "_stop") { /* さらに処理を行う */ } $p->delete_textflow($tf); /* ******************************************************** */ $p->fit_textline("Textflow with custom underline width and position:", $llx, $y-=190, "fillcolor=red"); $tf = $p->create_textflow($text, $optlist . " leading=140% " . "underlinewidth=1.5 underlineposition=-30%"); if ($tf == 0) throw new Exception("Error: " . $p->get_errmsg()); $result = $p->fit_textflow($tf, $llx, $lly, $urx, $y-=10, ""); if ($result !="_stop") { /* さらに処理を行う */ } $p->delete_textflow($tf); /* ******************************************************** */ $p->fit_textline("Textflow with custom underlines via matchboxes:", $llx, $y-=220, "fillcolor=red"); $tf = $p->create_textflow($coloredtext, $optlist . " leading=120% "); if ($tf == 0) throw new Exception("Error: " . $p->get_errmsg()); $result = $p->fit_textflow($tf, $llx, $lly, $urx, $y-=10, ""); if ($result != "_stop") { /* さらに処理を行う */ } $p->delete_textflow($tf); $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=underlined_text.pdf"); print $buf; } catch (PDFlibException $e) { echo("PDFlib exception occurred:\n". "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); exit(1); } catch (Throwable $e) { echo("PHP exception occurred: " . $e->getMessage() . "\n"); exit(1); } $p = 0; ?>