public function sendEmailAction() { $invoice = $this->invoiceService->getInvoiceById($this->params('id')); require "vendor/autoload.php"; // inhibit DOMPDF's auto-loader define('DOMPDF_ENABLE_AUTOLOAD', false); //include the DOMPDF config file (required) require 'vendor/dompdf/dompdf/dompdf_config.inc.php'; //if you get errors about missing classes please also add: require_once 'vendor/dompdf/dompdf/include/autoload.inc.php'; if ($this->request->isPost()) { $now = new \DateTime(); $viewRenderer = $this->serviceLocator->get('view_manager')->getRenderer(); $document = $this->invoiceService->getInvoiceById($this->params('id')); $layoutViewModel = $this->layout(); $layoutViewModel->setTemplate('layout/layout'); $viewModel = new ViewModel(array('document' => $invoice, 'rows' => $document->getRows())); $viewModel->setTemplate('application/document/pdf/invoice'); $rendered = $viewRenderer->render($viewModel); if ($rendered) { $output_document_dir = "data/files/Document/"; $fileNameDocument = $invoice->getId() . '_' . $invoice->getPrefix() . $invoice->getDocumentNumber() . '.pdf'; $dompdf = new \DOMPDF(); $dompdf->load_html($rendered); $dompdf->render(); $output = $dompdf->output(); file_put_contents($output_document_dir . $fileNameDocument, $output); $size = filesize($output_document_dir . $fileNameDocument); $type = filetype($output_document_dir . $fileNameDocument); $fileData = array('file' => $output_document_dir . $fileNameDocument, 'fileName' => $fileNameDocument); $translator = $this->serviceLocator->get('MvcTranslator'); try { $this->invoiceService->sendInvoiceEmail($invoice, $this->request->getPost(), $fileData); $this->flashMessenger()->addMessage($translator->translate('Controller.SendInvoice.InvoiceSended')); } catch (\Exception $e) { $this->flashMessenger()->addMessage($translator->translate('Controller.SendInvoice.Exception:') . $e->getMessage()); } } } return $this->redirect()->toRoute('application/default', array('controller' => 'document', 'action' => 'view-invoice', 'id' => $invoice->getId())); }