Thread:Extension talk:Pdf Export/Htmldoc - permissions incorrectly set

Using MW 1.24.1 with htmldoc it seems that the 'permissions' option is incorrectly set in the converter.

The code initially sets the permissions option to null, It then adds the permissions prefixing them with '--permissions' (e.g. '--permissions no-modify'). However, when it comes to execute the htmldoc process it uses "'--permissions '.$permissions". this produces a command-line containing (for example) '--permissions --permissions no-modify').

In our case we didn't set any permissions, but did set the paper size (which follows permissions) to A4. This failed and always produced a Letter sized PDF. Dumping the command-line out showed that the permissions option was still being used - e.g. '--permissions --size A4'. I assume that htmldoc barfed on this and ignored the A4 size option. So a default needed to be set.

I used the following patch to correct the problems:

--- HtmlDocPdfConverter.php.orig       2014-12-01 23:15:27.000000000 +0000 +++ HtmlDocPdfConverter.php    2015-03-03 14:21:21.455341787 +0000 @@ -43,9 +43,9 @@                                $perms[] = 'no-annotate'; }                        if( count( $perms ) == 0 ) { -                              $options['permissions'] .= '--permissions all --encryption'; +                              $options['permissions'] = 'all --encryption'; } else { -                              $options['permissions'] .= '--permissions '. implode( ',', $perms ). ' --encryption'; +                              $options['permissions'] = implode( ',', $perms ). ' --encryption'; }                       if( $options['owner_pass'] != '' ) { @@ -54,6 +54,8 @@                       if( $options['user_pass'] != '' ) { $options['permissions'] .= ' --user-password '. $options['user_pass']; } +              } else { +                      $options['permissions'] = 'all'; }       }