From c0e40d3018e4f91a0a2321620ccf4da974887275 Mon Sep 17 00:00:00 2001 From: Marko Kallio <marko.kallio@suomenpt.fi> Date: Sat, 7 Apr 2018 08:48:17 +0300 Subject: [PATCH 1/3] Added support for array options for wkhtmltopdf engine --- Pdf/Engine/WkHtmlToPdfEngine.php | 4 ++++ Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Pdf/Engine/WkHtmlToPdfEngine.php b/Pdf/Engine/WkHtmlToPdfEngine.php index 9fe2d487..43b85486 100644 --- a/Pdf/Engine/WkHtmlToPdfEngine.php +++ b/Pdf/Engine/WkHtmlToPdfEngine.php @@ -106,6 +106,10 @@ protected function _getCommand() { continue; } elseif ($value === true) { $command .= ' --' . $key; + } elseif (is_array($value)) { + foreach ($value as $k => $v) { + $command .= sprintf(' --%s %s %s', $key, escapeshellarg($k), escapeshellarg($v)); + } } else { $command .= sprintf(' --%s %s', $key, escapeshellarg($value)); } diff --git a/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php b/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php index abc22bc3..decc8e81 100644 --- a/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php +++ b/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php @@ -35,11 +35,15 @@ public function testGetCommand() { 'options' => array( 'boolean' => true, 'string' => 'value', - 'integer' => 42 + 'integer' => 42, + 'array' => array( + 'first' => 'firstValue', + 'second' => 'secondValue' + ) ) )); $result = $method->invokeArgs($Pdf->engine(), array()); - $expected = "/usr/bin/wkhtmltopdf --quiet --print-media-type --orientation 'portrait' --page-size 'A4' --encoding 'UTF-8' --boolean --string 'value' --integer '42' - -"; + $expected = "/usr/bin/wkhtmltopdf --quiet --print-media-type --orientation 'portrait' --page-size 'A4' --encoding 'UTF-8' --boolean --string 'value' --integer '42' --array 'first' 'firstValue' --array 'second' 'secondValue' - -"; $this->assertEquals($expected, $result); } } From 9f1d5c709c27c3577848f6326bc52401867ef9fa Mon Sep 17 00:00:00 2001 From: Marko Kallio <makallio85@users.noreply.github.com> Date: Sat, 7 Apr 2018 08:51:33 +0300 Subject: [PATCH 2/3] Update WkHtmlToPdfEngine.php --- Pdf/Engine/WkHtmlToPdfEngine.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Pdf/Engine/WkHtmlToPdfEngine.php b/Pdf/Engine/WkHtmlToPdfEngine.php index 43b85486..97539aff 100644 --- a/Pdf/Engine/WkHtmlToPdfEngine.php +++ b/Pdf/Engine/WkHtmlToPdfEngine.php @@ -106,10 +106,10 @@ protected function _getCommand() { continue; } elseif ($value === true) { $command .= ' --' . $key; - } elseif (is_array($value)) { - foreach ($value as $k => $v) { - $command .= sprintf(' --%s %s %s', $key, escapeshellarg($k), escapeshellarg($v)); - } + } elseif (is_array($value)) { + foreach ($value as $k => $v) { + $command .= sprintf(' --%s %s %s', $key, escapeshellarg($k), escapeshellarg($v)); + } } else { $command .= sprintf(' --%s %s', $key, escapeshellarg($value)); } From 7f267b56b17a0306ff111014939c4757639c8607 Mon Sep 17 00:00:00 2001 From: Marko Kallio <makallio85@users.noreply.github.com> Date: Sat, 7 Apr 2018 08:52:03 +0300 Subject: [PATCH 3/3] Update WkHtmlToPdfEngineTest.php --- Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php b/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php index decc8e81..545cfb9b 100644 --- a/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php +++ b/Test/Case/Pdf/Engine/WkHtmlToPdfEngineTest.php @@ -36,10 +36,10 @@ public function testGetCommand() { 'boolean' => true, 'string' => 'value', 'integer' => 42, - 'array' => array( - 'first' => 'firstValue', - 'second' => 'secondValue' - ) + 'array' => array( + 'first' => 'firstValue', + 'second' => 'secondValue' + ) ) )); $result = $method->invokeArgs($Pdf->engine(), array());