コード例 #1
0
 $documento->assunto_complementar = $ocr;
 $documento->interessado = $interessado;
 $documento->assinatura = NULL;
 $documento->cargo = NULL;
 $documento->procedencia = "E";
 $documento->data_entrada = date('d/m/Y');
 $documento->recibo = Zend_Auth::getInstance()->getIdentity()->NOME;
 $documento->diretoria = $_POST['id_unidade_destino'];
 $out = DaoDocumento::salvarDocumento($documento)->toArray();
 if ($out['success'] == 'true') {
     // Documento cadastrado com sucesso, criar imagem
     // Primeiro gera um pdf e pega o texto dele
     $pdf = geraPdfSic($documento);
     $name = $pdf . '.tif';
     shell_exec("gs -SDEVICE=tiffg4 -r300x300 -sPAPERSIZE=a4 -sOutputFile={$name} -dNOPAUSE -dBATCH  {$pdf}");
     $pasta = gerarRaiz($documento->digital, __CAM_UPLOAD__);
     $repositorio = __CAM_UPLOAD__ . "/" . $pasta . "/" . $documento->digital;
     mkdir($repositorio, 0777);
     shell_exec("gs -q -dNOPAUSE -dBATCH -sDEVICE=png16m -r300 -dEPSCrop -sOutputFile={$repositorio}/00000000000000000000000000000011_%04d.png {$pdf}");
     unlink($pdf);
     unlink($name);
     // Imagens criadas, existem arquivos a anexar?
     if (count($_FILES) > 0) {
         // Existe ao menos um, criar folha de rosto
         $preffix = 1;
         $end_folha = "/tmp/folha_" . aleatorio() . ".pdf";
         $folha = new FPDF();
         $folha->AddPage();
         $folha->SetFont('Arial', 'B', 40);
         $folha->Cell(0, 150, "ANEXOS", 0, 0, "C");
         $folha->Output($end_folha, "F");
コード例 #2
0
 /**
  * 
  */
 public static function persisteLote($digital, $ocr)
 {
     try {
         Controlador::getInstance()->getConnection()->connection->beginTransaction();
         $sttm = Controlador::getInstance()->getConnection()->connection->prepare("SELECT (max(ORDEM)+1) as next FROM TB_DOCUMENTOS_IMAGEM WHERE DIGITAL = ? LIMIT 1");
         $sttm->bindParam(1, $digital, PDO::PARAM_STR);
         $sttm->execute();
         $next = $sttm->fetch(PDO::FETCH_ASSOC);
         if (is_null($next['next'])) {
             $next['next'] = 0;
         }
         $caminhoLOTE = __CAM_UPLOAD__ . '/' . gerarRaiz($digital, __CAM_UPLOAD__) . '/' . $digital;
         $arquivos = glob("{$caminhoLOTE}/*.png");
         $imagem = array();
         $imagem['public'] = 1;
         $imagem['next'] = (int) $next['next'];
         $query = "INSERT INTO SGDOC.TB_DOCUMENTOS_IMAGEM (DIGITAL,FLG_PUBLICO,MD5,DES_HASH_FILE,IMG_WIDTH,IMG_HEIGHT,IMG_TYPE,ORDEM,IMG_BYTES,ID_USUARIO,ID_UNIDADE) VALUES ";
         foreach ($arquivos as $arquivo) {
             $query .= "(?,?,?,?,?,?,?,?,?,?,?),";
         }
         $query = rtrim($query, ',');
         // remove a vírgula extra
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare($query);
         $valores = array();
         foreach ($arquivos as $filename) {
             $filename = str_replace("{$caminhoLOTE}/", '', $filename);
             // Percorre a pasta
             // Se o arquivo ainda não foi salvo, salvar
             $imagem['md5'] = (string) aleatorio();
             $imagem['old_name'] = $filename;
             $imagem['hash'] = (string) hash_file('md5', $caminhoLOTE . '/' . $filename);
             $new_filename = "{$caminhoLOTE}/{$imagem['md5']}.png";
             rename($caminhoLOTE . '/' . $filename, $new_filename);
             $information = getimagesize($new_filename);
             $imagem['width'] = $information[0];
             $imagem['height'] = $information[1];
             $imagem['codeType'] = 8;
             $imagem['size'] = filesize($new_filename);
             // Fim da etapa de pegar os dados, jogar na base
             $valores[] = $digital;
             $valores[] = $imagem['public'];
             $valores[] = $imagem['md5'];
             $valores[] = $imagem['hash'];
             $valores[] = $imagem['width'];
             $valores[] = $imagem['height'];
             $valores[] = $imagem['codeType'];
             $valores[] = $imagem['next'];
             $valores[] = $imagem['size'];
             $valores[] = Controlador::getInstance()->usuario->ID;
             $valores[] = Controlador::getInstance()->usuario->ID_UNIDADE;
             $imagem['next']++;
         }
         $stmt->execute($valores);
         // Se chegou aqui com segurança, pode commitar a sequencia
         Controlador::getInstance()->getConnection()->connection->commit();
         return new Output(array('success' => 'true'));
     } catch (Exception $e) {
         Controlador::getInstance()->getConnection()->connection->rollback();
         return new Output(array('success' => 'false', 'error' => $e->getMessage()));
     }
 }