public function geraLeitura(array $parPages) { $dirFrom = $this->_documentoImagem->getUploadPath(); $dirTo = $this->_documentoImagem->getCachePath(); $imageName = $this->_documentoImagem->getImageName(); $arrPaginasGeradas = array(); //Opção comum $gsOptions = "-quiet -dSAFER -dBATCH -dNOPAUSE -dNumRenderingThreads=2"; foreach ($parPages as $page) { $page = (int) str_replace($imageName . '_', '', $page); //Verifica se o parametro é numérico if (!is_numeric($page) || $page <= 0) { $rowset = $this->_documentoImagem->getRowSet(); $digital = $rowset[0]['DIGITAL']; throw new \Exception("DocumentoImagemPDF::geraLeitura() - Página [{$page}] da Digital {$digital} não é numérica!"); } //Gerar uma página por vez $paramPage = "-dFirstPage={$page} -dLastPage={$page}"; //Nomenclartura do arquivo formato Leitura $absoluteFileName = sprintf("{$dirTo}{$imageName}_%04d.png", $page); /** * Realiza a geração da imagem em formato leitura somente caso ela não exista em disco * Como a criação efetiva do arquivo não é um processo imediato por depender de uma chamada ao sistema, * pode haver um problema no carregamento do Cache gerado, operação realizada em seguida. * @todo Pensar em estratégia para resolver essa assincronia */ if (!file_exists($absoluteFileName)) { /* @todo pamametrizar resolução */ $msg = shell_exec("gs -sDEVICE=png16m -r250 -sPAPERSIZE=a4 {$gsOptions} {$paramPage} -sOutputFile={$absoluteFileName} {$dirFrom}{$imageName}.pdf"); // Verifica se houve erro na conversão do pdf $this->_errorExists($msg); } $formatoPNG = new Formato\FormatoPNG($absoluteFileName); $formatoPNG->rotaciona(); $arrPaginasGeradas[] = $formatoPNG; } return $arrPaginasGeradas; }
public function geraLeitura(array $parPages) { $dirFrom = $this->_documentoImagem->getUploadPath(); $dirTo = $this->_documentoImagem->getCachePath(); $arrPaginasGeradas = array(); foreach ($parPages as $page) { $absoluteSourceFileName = "{$dirFrom}{$page}.tif"; $absoluteDestFileName = "{$dirTo}{$page}.png"; //Realiza a geração da imagem em formato leitura somente caso ela não exista em disco if (!file_exists($absoluteSourceFileName)) { throw new \Exception('GeraCachePNGBehavior::geraLeitura() - Arquivo solicitado não existe-' . $absoluteSourceFileName); } //Se arquivo de cache não existe, gera a partir do source if (!file_exists($absoluteDestFileName)) { shell_exec("/usr/local/bin/convert -rotate '-90>' -quality 200 -resize 595x842 {$absoluteSourceFileName}[0] {$absoluteDestFileName}"); } $formatoPNG = new Formato\FormatoPNG($absoluteDestFileName); $formatoPNG->rotaciona(); $arrPaginasGeradas[] = $formatoPNG; } return $arrPaginasGeradas; }
public function geraLeitura(array $parPages) { $dirFrom = $this->_documentoImagem->getUploadPath(); $dirTo = $this->_documentoImagem->getCachePath(); $arrPaginasGeradas = array(); foreach ($parPages as $page) { $absoluteSourceFileName = "{$dirFrom}{$page}.png"; $absoluteDestFileName = "{$dirTo}{$page}.png"; //Realiza a geração da imagem em formato leitura somente caso ela não exista em disco if (!file_exists($absoluteSourceFileName)) { throw new \Exception('GeraCachePNGBehavior::geraLeitura() - Arquivo solicitado não existe-' . $absoluteSourceFileName); } //Se arquivo de cache não existe, copia do source if (!file_exists($absoluteDestFileName)) { //Preserva a imagem original, copiando a mesma para a pasta cache, onde poderá ser rotacionada e etc shell_exec("cp {$absoluteSourceFileName} {$absoluteDestFileName}"); } $formatoPNG = new Formato\FormatoPNG($absoluteDestFileName); $formatoPNG->rotaciona(); $arrPaginasGeradas[] = $formatoPNG; } return $arrPaginasGeradas; }