public function testResponseHeadersWithFileName() { $model = new PdfModel(); $model->setTemplate('basic.phtml'); $model->setOption('filename', 'testPdfFileName'); $this->event->setModel($model); $this->event->setResponse($this->response); $this->event->setRenderer($this->renderer); $this->event->setResult($this->renderer->render($model)); $this->strategy->injectResponse($this->event); $headers = $this->event->getResponse()->getHeaders(); $contentDispositionHeader = $headers->get('Content-Disposition'); $this->assertInstanceof('Zend\\Http\\Header\\ContentDisposition', $contentDispositionHeader); $this->assertEquals($contentDispositionHeader->getFieldValue(), 'attachment; filename=testPdfFileName.pdf'); }
public function createpdfAction() { $data = $_POST; header('Content-type: text/html; charset=UTF-8'); // /* $pdf = new PdfModel(); $pdf->setVariables(array('blueprint' => $data['blueprint'], 'order_table' => $data['order_table'])); return $pdf; // */ /* return new ViewModel(array( 'blueprint' => $data['blueprint'], )); */ }
public function pdfAction() { $id = (int) $this->params()->fromRoute('id', 0); $download = (int) $this->params()->fromQuery('download', 0); if (!$id) { return $this->redirect()->toRoute('welcome', array('action' => 'index')); } $news = $this->getNewsTable()->getNews($id); $pdf = new PdfModel(); if ($download === 1) { $pdf->setOption('filename', rand(111111, 99999999)); } $pdf->setOption('paperSize', 'a4'); $pdf->setVariables(array('id' => $id, 'news' => $news)); return $pdf; }
public function reportUnsubscibePDFAction() { $this->accessRights(20); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $this->adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'); $pdf = new PdfModel(); $pdf->setOption('filename', 'unsubscribed-report'); // Triggers PDF download, automatically appends ".pdf" $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'portrait'); // Defaults to "portrait" $pdf->setTemplate('report/unsubscribed_report_pdf'); $this->adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'); $usform = new MandrillInfoForm(); //Get Post Data & Redirect to Filter Function $request = $this->getRequest(); //Get form object if ($request->isPost()) { $from = $_POST['unsubscribe_from']; $to = $_POST['unsubscribe_to']; $usform->get('from')->setValue($from); $usform->get('to')->setValue($to); $result = $this->getUnsubscribeTable()->UnsubscribeList($this->adapter, $from, $to); } $pdf->setVariables(array('header' => 'Unsubscribed Report', 'unsubscribe_table' => $result)); $this->downloadFile('unsubscribed-report.pdf'); //Download File return $pdf; }
public function indexAction() { /** * Definindo o layout padrão do boleto */ $this->layout('layout/boleto'); $request = $this->getRequest(); $form = new \PhpBoletoZf2\Form\Boleto(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); $boleto = new BoletoBradesco($data); $sacado = new Sacado($data); $bradesco = $this->getServiceLocator()->get('Boleto\\Bradesco'); $bradesco->setSacado($sacado)->setBoleto($boleto); $dados = $bradesco->prepare(); } } switch ($this->params()->fromRoute('format')) { case 'html': default: return new ViewModel(array('dados' => $dados)); break; case 'pdf': $pdf = new PdfModel(); $pdf->setOption('filename', 'boleto-bradesco'); $pdf->setOption('enable_remote', true); $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setVariables(array('boleto' => $boleto)); return $pdf; break; } }
/** * @return PdfModel */ public function indexAction() { $em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default'); $id = $this->params()->fromRoute('id'); $helper = new AlboPretorioControllerHelper(); $records = $helper->recoverWrapperRecordsById(new AlboPretorioArticoliGetterWrapper(new AlboPretorioArticoliGetter($em)), array('id' => $id, 'limit' => 1), $id); $pdf = new PdfModel(); $pdf->setOption('filename', 'albo-pretorio-relata-atto-' . $records[0]['id']); $pdf->setOption('paperSize', 'a4'); $pdf->setOption('paperOrientation', 'landscape'); $pdf->setVariables(array('record' => $records[0])); return $pdf; }
public function pdfAction() { $this->initializeFrontendWebsite(); $id = $this->params()->fromRoute('id'); $em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default'); $helper = new ContenutiControllerHelper(); $wrapper = $helper->recoverWrapperById(new ContenutiGetterWrapper(new ContenutiGetter($em)), array('id' => $id, 'limit' => 1), $id); $wrapper->setEntityManager($em); $records = $wrapper->addAttachmentsFromRecords($wrapper->getRecords(), array()); if (empty($records)) { return $this->redirectForUnvalidAccess(); } $pdf = new PdfModel(); $pdf->setOption('filename', Slugifier::slugify($records[0]['titolo'])); $pdf->setOption('paperSize', 'a4'); $pdf->setOption('paperOrientation', 'landscape'); $pdf->setVariables(array('record' => !empty($records) ? $records[0] : null, 'sitename' => $this->layout()->getVariable('sitename'))); $pdf->setTemplate('common/export/contenuti/contenuti-single-pdf.phtml'); return $pdf; }
/** * PDF export * * @return PdfModel|\Zend\Http\Response * @throws \ModelModule\Model\NullException */ public function pdfAction() { if ($this->getRequest()->isPost()) { $this->initializeFrontendWebsite(); $em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default'); $wrapper = new StatoCivileGetterWrapper(new StatoCivileGetter($em)); $wrapper->setInput(array('numero' => isset($post['numero']) ? $post['numero'] : null, 'anno' => isset($post['anno']) ? $post['anno'] : null, 'sezioneId' => isset($post['sezione']) ? $post['sezione'] : null, 'noScaduti' => isset($post['expired']) ? $post['expired'] : null, 'textSearch' => isset($post['testo']) ? $post['testo'] : null, 'orderBy' => 'sca.id DESC', 'limit' => 1500)); $wrapper->setupQueryBuilder(); $records = $wrapper->getRecords(); $pdf = new PdfModel(); $pdf->setOption('filename', 'stato-civile-' . date("dmYHis")); $pdf->setOption('paperSize', 'a4'); $pdf->setOption('paperOrientation', 'landscape'); $pdf->setVariables(array('records' => $records, 'sitename' => $this->layout()->getVariable('sitename'))); return $pdf; } return $this->redirectForUnvalidAccess(); }
public function reportBuCsrPDFAction() { $this->accessRights(20); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $pdf = new PdfModel(); $pdf->setOption('filename', 'bu-csr-overall-report'); // Triggers PDF download, automatically appends ".pdf" $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setTemplate('report/bu_csr_overall_pdf'); //Get Post Data & Redirect to Filter Function $request = $this->getRequest(); //Get form object if ($request->isPost()) { // To set view variables $pdf->setVariables(array('title' => 'BU-CSR Report: Overall Report', 'header' => 'Overall Report', 'media_value_image' => $request->getPost('media_value_image'), 'hits_image' => $request->getPost('hits_image'))); } $this->downloadFile('bu-csr-overall-report.pdf'); //Download File return $pdf; }
public function visioncronAction() { ini_set('default_charset', 'UTF-8'); ini_set('display_errors', 0); ini_set('max_execution_time', 0); //echo mb_internal_encoding(); exit; $sm = $this->getServiceLocator(); $users = $this->getService()->getUserforPdf(); $i = 0; foreach ($users as $key => $user) { try { if (isset($user['company_id']) && $user['company_id'] != '') { $pdf = ''; $pdfView = ''; $eng = ''; $detail = array(); //if($user['id']==94){ $result = $this->getService()->getVisionsInArrayByCompany($user['company_id']); if (!empty($result)) { $m = 0; foreach ($result as $k => $vision) { $perspectives = $this->getPerspectiveService()->viewPerspectiveByVision($vision['id']); $data = array(); $res = array(); $percentage = array(); $milestonesCount = 0; $milestones = ''; if (!empty($perspectives)) { foreach ($perspectives as $perspective) { if (isset($perspective['id'])) { $data[$perspective['id']]['perspective'] = $perspective['name']; $goals = $this->getGoalService()->getGoalsAndKpiInArrayByPerspective($perspective['id']); $data[$perspective['id']]['goals'] = $goals['data']; $milestonesCount = $goals['count']; $milestones = $goals['milestones']; } } foreach ($data as $key1 => $value1) { foreach ($value1['goals'] as $key2 => $value2) { foreach ($value2['kpis'] as $key3 => $value3) { foreach ($value3['milestones'] as $milestone) { /*$diff = $milestone['actualValue'] - $milestone['targetValue']; $actual[] = $milestone['actualValue']; $target[] = $milestone['targetValue'];*/ if ($milestone['actualValue'] != '' && $milestone['targetValue'] != '') { $diff = $milestone['actualValue'] - $milestone['targetValue']; $diff = abs($diff) / $milestone['targetValue']; $percentage[] = number_format($diff * 100, 0, ',', '.'); } } } } } /*$actualv = array_sum($actual); $targetv = array_sum($target); $diff = $actualv - $targetv;*/ //print_r($percentage); exit; //echo count($percentage).'ppp'; exit; $average = array_sum($percentage) / count($percentage); $average = number_format($average, 0, ',', '.'); if ($average > 10) { $res['percentage'] = $average; $res['icon'] = 'icon_signal_red.png'; $res['text'] = 'In Gefahr'; $res['color'] = 'red'; $res['circle'] = 'red_circle.png'; } elseif ($average <= 10 && $average >= 5) { $res['percentage'] = $average; $res['icon'] = 'icon_signal_orange.png'; $res['text'] = 'Kritisch'; $res['color'] = 'orange'; $res['circle'] = 'orange_circle.png'; } elseif ($average == 0) { $res['percentage'] = $average; $res['icon'] = 'icon_signal_grey.png'; $res['text'] = 'Kritisch'; $res['color'] = 'grey'; $res['circle'] = 'grey_circle.png'; } else { $res['percentage'] = $average; $res['icon'] = 'icon_signal_green.png'; $res['text'] = 'Im Plan'; $res['color'] = 'green'; $res['circle'] = 'green_circle.png'; } $result[$k]['res'] = $res; // get goals by perspectives $detail[$m]['grid'] = $this->renderPerspectiveGridElement($data, $milestonesCount, $milestones); $detail[$m]['milestones'] = $milestones; $detail[$m]['v_name'] = $vision['name']; $detail[$m]['description'] = $vision['description']; $m++; } } //echo '<pre>'; print_r($result); exit; $pdf = new PdfModel(); $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setTerminal(true); //$pdf->setTemplate('application/index/visioncron.phtml'); $pdf->setVariables(array('result' => $result, 'detail' => $detail)); $pdfView = new ViewModel($pdf); $pdfView->setTerminal(true)->setTemplate('application/index/visioncron.phtml')->setVariables(array('result' => $result, 'detail' => $detail)); $html = $this->getServiceLocator()->get('viewpdfrenderer')->getHtmlRenderer()->render($pdfView); $eng = $this->getServiceLocator()->get('viewpdfrenderer')->getEngine(); $eng->load_html($html); try { $eng->render(); } catch (\Exception $e) { echo $key; die; } $pdfCode = $eng->output(); //$file_to_save = $_SERVER['DOCUMENT_ROOT'].'/attachments/vision_detail_'.$key.'.pdf'; //file_put_contents($file_to_save, $pdfCode); $eng = new DOMPDF(); $this->getServiceLocator()->get('viewpdfrenderer')->setEngine($eng); /*if($i==10){ echo $i .'<br /> count = '.count($data); break; }*/ $i++; // Email $from = $this->getSenderEmail(); $to = $user['login']; //$from = '*****@*****.**'; //$to = '*****@*****.**'; $subject = "Ihre Strategieübersicht"; $textBody = $this->getVisionEmailTemplate($user['first_name'] . ' ' . $user['last_name']); $body = $this->setBodyHtml($textBody, $pdfCode, 'vision_detail_' . time() . '.pdf'); $message = new Mail\Message(); $message->setFrom($from, 'Incoverage')->addTo($to)->setSubject($subject); $message->setEncoding("UTF-8"); $message->setBody($body); $transport = new SmtpTransport(); if ($this->getDefaultConfig()['user_module']['using_gmail']) { $transport->setOptions($this->getSMTPOptions()); } $transport->send($message); echo '--------Email sent to ' . $user['login'] . ' ------ <br /><br />'; } //} } } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } //break; } echo '<br /> Cron Done'; exit; }
public function reportEventListPDFAction() { $this->accessRights(20); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $pdf = new PdfModel(); $pdf->setOption('filename', 'event-list-report'); // Triggers PDF download, automatically appends ".pdf" $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setTemplate('media-report/event_list_pdf'); $media_report = new MediaReport($this->serviceLocator()); $event_list = $media_report->eventList(); //Get Post Data & Redirect to Filter Function $request = $this->getRequest(); //Get form object if ($request->isPost()) { // To set view variables $pdf->setVariables(array('title' => 'Media Redbook', 'header' => 'Event List', 'event_list_value_image' => $request->getPost('event_list_image'), 'events' => $event_list)); } $this->downloadFile('event-list-report.pdf'); //Download File return $pdf; }
public function perCompanyPDFAction() { $this->accessRights(20); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $pdf = new PdfModel(); $pdf->setOption('filename', 'bu_csr_report_per_company' . date('Y-m-d')); // Triggers PDF download, automatically appends ".pdf" $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setTemplate('report/bu_csr_per_company_pdf'); //Get Post Data & Redirect to Filter Function $request = $this->getRequest(); //Get form object //Date Range Function $date_from = $request->getPost('date_from'); $date_to = $request->getPost('date_to'); //Graph images $mv_image = $this->saveTempImg($request->getPost('mv_image')); $hits_image = $this->saveTempImg($request->getPost('hits_image')); if ($request->isPost()) { // To set view variables $pdf->setVariables(array('title' => 'BU Overall Report Per Company', 'header' => 'BU Overall Per Company', 'mv_image' => $mv_image, 'hits_image' => $hits_image, 'top_5_media_values' => $this->getBuCsrTable()->top5Values('Media Values', 0, $date_from, $date_to), 'top_5_hits' => $this->getBuCsrTable()->top5Values('Hits', 0, $date_from, $date_to), 'media_values' => $this->getBuCsrTable()->top5Details('Media Values', $date_from, $date_to, $this->getBuCsrTable()->top5Values('Media Values', 0, $date_from, $date_to)), 'hits_values' => $this->getBuCsrTable()->top5Details('Hits', $date_from, $date_to, $this->getBuCsrTable()->top5Values('Hits', 0, $date_from, $date_to)))); } $this->downloadFile('bu-overall-report-per-company.pdf'); //Download File return $pdf; }
public function exportPdfAction() { $pdf = new PdfModel(); $pdf->setOption('filename', 'monthly-report'); // Triggers PDF download, automatically appends ".pdf" $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setVariables(array('message' => 'Hello')); return $pdf; $this->checkAuth(); $request = $this->getRequest(); $draw = $request->getPost('draw', 1); $start = $request->getPost('start', 0); $length = $request->getPost('length', 10); $search = $request->getPost('search', ''); $columns = $request->getPost('columns', ''); $orders = $request->getPost('order', ''); $search = $search['value']; $tasks = $this->databaseService->getListTask(null, null, $search, $columns, $orders, null, null); $data = new DataTablesObject(); $data->draw = $draw; foreach ($tasks as $task) { $item = new TaskListItem(); $item->DT_RowId = $task->id; $item->custumer = $task->custumer; $item->certificate = $task->certificate; $item->process_name = $task->process_name; $item->agency_name = $task->agency_name; $item->cost_sell = number_format($task->cost_sell); $item->custumer_pay = number_format($this->databaseService->getTotalPay($task->id, Config::PAY_CUSTUMER)); $item->date_open = Date::changeDateSQLtoVN($task->date_open); $item->date_end = Date::changeDateSQLtoVN($task->date_end); $item->process_name = $task->process_name; $item->provider_name = $task->provider_name; $item->cost_buy = number_format($task->cost_buy); $item->provider_pay = number_format($this->databaseService->getTotalPay($task->id, Config::PAY_PROVIDER)); $item->date_open_pr = Date::changeDateSQLtoVN($task->date_open_pr); $item->date_end_pr = Date::changeDateSQLtoVN($task->date_end_pr); $item->assign_name = $task->assign_name; $item->reporter_name = $task->reporter_name; array_push($data->data, $item); } echo \Zend\Json\Json::encode($data, false); exit; }
public function exportPdfAction() { $pdf = new PdfModel(); $pdf->setVariables($this->exportAction()); return $pdf; }
public function exportProfilePdfAction() { $this->accessRights(17); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $pdf = new PdfModel(); $pdf->setOption('filename', 'Media-profile-pdf'); // Triggers PDF download, automatically appends ".pdf" $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setTemplate('media-profile/media_profile_pdf'); $id = (int) $this->params()->fromRoute('id', 0); //relation or friend of a specific profile $relation_name = $this->getMediaProfileTable()->fetchSpecificRelation($this->serviceLocator(), $id); //get specific media profile from table $media_profile = $this->getMediaProfileTable()->getMediaProfile($this->serviceLocator(), $id); //Get Post Data & Redirect to Filter Function $request = $this->getRequest(); //Get form object if ($request->isPost()) { // To set view variables $pdf->setVariables(array('title' => 'Media Redbook', 'header' => 'Media Profile', 'media_profile' => $media_profile, 'media_profile_id' => $id, 'media_profile_educations' => $this->getMediaProfileTable()->getMediaProfileEducation($this->serviceLocator(), $id), 'media_profile_careers' => $this->getMediaProfileTable()->getMediaProfileCareer($this->serviceLocator(), $id), 'media_profile_latest_career' => $this->getMediaProfileTable()->getMediaProfileLatestCareer($this->serviceLocator(), $id), 'access_rights' => $this->getSubModuleAccessRights(17), 'relation_name' => $relation_name)); } $this->downloadFile('media_profile.pdf'); //Download File return $pdf; }
public function generatepdfAction() { if (!extension_loaded('gd')) { throw new Exception('PHP Extension gd needs to be loaded.'); } /* * PDF creation */ $pdf = new PdfModel(); $pdf->setOption("paperSize", "a4"); //Defaults to 8x11 $pdf->setOption("paperOrientation", "portrait"); //Defaults to portrait $name = 'Andreas Nitsche'; $code = 'AABBCCDD'; /* * QR-Code creation */ $qr = $this->getServiceLocator()->get('QRCode'); $qr->isHttps(); // or $qr->isHttp(); $qr->setData('http://prereg.eja.net/onsite/register/' . \urlencode($code)); $qr->setCorrectionLevel('H', 0); $qr->setDimensions(200, 200); $config = array('adapter' => 'Zend\\Http\\Client\\Adapter\\Socket', 'ssltransport' => 'tls', 'sslcapath' => '/etc/ssl/certs/', 'sslverifypeer' => false); // Instantiate a client object $client = new \Zend\Http\Client($qr->getResult(), $config); // The following request will be sent over a TLS secure connection. $response = $client->send(); $qr_content = $response->getContent(); $base64_qrcode = "data:image/png;base64," . \base64_encode($qr_content); #file_put_contents(getcwd().'/public/img/qrcode.png', $qr_content); /* * Code creation */ // Only the text to draw is required $barcodeOptions = array('text' => $code, 'barHeight' => 40, 'factor' => 1.1); // No required options $rendererOptions = array(); // Draw the barcode in a new image, $imageResource = \Zend\Barcode\Barcode::factory('code39', 'image', $barcodeOptions, $rendererOptions)->draw(); ob_start(); //Start output buffer. imagejpeg($imageResource); //This will normally output the image, but because of ob_start(), it won't. $contents = ob_get_contents(); //Instead, output above is saved to $contents ob_end_clean(); //End the output buffer. #file_put_contents(getcwd().'/public/img/barcode2.jpg', $contents); $base64_barcode = "data:image/png;base64," . \base64_encode($contents); /* * PDF generation to view */ /* $pdf->setVariables(array( 'name' => $name, 'code' => $code, 'qrcode' => $base64_qrcode, 'barcode' => $base64_barcode, )); $filename = "EJC2015_e-ticket_".preg_replace('/\ /', '_', $name); $pdf->setOption("filename", $filename); return $pdf; */ /***********************************/ $pdfView = new ViewModel(); $pdfView->setTemplate('pre-reg/test/generatepdf'); $pdfView->setVariables(array('name' => $name, 'code' => $code, 'qrcode' => $base64_qrcode, 'barcode' => $base64_barcode)); $pdfRenderer = $this->getServiceLocator()->get('ViewPdfRenderer'); $html = $pdfRenderer->getHtmlRenderer()->render($pdfView); $pdfEngine = $pdfRenderer->getEngine(); $pdfEngine->load_html($html); $pdfEngine->render(); $pdfContent = $pdfEngine->output(); $filename = "EJC2015_e-ticket_" . preg_replace('/\\ /', '_', $name); file_put_contents(getcwd() . '/public/img/' . $filename . '.pdf', $pdfContent); return new ViewModel(); }
public function generatePdf() { $config = $this->getServiceLocator()->get('Config'); if (!extension_loaded('gd')) { throw new \Exception('PHP Extension gd needs to be loaded.'); } /* * PDF creation */ $paperSize = 'a4'; $paperOrientation = 'portrait'; $pdf = new PdfModel(); $pdf->setOption("paperSize", $paperSize); //Defaults to 8x11 $pdf->setOption("paperOrientation", $paperOrientation); //Defaults to portrait $name = $this->getParticipant()->getFirstname() . ' ' . $this->getParticipant()->getSurname(); $code = $this->getPackage()->getCode()->getValue(); /* * QR-Code creation */ $qr = $this->getServiceLocator()->get('QRCode'); $qr->isHttps(); // or $qr->isHttp(); #$qr->setData('http://prereg.eja.net/onsite/register/'. \urlencode($code)); $onsitereg = $config['ERS']['onsitereg']; # ensure the url has no trailing slash \rtrim($onsitereg, '/\\'); $qr->setData($onsitereg . '/' . \urlencode($code)); $qr->setCorrectionLevel('H', 0); $qr->setDimensions(200, 200); $qr_config = array('adapter' => 'Zend\\Http\\Client\\Adapter\\Socket', 'ssltransport' => 'tls', 'sslcapath' => '/etc/ssl/certs/', 'sslverifypeer' => false); // Instantiate a client object $client = new \Zend\Http\Client($qr->getResult(), $qr_config); // The following request will be sent over a TLS secure connection. $response = $client->send(); $qr_content = $response->getContent(); $base64_qrcode = "data:image/png;base64," . \base64_encode($qr_content); #file_put_contents(getcwd().'/public/img/qrcode.png', $qr_content); /* * Barcode creation */ // Only the text to draw is required $barcodeOptions = array('text' => $code, 'barHeight' => 40, 'factor' => 1.1, 'drawText' => false); // No required options $rendererOptions = array(); // Draw the barcode in a new image, $imageResource = \Zend\Barcode\Barcode::factory('code39', 'image', $barcodeOptions, $rendererOptions)->draw(); ob_start(); //Start output buffer. imagejpeg($imageResource); //This will normally output the image, but because of ob_start(), it won't. $contents = ob_get_contents(); //Instead, output above is saved to $contents ob_end_clean(); //End the output buffer. #file_put_contents(getcwd().'/public/img/barcode2.jpg', $contents); $base64_barcode = "data:image/png;base64," . \base64_encode($contents); /* * prepare items */ $items = array(); foreach ($this->getPackage()->getItems() as $item) { if ($item->getStatus() == 'transferred') { continue; } $items[$item->getProductId()][] = $item; } /* * generate PDF */ $pdfView = new ViewModel(); $pdfView->setTemplate('pdf/eticket_' . $this->getLanguage()); $pdfView->setVariables(array('name' => $name, 'package' => $this->getPackage(), 'items' => $items, 'products' => $this->getProducts(), 'agegroup' => $this->getAgegroup(), 'code' => $code, 'qrcode' => $base64_qrcode, 'barcode' => $base64_barcode)); $pdfRenderer = $this->getServiceLocator()->get('ViewPdfRenderer'); $html = $pdfRenderer->getHtmlRenderer()->render($pdfView); $pdfEngine = $pdfRenderer->getEngine(); $pdfEngine->set_paper($paperSize, $paperOrientation); $pdfEngine->set_base_path(getcwd() . '/'); $pdfEngine->load_html($html); $pdfEngine->render(); $pdfContent = $pdfEngine->output(); $filename = $config['ERS']['name_short'] . "_e-Ticket_" . $this->getPackage()->getCode()->getValue() . '_' . $this->getLanguage(); # TODO: make ticket_path configurable $ticket_path = getcwd() . '/data/etickets'; \rtrim($onsitereg, '/\\'); if (!is_dir($ticket_path)) { mkdir($ticket_path); } $filePath = $ticket_path . '/' . $filename . '.pdf'; file_put_contents($filePath, $pdfContent); return $filePath; }
public function reportAction() { $request = $this->getRequest(); if (!$request instanceof ConsoleRequest) { throw new \RuntimeException('Action only available from console.'); } $objectManager = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $j = $request->getParam('delta'); $email = $request->getParam('email'); $org = $request->getParam('orgshortname'); $organisation = $objectManager->getRepository('Application\\Entity\\Organisation')->findBy(array('shortname' => $org)); if (!$organisation) { throw new \RuntimeException('Unable to find organisation.'); } else { $email = $organisation[0]->getIpoEmail(); if (empty($email)) { throw new \RuntimeException('Unable to find IPO email.'); } } $day = new \DateTime('now'); if ($j) { if ($j > 0) { $day->add(new \DateInterval('P' . $j . 'D')); } else { $j = -$j; $interval = new \DateInterval('P' . $j . 'D'); $interval->invert = 1; $day->add($interval); } } $day = $day->format(DATE_RFC2822); $criteria = Criteria::create()->where(Criteria::expr()->isNull('parent'))->andWhere(Criteria::expr()->eq('system', false))->orderBy(array('place' => Criteria::ASC)); $cats = $objectManager->getRepository('Application\\Entity\\Category')->matching($criteria); $eventsByCats = array(); foreach ($cats as $cat) { $category = array(); $category['name'] = $cat->getName(); $category['events'] = $objectManager->getRepository('Application\\Entity\\Event')->getEvents(null, $day, null, true, array($cat->getId())); $category['childs'] = array(); foreach ($cat->getChildren() as $subcat) { $subcategory = array(); $subcategory['events'] = $objectManager->getRepository('Application\\Entity\\Event')->getEvents(null, $day, null, true, array($subcat->getId())); $subcategory['name'] = $subcat->getName(); $category['childs'][] = $subcategory; } $eventsByCats[] = $category; } $pdf = new PdfModel(); $pdf->setOption('paperSize', 'a4'); $formatter = \IntlDateFormatter::create(\Locale::getDefault(), \IntlDateFormatter::FULL, \IntlDateFormatter::FULL, 'UTC', \IntlDateFormatter::GREGORIAN, 'dd_LL_yyyy'); $pdf->setOption('filename', 'rapport_du_' . $formatter->format(new \DateTime($day))); $pdfView = new ViewModel($pdf); $pdfView->setTerminal(true)->setTemplate('application/report/daily')->setVariables(array('events' => $eventsByCats, 'day' => $day)); $html = $this->getServiceLocator()->get('viewpdfrenderer')->getHtmlRenderer()->render($pdfView); $engine = $this->getServiceLocator()->get('viewpdfrenderer')->getEngine(); $engine->load_html($html); $engine->render(); // creating directory if it doesn't exists if (!is_dir('data/reports')) { mkdir('data/reports'); } file_put_contents('data/reports/rapport_du_' . $formatter->format(new \DateTime($day)) . '.pdf', $engine->output()); if ($email) { // prepare body with file attachment $text = new \Zend\Mime\Part('Veuillez trouver ci-joint le rapport automatique de la journée du ' . $formatter->format(new \DateTime($day))); $text->type = \Zend\Mime\Mime::TYPE_TEXT; $text->charset = 'utf-8'; $fileContents = fopen('data/reports/rapport_du_' . $formatter->format(new \DateTime($day)) . '.pdf', 'r'); $attachment = new \Zend\Mime\Part($fileContents); $attachment->type = 'application/pdf'; $attachment->filename = 'rapport_du_' . $formatter->format(new \DateTime($day)) . '.pdf'; $attachment->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT; $attachment->encoding = \Zend\Mime\Mime::ENCODING_BASE64; $mimeMessage = new \Zend\Mime\Message(); $mimeMessage->setParts(array($text, $attachment)); $config = $this->serviceLocator->get('config'); $message = new \Zend\Mail\Message(); $message->addTo($organisation[0]->getIpoEmail())->addFrom($config['emailfrom'])->setSubject('Rapport automatique du ' . $formatter->format(new \DateTime($day)))->setBody($mimeMessage); $transport = new \Zend\Mail\Transport\Smtp(); $transportOptions = new \Zend\Mail\Transport\SmtpOptions($config['smtp']); $transport->setOptions($transportOptions); $transport->send($message); } }
public function generatepdfAction() { //$id = $this->getRequest()->getPost('id'); $pdf = new PdfModel(); $adapter = new NewsListAdapter($this->serviceLocator()); $id = (int) $this->params()->fromRoute('id'); $result = iterator_to_array($adapter->getNewsView($id)); $filename = str_replace(" ", "_", $result[0]['title']); $pdf->setOption("filename", $filename); $pdf->setVariables(array('news' => $result)); return $pdf; }