set_option("errorpolicy=return SearchPath={{" . $searchpath . "}}"); if ($p->begin_document("", "pdfx=PDF/X-5n") == 0) { throw new Exception("Error: " + $p->get_errmsg()); } $p->set_info("Creator", "PDFlib starter sample"); $p->set_info("Title", 'starter_pdfx5n'); if ($p->load_iccprofile($profilename, "usage=outputintent") == 0) { print("Error: " . $p->get_errmsg(). "\n"); print("An n-colorant ('xCLR') printer profile is required as output intent for PDF/X-5n.\n"); exit(1); } $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $p->fit_textline("PDF/X-5n starter sample with 7-color output intent", 50, 800, "fontsize=18 fontname=NotoSerif-Regular"); /* * Create a DeviceN color space with two of the device's process * colors. The following types of spot colors can be used for * PDF/X-5n: * - all built-in Pantone and HKS colors * - spot colors described in the n-colorant output intent profile * - custom spot colors defined with makespotcolor() * * Spot colors listed in the 7-color ICC profile don't have to be * defined explicitly since PDFlib reads the definitions from the * ICC profile. */ $devicen = $p->create_devicen( "names={{Orange} {Violet}} alternate=lab transform={{" . $transform2 . "}} errorpolicy=exception"); $p->set_graphics_option("fillcolor={devicen " . $devicen . " 0.9 0.2}"); /* Fill a circle with the DeviceN color defined above */ $p->circle(400, 600, 100); $p->fill(); /* Load a CMYK image without embedded ICC profile */ $image = $p->load_image("auto", $imagefile, ""); if ($image == 0) { throw new Exception("Error: " . $p->get_errmsg()); } $scaleopt="scale=0.75"; /* Place a diagonal stamp across the image area */ $width = $p->info_image($image, "width", $scaleopt); $height = $p->info_image($image, "height", $scaleopt); /* Place the image on the page and close it */ $p->fit_image($image, 0.0, 0.0, $scaleopt); $p->close_image($image); $p->fit_textline("CMYK image", 0, 0, "fontsize=48 fontname=NotoSerif-Regular " . " boxsize={" . $width . " " . $height . "} stamp=ll2ur"); $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_pdfx5n.pdf"); print $buf; } catch (PDFlibException $e) { echo("PDFlib exception occurred in starter_pdfx5n sample:" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg()); exit(1); } catch (Throwable $e) { echo($e); exit(1); } $p = 0; ?>