general/permission_settings
Change the permission settings so that only commenting the PDF is allowed.
Download PHP Code Switch to Java Code Show Output
<?php
/*
* Permission Settings:
* Change the permission settings so that only commenting the PDF is allowed
*
* Define a master password of "PDFlib" and set the permissions so that
* printing (noprint nohiresprint), content extraction (nocopy)
* and changing the page contents or form field definitions (noassemble) will
* not be allowed, while creating annotations and filling out form fields will
* be permitted.
*
* Required software: PDFlib/PDFlib+PDI/PPS 10
* Required data: none
*/
/* This is where the data files are. Adjust as necessary. */
$searchpath = dirname(__FILE__,3)."/input";
$outfile = "";
$title = "Permission Settings";
try {
$p = new pdflib();
$p->set_option("searchpath={" . $searchpath . "}");
/* This means we must check return values of load_font() etc. */
$p->set_option("errorpolicy=return");
/* Define a master password of "PDFlib" and set the permissions so that
* printing (noprint nohiresprint), contents extraction (nocopy)
* and changing the page contents or form field
* definitions (noassemble) will not be allowed, while creating
* annotations and filling out form fields will be permitted.
*/
$optlist = "masterpassword=PDFlib permissions={noprint nohiresprint " .
"nocopy noassemble}";
if ($p->begin_document($outfile, $optlist) == 0)
throw new Exception("Error: " . $p->get_errmsg());
$p->set_info("Creator", "PDFlib Cookbook");
$p->set_info("Title", $title );
/* Start page */
$p->begin_page_ext(800, 400, "");
$text = "The master password for this document is set to \"PDFlib\". " .
"The permissions for this document are set in a way that you " .
"can only create annotations. To accomplish this use the " .
"following options in the begin_document() call:<nextline>" .
"masterpassword=PDFlib<nextline>permissions={noprint " .
"nohiresprint nocopy noassemble}";
$tf = $p->create_textflow($text, "fontname=NotoSerif-Regular" .
" fontsize=20 leading=140%");
$p->fit_textflow($tf, 50, 50, 750, 350, "");
$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=permission_settings.php");
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($e->getMessage());
exit(1);
}
$p = 0;
?>