MDL-42240 assignfeedback_editpdf: improve ghostscript debugging
authorDan Poltawski <dan@moodle.com>
Thu, 10 Oct 2013 05:05:17 +0000 (13:05 +0800)
committerDan Poltawski <dan@moodle.com>
Thu, 10 Oct 2013 05:55:46 +0000 (13:55 +0800)
mod/assign/feedback/editpdf/classes/pdf.php
mod/assign/feedback/editpdf/lang/en/assignfeedback_editpdf.php

index f83a5e1..0244ee2 100644 (file)
@@ -401,11 +401,16 @@ class pdf extends \FPDI {
                 "-dGraphicsAlphaBits=4 -dTextAlphaBits=4 -sOutputFile=\"$imagefile\" \"$filename\"";
 
             //$command = escapeshellcmd($command);
-            $result = exec($command);
+            $output = null;
+            $result = exec($command, $output);
             if (!file_exists($imagefile)) {
-                $fullerror = 'Command:' . ($command) . '<br/>';
-                $fullerror .= 'Result:' . htmlspecialchars($result) . '<br/>';
-                throw new \moodle_exception('errorgenerateimage', 'assignfeedback_pdf', '', $fullerror);
+                $fullerror = '<pre>'.get_string('command', 'assignfeedback_editpdf')."\n";
+                $fullerror .= $command . "\n\n";
+                $fullerror .= get_string('result', 'assignfeedback_editpdf')."\n";
+                $fullerror .= htmlspecialchars($result) . "\n\n";
+                $fullerror .= get_string('output', 'assignfeedback_editpdf')."\n";
+                $fullerror .= htmlspecialchars(implode("\n",$output)) . '</pre>';
+                throw new \moodle_exception('errorgenerateimage', 'assignfeedback_editpdf', '', $fullerror);
             }
         }
 
index 1b23a21..2655133 100644 (file)
@@ -33,6 +33,7 @@ $string['clear'] = 'Clear';
 $string['colourpicker'] = 'Colour Picker';
 $string['commentcolour'] = 'Comment color';
 $string['comment'] = 'Comments';
+$string['command'] = 'Command:';
 $string['commentcontextmenu'] = 'Comment context menu';
 $string['couldnotsavepage'] = 'Could not save page {$a}';
 $string['currentstamp'] = 'Stamp';
@@ -41,6 +42,7 @@ $string['deletecomment'] = 'Delete comment';
 $string['deletefeedback'] = 'Delete feedback PDF';
 $string['downloadablefilename'] = 'feedback.pdf';
 $string['downloadfeedback'] = 'Download feedback PDF';
+$string['errorgenerateimage'] = 'Error generating image with ghostscript, debugging info: {$a}';
 $string['editpdf'] = 'Annotate PDF';
 $string['editpdf_help'] = 'Annotate students submissions directly in the browser and produce an edited downloadable PDF.';
 $string['enabled'] = 'Annotate PDF';
@@ -59,11 +61,13 @@ $string['loadingeditor'] = 'Loading PDF editor';
 $string['navigatenext'] = 'Next page';
 $string['navigateprevious'] = 'Previous page';
 $string['oval'] = 'Oval';
+$string['output'] = 'Output:';
 $string['pagexofy'] = 'Page {$a->page} of {$a->total}';
 $string['pen'] = 'Pen';
 $string['pluginname'] = 'Annotate PDF';
 $string['rectangle'] = 'Rectangle';
 $string['red'] = 'Red';
+$string['result'] = 'Result:';
 $string['searchcomments'] = 'Search comments';
 $string['select'] = 'Select';
 $string['stamppicker'] = 'Stamp picker';