コード例 #1
0
 public function testNonStringResultDoesNotInjectResponse()
 {
     $this->event->setResponse($this->response);
     $this->event->setRenderer($this->renderer);
     $this->event->setResult($this->response);
     $this->strategy->injectResponse($this->event);
     $this->assertResponseNotInjected();
 }
コード例 #2
0
 /**
  *
  */
 public function testInjectResponseSetsContentTypeHeaderToApiProblemForApiProblemModel()
 {
     $problem = new ApiProblem(500, "Error message");
     $model = new ApiProblemModel($problem);
     $this->event->setModel($model);
     $this->event->setRenderer($this->renderer);
     $this->event->setResult('{"foo":"bar"}');
     $this->strategy->injectResponse($this->event);
     $headers = $this->response->getHeaders();
     $this->assertTrue($headers->has('Content-Type'));
     $header = $headers->get('Content-Type');
     $this->assertEquals('application/problem+json', $header->getFieldValue());
 }
コード例 #3
0
 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();
     $contentDisposition = $headers->get('Content-Disposition');
     $this->assertInstanceOf('Zend\\Http\\Header\\ContentDisposition', $contentDisposition);
     $this->assertEquals($contentDisposition->getFieldValue(), 'attachment; filename=testPdfFileName.pdf');
     ob_end_flush();
     // Clear out any buffers held by renderers.
 }
コード例 #4
0
 public function testResponseHeadersWithFileName()
 {
     $model = $this->serviceManager->get('PdfModel');
     $model->setTemplate('basic.phtml');
     $model->getPdfOptions()->setFilename('testPdfFileName');
     $model->getPdfOptions()->setFooterLines([['text' => 'top line', 'position' => 'center', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]], ['text' => 'second line', 'position' => 'left', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]], ['text' => 'third line', 'position' => 'right', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]]]);
     $model->getPdfOptions()->setHeaderLines([['text' => 'first line', 'position' => 'center', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]]]);
     $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');
     ob_end_flush();
 }
コード例 #5
0
ファイル: Module.php プロジェクト: utrenkner/YAWIK
 /**
  * Transform the HTML to PDF,
  * this is a post-rendering-process
  *
  * put in here everything related to the transforming-process like options
  *
  * @param \Zend\View\ViewEvent $e
  */
 public function attachPDFtransformer(ViewEvent $e)
 {
     //$renderer = $e->getRenderer();
     $result = $e->getResult();
     $response = $e->getResponse();
     // the handles are for temporary files
     error_reporting(0);
     foreach (array(self::RENDER_FULL, self::RENDER_WITHOUT_PDF, self::RENDER_WITHOUT_ATTACHMENTS) as $render) {
         $handles = array();
         try {
             $pdf = new extern\mPDFderive();
             $pdf->SetImportUse();
             // create bookmark list in Acrobat Reader
             $pdf->h2bookmarks = array('H1' => 0, 'H2' => 1, 'H3' => 2);
             $pdf->WriteHTML($result);
             // Output of the Images
             if (self::RENDER_FULL == $render || self::RENDER_WITHOUT_PDF == $render) {
                 if (is_array($this->appendImage) && !empty($this->appendImage)) {
                     foreach ($this->appendImage as $imageAttachment) {
                         $content = $imageAttachment->getContent();
                         $url = 'data:image/' . $imageAttachment->getType() . ';base64,' . base64_encode($content);
                         $html = '<a name="attachment_' . $imageAttachment->getId() . '"><img src="' . $url . '" /><br /></a>';
                         $pdf->WriteHTML($html);
                     }
                 }
             }
             // Temp Files PDF
             if (self::RENDER_FULL == $render) {
                 if (is_array($this->appendPDF) && !empty($this->appendPDF)) {
                     foreach ($this->appendPDF as $pdfAttachment) {
                         $content = $pdfAttachment->getContent();
                         $tmpHandle = tmpfile();
                         $handles[] = $tmpHandle;
                         fwrite($tmpHandle, $content);
                         fseek($tmpHandle, 0);
                     }
                 }
             }
             // Output of the PDF
             foreach ($handles as $handle) {
                 $meta_data = stream_get_meta_data($handle);
                 $filename = $meta_data["uri"];
                 $pdf->WriteHTML($filename);
                 $pagecount = $pdf->SetSourceFile($filename);
                 for ($pages = 0; $pages < $pagecount; $pages++) {
                     $pdf->AddPage();
                     $pdf->WriteHTML(' pages: ' . $pagecount);
                     $tx = $pdf->ImportPage($pages + 1);
                     $pdf->UseTemplate($tx);
                 }
             }
             $pdf_result = $pdf->Output();
             $e->setResult($pdf_result);
             // delete all temporary Files again
             foreach ($handles as $handle) {
                 fclose($handle);
             }
             break;
         } catch (\Exception $e) {
         }
     }
     error_reporting(E_ALL);
 }