/** * Retorna DocumentoImagem Anterior ou Null * @return DocumentoImagemAbstract */ protected function _hasPreviousFile() { try { return DocumentoImagemFactory::factory($this->_digital); } catch (\Exception $exc) { return null; } }
<?php use Documento\Imagem, Documento\Imagem\IDocumentoImagem; $documentoImagemAgg = Imagem\DocumentoImagemFactory::factory($_REQUEST['digital']); $imagesToRead = $documentoImagemAgg->getImagesToRead(array($_REQUEST['page'])); $imagesToRead[0]->show();
/* ------------------------------------------ */ /* this is where regular request code goes.. */ $response = null; if (isset($_FILES)) { //&& count($_FILES) try { $fileDigitais = array('name' => $_FILES['files']['name'][0], 'type' => $_FILES['files']['type'][0], 'tmp_name' => $_FILES['files']['tmp_name'][0], 'error' => $_FILES['files']['error'][0], 'size' => $_FILES['files']['size'][0]); /** * Utilizada criação de objeto concreto por ser permitido somente o * upload de arquivos PDF. Caso seja liberado para outros tipos, * utilizar fábrica para criação de objetos. */ $session = \Session::get('_upload'); $digital = $session['digital']; //Crio documento Imagem Anterior para qualquer tipo de conversão de passivo necessária $documentoImagemAnterior = \Documento\Imagem\DocumentoImagemFactory::factory($digital); $documentoImagemNovo = new \Documento\Imagem\DocumentoImagemPDF(); $documentoImagemNovo->upload($fileDigitais); // Make Result $response = array('name' => $_FILES['files']['name'][0], 'size' => $_FILES['files']['size'][0], 'type' => $_FILES['files']['type'][0], 'status' => 'success'); } catch (Exception $e) { // Make Result $response = array('name' => $_FILES['files']['name'][0], 'size' => $_FILES['files']['size'][0], 'type' => $_FILES['files']['type'][0], 'error' => $e->getMessage()); } } else { $response = array('name' => 'Não existe', 'size' => '0 KB', 'type' => 'Não existe', 'error' => "Não foi possível efetuar o Upload"); } // Print Result print '[' . json_encode($response) . ']'; /* end where regular request code runs.. */ /* ------------------------------------------ */
$documentoImagemAgg->getPDF()->show(); } //Se for um processo, precisamos realizar um merge dos PDFs //@todo refazer em classe apropriada if (isset($_REQUEST['numero_processo']) && strlen($_REQUEST['numero_processo']) > 0) { $images = Imagens::factory()->recoverInformationDBByProcess($_REQUEST['numero_processo']); $cfg = Config::factory(); $pdfMergedAbsoluteFilename = $cfg->getParam('config.basepath') . '/cache/TEMP_PDF_PROCESSO_' . md5($_REQUEST['numero_processo'] . microtime()); $arrPDFs = array(); $documentoImagem = null; $i = 0; $digital = ''; foreach ($images as $image) { if ($digital != $image['DIGITAL']) { $digital = $image['DIGITAL']; $documentoImagem = Imagem\DocumentoImagemFactory::factory($digital); $pdfDocAbsoluteFilename = sprintf("{$pdfMergedAbsoluteFilename}_%04d.pdf", ++$i); $arrPDFs[] = $pdfDocAbsoluteFilename; //Salva em arquivos PDFs temporários file_put_contents($pdfDocAbsoluteFilename, $documentoImagem->getPDF()->getData()); } } $cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile={$pdfMergedAbsoluteFilename}.pdf "; foreach ($arrPDFs as $pdfFilename) { $cmd .= $pdfFilename . " "; } shell_exec($cmd); foreach ($arrPDFs as $pdfFilename) { unlink($pdfFilename); } header("Content-type:application/pdf");