diff --git a/src/Resume/Command/PdfCommand.php b/src/Resume/Command/PdfCommand.php index 78c8950..1031368 100644 --- a/src/Resume/Command/PdfCommand.php +++ b/src/Resume/Command/PdfCommand.php @@ -31,6 +31,25 @@ class PdfCommand extends HtmlCommand InputOption::VALUE_REQUIRED, 'Which of the templates to use' ) + ->addOption( + 'htmlonly', + 'H', + InputOption::VALUE_NONE, + 'Only render interim HTML (don\'t run wkhtmltopdf)' + ) + ->addOption( + 'keephtml', + 'k', + InputOption::VALUE_NONE, + 'Keep interim HTML' + ) + ->addOption( + 'pdfargs', + 'p', + InputOption::VALUE_REQUIRED, + 'Passthrough arguments for wkhtmltopdf', + '--dpi 300 -s Letter' + ) ->addOption( 'output', 'o', @@ -48,6 +67,9 @@ class PdfCommand extends HtmlCommand $template = $input->getOption('template'); $pdfSource = join(DIRECTORY_SEPARATOR, array($destination, '.tmp_pdf_source.html')); $optFilename = $input->getOption('output'); + $htmlonly = $input->getOption('htmlonly'); + $keephtml = $input->getOption('keephtml'); + $pdfargs = $input->getOption('pdfargs'); $destFilename = join(DIRECTORY_SEPARATOR, array($destination, pathinfo($source, PATHINFO_FILENAME) . '.pdf')); @@ -82,11 +104,24 @@ class PdfCommand extends HtmlCommand // Save to a temp destination for the pdf renderer to use file_put_contents($pdfSource, $rendered); + // command that will be invoked to convert html to pdf + $cmd = "wkhtmltopdf $pdfargs $pdfSource $destFilename"; + // Process the document with wkhtmltopdf - exec('wkhtmltopdf --dpi 300 ' . $pdfSource .' ' . $destFilename); + if(!$htmlonly) + exec($cmd); // Unlink the temporary file - unlink($pdfSource); + if(!($htmlonly || $keephtml)) + unlink($pdfSource); + else + $output->writeln( + sprintf( + "Keeping interim HTML: %s", + $pdfSource + ), + $this->app->outputFormat + ); $output->writeln( sprintf(