set_option("errorpolicy=exception searchpath={" . $searchpath . "}"); $p->begin_document("", "pdfa=PDF/A-2b") ; if ($p->load_iccprofile("sRGB", "usage=outputintent") == 0){ throw new Exception("Error: " . $p->get_errmsg() ."
\n" . "See www.pdflib.com for output intent ICC profiles."); } $p->set_info("Creator", "PDFlib Cookbook"); $p->set_info("Title", $title); $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $font = $p->load_font("NotoSerif-Regular", "winansi", "simplefont nosubsetting"); $p->setfont($font, 24.0); $p->fit_textline("Kraxi paper planes order form", $x1, $y, ""); $p->create_bookmark("Kraxi paper planes order form", ""); $p->setfont($font, 12.0); /* =================== Text field ======================== */ $y -= 3 * $fieldheight; $labeltext = "Enter name:"; $p->fit_textline($labeltext, $x1, $y + 0.5* $fieldheight, ""); $optlist = "currentvalue= {John Doe} bordercolor={gray 0.7} backgroundcolor={gray 0.9} font=" . $font; $p->create_field($x2, $y, $x2+$fieldwidth, $y+$fieldheight, "name", "textfield", $optlist); /* =================== Combo box ======================== */ $y -= 3 * $fieldheight; $labeltext = "Select size:"; $p->fit_textline($labeltext, $x1, $y + 0.5* $fieldheight, ""); /* Create a form field of type "combobox". * Set the values for the combobox items (itemnamelist={0 1 2 3 4}). * Set the labels for the combobox items (itemtextlist={...}). * Set the focus on the last item (currentvalue=XXL). * Allow the user to change an item (editable=true) */ $optlist = "font=" . $font . " fontsize=12 backgroundcolor={gray 0.9} " . "bordercolor={gray 0.7} itemnamelist={0 1 2 3 4} " . "currentvalue=XXL itemtextlist={S M L XL XXL} editable=true"; $p->create_field($x2, $y, $x2 + $fieldwidth, $y + $fieldheight, "size", "combobox", $optlist); /* =================== List box ======================== */ $y -= 4 * $fieldheight; $labeltext = "Select model:"; $p->fit_textline($labeltext, $x1, $y, ""); /* Create a form fiels of type "listbox". * Set the values for the list items (itemnamelist={0 1 2 3}). * Set the labels for the list items (itemtextlist={...}). * Set the focus on the second item (currentvalue=1). */ $optlist = "font=" . $font . " fontsize=12 backgroundcolor={gray 0.9} " . "bordercolor={gray 0.7} itemnamelist={0 1 2 3} currentvalue=1 " . "itemtextlist={{Long Distance Glider} {Giant Wing} " . "{Cone Head Rocket} {Super Dart}}"; $y -= 2.5 * $fieldheight; $p->create_field($x2, $y, $x2 + $fieldwidth, $y + 3*$fieldheight, "model", "listbox", $optlist); /* =================== Check boxes ======================== */ $y -= 2 * $fieldheight; $labeltext = "Select extras:"; $p->fit_textline($labeltext, $x1, $y, ""); /* Create several form fields of type "checkbox" */ $optlist = "buttonstyle=cross bordercolor={gray 0} " . "backgroundcolor={rgb 0.95 0.95 1} fillcolor={rgb 0.25 0 0.95}"; /* Emit the Caption text before the field because logically it comes first. */ $labeltext = "glossy paper"; $p->fit_textline($labeltext, $x2 + 2 * $fieldsmall, $y, ""); $p->create_field($x2, $y, $x2 + $fieldsmall, $y + $fieldsmall, $labeltext, "checkbox", $optlist . " currentvalue={On}"); $y -= $fieldheight; $labeltext = "rainbow colors"; $p->fit_textline($labeltext, $x2 + 2 * $fieldsmall, $y, ""); $p->create_field($x2, $y, $x2 + $fieldsmall, $y + $fieldsmall, $labeltext, "checkbox", $optlist); /* =================== radio buttons ======================== */ $y -= 3 * $fieldheight; $labeltext = "Select color:"; $p->fit_textline($labeltext, $x1, $y, ""); /* First create a form field group called "colors" */ $p->create_fieldgroup("colors", "fieldtype=radiobutton"); /* Create several form fields of type "radiobutton". * All fields belong to the "colors" field grou$p-> Indicate this * relationship by providing each radiobutton field name with the * prefix "colors.". * Activate the first radio button (currentvalue={On}). */ $optlist = "buttonstyle=circle bordercolor={gray 0.8}"; /* Emit the Caption text before the field because logically it comes first. */ $labeltext = "standard"; $p->fit_textline($labeltext, $x2 + 2 * $fieldsmall, $y, ""); $p->create_field($x2, $y, $x2 + $fieldsmall, $y + $fieldsmall, "colors." . $labeltext, "radiobutton", $optlist . " currentvalue={On} "); $y -= $fieldheight; $labeltext = "yellow"; $p->fit_textline($labeltext, $x2 + 2 * $fieldsmall, $y, ""); $p->create_field($x2, $y, $x2 + $fieldsmall, $y + $fieldsmall, "colors." . $labeltext, "radiobutton", $optlist); $y -= $fieldheight; $labeltext = "blue"; $p->fit_textline($labeltext, $x2 + 2 * $fieldsmall, $y, ""); $p->create_field($x2, $y, $x2 + $fieldsmall, $y + $fieldsmall, "colors." . $labeltext, "radiobutton", $optlist); $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=form_fields_pdfa2b.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; ?>