示例#1
0
 public function __construct($name, $data = null)
 {
     $this->data['element-type'] = 'simple-text';
     $this->data['name'] = $name;
     if ($data !== null) {
         $this->data['data'] = ODTDataHandler::encodeTextForODT($data);
     }
 }
示例#2
0
 /**
  * Prepare the Certificate template with the data available from the given event.
  *
  * @param \Event $event
  * @param boolean $ignore_portal - if true, will force the signature box to be rendered rather than checking the portal
  * @return \ODTTemplateManager
  * @throws \Exception
  */
 protected function populateCviCertificate(\Event $event, $ignore_portal = false)
 {
     $signature_element = $this->getConsentSignatureElementForEvent($event);
     //  we need to check if we already have a signature file linked
     if (!$signature_element->checkSignature()) {
         //TODO: restructure or rename, as this process is basically also going to generate
         //TODO: the QR code signature placeholder when its not yet been captured.
         // we check if the signature is exists on the portal
         $signature = $ignore_portal ? $signature_element->getSignatureBox() : $signature_element->loadSignatureFromPortal();
     } else {
         // TODO: this should be checked before, when we retrieve the patient signature!!!
         // we get the stored signature and creates a GD object from the data
         if ($signature_element->getDecryptedSignature()) {
             $signature = imagecreatefromstring($signature_element->getDecryptedSignature());
         } else {
             $signature = imagecreatetruecolor(1, 1);
         }
     }
     // TODO: need to configure this more cleanly
     $print_helper = new \ODTTemplateManager($this->input_template_file, realpath(__DIR__ . '/..') . '/views/odtTemplate', $this->yii->basePath . '/runtime/cache/cvi/', 'CVICert_' . $event->id . '_' . mt_rand() . '.odt');
     $data_handler = new \ODTDataHandler();
     $structured_data = $this->getStructuredDataForPrintPDF($event);
     $data_handler->setTableAndSimpleTextDataFromArray($structured_data);
     $tables = $data_handler->getTables();
     foreach ($tables as $one_table) {
         $name = $one_table['name'];
         $data = $data_handler->generateSimpleTableHashData($one_table);
         $print_helper->fillTableByName($name, $data, 'name');
     }
     $texts = $data_handler->getSimpleTexts();
     $print_helper->exchangeAllStringValuesByStyleName($texts);
     //$print_helper->exchangeStringValues( $this->getStructuredDataForPrintPDF($id) );
     // TODO: This should be handled more cleanly for the image manipulation
     $print_helper->changeImageFromGDObject('signatureImagePatient', $signature);
     if (array_key_exists('signatureImageConsultant', $structured_data)) {
         $print_helper->changeImageFromGDObject('signatureImageConsultant', $structured_data['signatureImageConsultant']);
     }
     $print_helper->saveContentXML();
     $print_helper->generatePDF();
     return $print_helper;
 }
示例#3
0
 public function setCellData($row, $col, $cellData)
 {
     $this->data['rows'][$row - 1]['cells'][$col - 1]['data'] = ODTDataHandler::encodeTextForODT($cellData);
 }