diff --git a/src/fpdm.php b/src/fpdm.php
index fb8627d..113e3a2 100644
--- a/src/fpdm.php
+++ b/src/fpdm.php
@@ -471,7 +471,7 @@ function Allow($permissions=null) {
*@internal flatten mode is not yet supported
*@param Boolean flatten Optional, false by default, if true will use pdftk (requires a shell) to flatten the pdf form
**/
- function Merge($flatten=false) {
+ function Merge($flatten=false,$read_only=false) {
//------------------------------
if($flatten) $this->Flatten();
@@ -504,7 +504,7 @@ function Merge($flatten=false) {
//==== Alterate work is made here: change values ============
if($count_fields) {
foreach($fields as $name => $value) {
- $this->set_field_value("current",$name,$value);
+ $this->set_field_value("current",$name,$value,$read_only);
// $value=''; //Strategy applies only to current value, clear others
// $this->set_field_value("default",$name,$value);
// $this->set_field_value("tooltip",$name,$value);
@@ -823,7 +823,7 @@ function _encode_value($str) {
return $this->_bin2hex($str);
}
- function _set_field_value2($line,$value,$append) {
+ function _set_field_value2($line,$value,$append,$read_only) {
$CurLine=$this->pdf_entries[$line];
$OldLen=strlen($CurLine);
@@ -843,6 +843,9 @@ function _set_field_value2($line,$value,$append) {
else
$this->Error('/V not found');
}
+ if ($read_only) {
+ $CurLine .= ' /Ff 1';
+ }
$NewLen=strlen($CurLine);
$Shift=$NewLen-$OldLen;
@@ -859,7 +862,7 @@ function _set_field_value2($line,$value,$append) {
*@param string $name name of the field annotation to change the value
*@param string $value the new value to set
**/
- function set_field_value($type,$name,$value) {
+ function set_field_value($type,$name,$value,$read_only=false) {
//------------------------------------
$verbose_set=($this->verbose&&($this->verbose_level>1));
@@ -886,9 +889,9 @@ function set_field_value($type,$name,$value) {
if($verbose_set) echo "
Change $type value of the field $name at line $field_value_line to '$value'";
$offset_shift=$this->_set_field_value($field_value_line,$value);*/
if(isset($this->value_entries[$name]["values"]["current"]))
- $offset_shift=$this->_set_field_value2($this->value_entries[$name]["values"]["current"],$value,false);
+ $offset_shift=$this->_set_field_value2($this->value_entries[$name]["values"]["current"],$value,false,$read_only);
else
- $offset_shift=$this->_set_field_value2($this->value_entries[$name]["infos"]["name_line"],$value,true);
+ $offset_shift=$this->_set_field_value2($this->value_entries[$name]["infos"]["name_line"],$value,true,$read_only);
}
// }else
// $this->Error("set_field_value failed as invalid valuetype $type for object $object_id");