Jump to content

Weslley da Silva Rodrigues

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About Weslley da Silva Rodrigues

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Weslley da Silva Rodrigues

    Comparador de imagem.

    Não consegui implementar essa dica no codigo Aff
  2. Weslley da Silva Rodrigues

    Comparador de imagem.

    Vlw vou dar uma olhada!
  3. Weslley da Silva Rodrigues

    Comparador de imagem.

    Boa tarde amigos. Sou novo na área de programação e meu chefe me deu uma missão difícil. Preciso criar um script que faça comparação de duas imagens Jpg. E mostre em porcentagem a diferença das duas. Tenho o esqueleto do código mas n sei como realizar essa tarefa. Alguém pode me ajudar ou me orientar. Já procurei em diversos sites, até achei uns tópicos relacionado mas ainda sim achei complexo para eu entende já que sou iniciante. Agradeço muito se alguém pude me ajudar. Vou deixar aqui em baixo o arquivo. Comecei a fazer o formulário na linha 58. Muito obrigado. Vou deixar em anexo tbm a imagem html da forma que está nesse momento. <?php extract($_POST,EXTR_SKIP); extract($_GET,EXTR_SKIP); require_once ("Debug.php"); $d = new Debug(); $d->usarArquivo("logs/ass_colaborador.html"); ///////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// // DADOS DE CONFIGURAÇÃO DESTE FORMULÁRIO - LISTA GENÉRICa //Nome da Página $NomePagina="CompareImagem"; //será acrescentado php5 no texto //Extensão da tabela $EXTE = "CIG"; //três letras para a tabela no banco de dados //Título da página $Titulo="Comparador de Imagem"; //Tipo de Unidade com acesso diferenciado $UndPrivilegio=""; //é a unidade com capacidade de cadastro, se vazio, todas as unidades podem cadastrar //Texto de instrução de preenchimento no form de cadastro $TextoInstru="Selecione a Imagem e aponte o arquivo de comparação:"; //Configuração da paginação do resultado de pesquisa $TAMANHO_PAGINA = "10"; //número de linhas na tabela de resultado de pesquisa $TAMANHO_TABELA = "4"; //número de colunas na tabela de resultado de pesquisa //Configuração de conferência de serviços contratados $num_serv_cont="7"; //se for vazio, a página é gratuita, senão, guarda o número do serviço contratado ?> <!-- Page Container --> <div class="mm-container mm-content mm-theme-l5"style="max-width:1400px;margin-top:80px"> <!-- The Grid --> <div class="mm-row"> <div class="mm-container mm-card-2 mm-white mm-round mm-margin-bottom"> <?echo "<h1> $Titulo</h1>";?> </div> <!-- coluna principal --> <div class="mm-col m12"> <div class="mm-container mm-card-2 mm-white mm-round mm-margin mm-padding mm-responsive"> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="image[]" multiple> <input type="submit" name="enviar" value="Validar"> </form> <? if(isset($_POST['enviar'])){ $nome_arquivo0 = $_FILES['image'][0]; $nome_arquivo1 = $_FILES['image'][1]; } ?> </div> <!-- fim coluna da direita --> </div> <!-- End Grid --> </div> <!-- End Page Container --> </div> </div> <!-- Footer --> <footer class="footer mm-container mm-theme-d5"> <p>Aclin - Todos os direitos reservados </p> </footer> </body>
  4. Weslley da Silva Rodrigues

    LINHAS TABELA PDF PHP

    Pessoal boa noite. Sou novo nessa área de Programação e preciso de uma ajuda Estou tentando desenhar a linha de cima no meu relatório pdf no PHP, mas não estou conseguindo. Alguém pode me ajudar? O relatório que eu gero está. Como podem ver a linha de cima da minha tabela não aparece. Segue o código: / Comentar as linhas de consulta SQL apenas para testar o formato do relatório //------DADOS A RECEBER PARA GERAR RELATÒRIOS: extract($_POST,EXTR_SKIP); extract($_GET,EXTR_SKIP); //import_request_variables("gP"); $enderecoLogo=$Caminho_Imagem; //logo da empresa cliente que emite o certificado $ExpreSQL; // recebe a expressão SQL que traduz a consulta desejada a tabela $ConfigPRINT; //recebe as configurações para impressão: se retrato ou paisagem, se A4 ou Letter, etc $TipoUnidadeOrig = "Engenharia Clínica/Manutenção Biomédica"; //Dados de conexão { # Dados para a conexão com o banco de dados $data=date("d/m/Y"); $dataAME=date("Y-m-d"); //data no formato AMERICANO $time=date("G:H:s"); # Executa a conexão com o MySQL $link = mysqli_connect ($servidor, $usuario, $senha, $banco) or die("Falha ao conectar: o erro foi" .mysqli_error()); mysqli_set_charset($link, 'utf8'); #Seleciona o banco de dados que deseja utilizar $select=mysqli_select_db($link, $banco); //confere se o serviço foi contratado if($num_serv_cont!="") { $sql = "SELECT * FROM servicoscontratados WHERE CNPJ = '$CNPJ'"; $result = mysqli_query($link, $sql); while ($tbl = mysqli_fetch_array($result)) { $CNPJ1 =$tbl["CNPJ"]; $ListaServico=$tbl["CODESERVICO"]; $TotalEquip=$tbl["ItensParque"]; $Planilha=$tbl["Planilha"]; $StatusCadastro=$tbl["StatusCadastro"]; //pega os dados da instituição para montar o cabeçalho do relatório $RazaoSocial=$tbl["RazaoSocial"]; $Endereco=$tbl["Endereco"]; $Cidade=$tbl["Cidade"]; $Estado=$tbl["Estado"]; $LogoMarca=$tbl["LogoMarca"]; }//busca dados para confirmar que o serviço foi contratado $VetorListaServico=explode("-",$ListaServico); foreach ($VetorListaServico as $v){ if($v=="$num_serv_cont"){ $editaCampoArquivo = "sim"; } } } else {$editaCampoArquivo="sim";} //confirma que tem contrato de gerenciamento otimizado ativo //pesquisa os dados do cliente $sql = "SELECT * FROM Clientes WHERE CNPJ = '$CNPJ'"; $result = mysqli_query($link, $sql); while ($tbl = mysqli_fetch_array($result)) { $CNPJ1 =$tbl["CNPJ"]; //pega os dados da instituição para montar o cabeçalho do relatório $RazaoSocial=$tbl["RazaoSocial"]; $Fantasia=$tbl["NomeCliente"]; $Endereco=$tbl["Endereco"]; $Cidade=$tbl["Cidade"]; $Estado=$tbl["Estado"]; $LogoMarca=$tbl["LogoMarca"]; }//busca dados do cliente //Função de subtração de datas! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //retorna o número de dias function dateDiff($sDataInicial, $sDataFinal){ // explode os dados, sendo 0=dia, 1=mês, 2=ano para o formato dd/mm/aaaa // mktime é (hora, minuto, segundo, mês, dia, ano) $sDataI = explode("/", $sDataInicial); //trocar os marcadores e a ordem das datas $sDataF = explode("/", $sDataFinal); //trocar os marcadores e a ordem das datas $nDataInicial = mktime(0, 0, 0, $sDataI[1] , $sDataI[0], $sDataI[2] ); $nDataFinal = mktime(0, 0, 0, $sDataF[1], $sDataF[0], $sDataF[2]); return ($nDataInicial > $nDataFinal) ? floor(($nDataInicial - $nDataFinal)/84600) : floor(($nDataFinal - $nDataInicial)/84600); } function arredondar_dois_decimal($valor) { $float_arredondar=round($valor * 100) / 100; return $float_arredondado; } function limita_caracteres($texto, $limite, $quebra = true){ $texto=trim($texto); $texto="$texto"; $tamanho = strlen($texto); $tamanho=1.45*$tamanho; //multiplica a correlação entre o tamanho da letra e o tamanho da célula if($tamanho < $limite){ //Verifica se o tamanho do texto é menor ou igual ao limite $novo_texto = "$texto"; }else{ // Se o tamanho do texto for maior que o limite $limite=ceil($limite/1.45); //faz a correlação com o tamanho da letra $limite=$limite-4; if($quebra == true){ // Verifica a opção de quebrar o texto $novo_texto = trim(substr($texto, 0, $limite))."..."; }else{ // Se não, corta $texto na última palavra antes do limite $ultimo_espaco = strrpos(substr($texto, 0, $limite), " "); // Localiza o útlimo espaço antes de $limite $novo_texto = trim(substr($texto, 0, $ultimo_espaco))."..."; // Corta o $texto até a posição localizada } } return $novo_texto; // Retorna o valor formatado } function fixEncoding($in_str) { $cur_encoding = mb_detect_encoding($in_str) ; if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8")) { return utf8_decode($in_str); } elseif($cur_encoding == "ISO 8859-1" && mb_check_encoding($in_str,"ISO 8859-1")) { return $in_str; } else { // Não testado: return iconv($cur_encoding, "ISO 8859-1", $in_str); //throw new Exception('Codificação não suportada.'); //comentado este } } $RazaoSocial=fixEncoding($RazaoSocial); $Fantasia=fixEncoding($Fantasia); $Endereco=fixEncoding($Endereco); $Cidade=fixEncoding($Cidade); $Estado=fixEncoding($Estado); $LogoMarca=fixEncoding($LogoMarca); } //------------------------------------------ $dataR=date("d-m-Y"); require('rotation.php'); require_once('fpdf/fpdf.php'); //Definição dos cabeçalhos do relatório class PDF extends PDF_Rotate { // Page header function Header() { global $Titulo; global $Fantasia; global $RazaoSocial; global $Endereco; global $Cidade; global $Estado; global $LogoMarca; global $CNPJ1; global $enderecoLogo; global $FiltroEQP; global $FiltroMAR; global $FiltroMOD; global $FiltroUND; global $AnoAtual; /* if($enderecoLogo!=""){ //figuras/MMlogo.JPG $this->Image($enderecoLogo,6,6,28,20); //exibe a imagem sendo as duas primeiras coordenadas as do canto superior esquerdo e a �ltima a largura da figura. A propor��o da figura � sempre mantida } // Arial bold 15 $this->SetFont('Arial','B',13); //move para a direita $this->Cell(73); // Title $this->Cell(20,10,utf8_decode($Titulo),0,0,'C'); //trocando titulo //fonte para o cliente $this->SetFont('Courier','B',8); //move para a direita $this->Cell(33); // dados do cliente $textoMC="$RazaoSocial \n $Fantasia \n CNPJ: $CNPJ1 \n Endereço: $Endereco \n $Cidade"; $this->MultiCell(65,3,$textoMC,'C',0); */ if($enderecoLogo!=""){ //figuras/MMlogo.JPG $this->Image($enderecoLogo,10,6,30,20); //exibe a imagem sendo as duas primeiras coordenadas as do canto superior esquerdo e a �ltima a largura da figura. A propor��o da figura � sempre mantida } // Arial bold 15 $this->SetFont('Arial','B',13); // Move to the right $this->Cell(70); //80 // Title $this->Cell(20,10,utf8_decode($Titulo),0,0,'C'); //trocando titulo //fonte para o cliente $this->SetFont('Courier','B',8); //move para a direita $this->Cell(25); // dados do cliente $textoMC="$RazaoSocial \n $Fantasia \n CNPJ: $CNPJ1 \n Endereço: $Endereco \n $Cidade"; $this->MultiCell(80,3,$textoMC,'C',0); //Filtros if($FiltroEQP!="" || $FiltroMAR!="" || $FiltroMOD!="" || $FiltroUND!=""){ $FiltroEQP1=utf8_decode($FiltroEQP); $FiltroMAR1=utf8_decode($FiltroMAR); $FiltroMOD1=utf8_decode($FiltroMOD); $FiltroUND1=utf8_decode($FiltroUND); $filtros= "Filtrado por Eq.:[$FiltroEQP1] Marca:[$FiltroMAR1] Modelo:[$FiltroMOD1] Unidade:[$FiltroUND1] Ano:[$AnoAtual]"; //$this->SetFont('Courier','B',8); //$this->Cell(50); $this->MultiCell(0,1,$filtros,'L','C' ); //0,0,'L' } // Line break $this->Ln(20); //ajusta largura de uma linha horizontal $this->SetLineWidth(0.5); //coloca linha horizontal $this->Line(10,27,200,27); //inserir marca d'agua $this->RotatedImage('aclin_marcadagua.jpg',60,90,100,100,0); } // Page footer function Footer() { global $dataR; // Position at 1.5 cm from bottom $this->SetY(-15); // Logo $this->Image('figuras/MMlogo.JPG',15,280,20);//exibe a imagem sendo as duas primeiras coordenadas as do canto superior esquerdo e a última a largura da figura. A proporção da figura é sempre mantida // Arial italic 8 $this->SetFont('Arial','I',8); // indicação da Aclin $this->Cell(0,10,'www.aclin.com.br', 0,0,'C'); // Page number $this->Cell(0,0,'Page '.$this->PageNo().'/{nb}',0,0,'R'); // indicação de data $this->Cell(0,10,$dataR, 0,0,'C'); } //funcoes definidas em rotation.php para inserir marca dágua function RotatedText($x, $y, $txt, $angle)//insere marca dágua em forma de texto { //Text rotated around its origin $this->Rotate($angle,$x,$y); $this->Text($x,$y,$txt); $this->Rotate(0); } function RotatedImage($file,$x,$y,$w,$h,$angle)//insere marca dágua em forma de imagem { //Image rotated around its upper-left corner $this->Rotate($angle,$x,$y); $this->Image($file,$x,$y,$w,$h); $this->Rotate(0); } //Funções para as tabelas geradas a partir das consultas feitas neste código // Simple table -- cria o cabeçalho function BasicTableCAB($header, $w) { // Header $this->SetFont('Arial','B',8); for($i=0;$i<count($header);$i++) $this->Cell($w[$i],7,$header[$i],1,0,'C'); $this->Ln(); } // Simple table -- cria as Células function BasicTableCEL($Texto, $w) { // Header $TextoFinal=explode("**", $Texto); $this->SetFont('Arial','I',8); for($i=0;$i<count($TextoFinal);$i++){ //usa a funcao de limitacao do texto $TextoFinal[$i]=limita_caracteres($TextoFinal[$i],$w[$i]) ; $this->Cell($w[$i],6,$TextoFinal[$i],'LR',0,'C'); } $this->Ln(); } //função para fechar tabelas e traçar linhas no tamanho da tabela function FechaTabela($w){ // Closing line para tabelas $this->Cell(array_sum($w),0,'','T'); $this->Ln(5); } //funções de modelo para gerar tabelas a partir de documentos tipo texto // Load data -- importa dados de um arquivo txt e gera um vetor chamado $dataT function LoadData($file) { // Read file lines $lines = file($file); $dataT = array(); foreach($lines as $line) $dataT[] = explode(';',trim($line)); return $dataT; } // Simple table -- cria uma tabela simples function BasicTable($header, $dataT) { // Header foreach($header as $col) $this->Cell(40,7,$col,1); $this->Ln(); // Data foreach($dataT as $row) { foreach($row as $col) $this->Cell(40,6,$col,1); $this->Ln(); } } // Better table -- cria uma tabela um pouco melhor function ImprovedTable($header, $dataT) { // Column widths $w = array(40, 35, 40, 45); // Header for($i=0;$i<count($header);$i++) $this->Cell($w[$i],7,$header[$i],1,0,'C'); $this->Ln(); // Data foreach($dataT as $row) { $this->Cell($w[0],6,$row[0],'LR'); $this->Cell($w[1],6,$row[1],'LR'); $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R'); $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R'); $this->Ln(); } // Closing line $this->Cell(array_sum($w),0,'','T'); } // Colored table -- cria uma tabela coloria function FancyTable($header, $dataT) { // Colors, line width and bold font $this->SetFillColor(255,0,0); $this->SetTextColor(255); $this->SetDrawColor(128,0,0); $this->SetLineWidth(.3); $this->SetFont('','B'); // Header $w = array(40, 35, 40, 45); for($i=0;$i<count($header);$i++) $this->Cell($w[$i],7,$header[$i],1,0,'C',true); $this->Ln(); // Color and font restoration $this->SetFillColor(224,235,255); $this->SetTextColor(0); $this->SetFont(''); // Data $fill = false; foreach($dataT as $row) { $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill); $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill); $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill); $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill); $this->Ln(); $fill = !$fill; } // Closing line $this->Cell(array_sum($w),0,'','T'); } } // Instanciation of inherited class $pdf = new PDF('P', 'mm', 'A4'); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->SetFont('Times','',12); // cria a linha de colunas das tabelas: $header = array('TAG(DEC)', 'Marca', 'Modelo', 'N.Serie', 'N.Patrimônio', 'Cadastrado em:', 'Idade (anos)', 'Vida útil' ); // Column widths - tamanhos das colunas $w = array(25, 40, 30, 30, 30, 25, 30, 30); /* Relatório */ //tabela de inventário do cliente $TAB = "Z_".$CNPJ."_INV"; $vaz=""; $desativado = "Desativado"; //seleciona todas as unidades $query = "SELECT Unidade FROM $TAB GROUP BY Unidade "; $result = mysqli_query($link, $query); // cabeçalho das tabelas: $header = array('Equipamento', 'Quantidade'); // tamanho das colunas $w = array(80, 40); //armazena todas as inidades no vetor Unidade while ($row = mysqli_fetch_array($result)) { $Unidade [] = $row['Unidade']; } //executa para cada unidade do hospital //foreach($Unidade as $val) { //$pdf->SetFont('Arial','B',15); //$pdf->Cell(35,10,utf8_decode($val),0,1,'L'); //pdf->Cell(15); //$pdf->BasicTableCAB($header, $w); //conexão com o BD, numero de tipo equipamentos por unidade $query = "SELECT Equipamento, count(*) FROM $TAB WHERE (Situacao!='$desativado' OR Situacao='$vaz') GROUP BY Equipamento"; if($FiltroEQP!=""){ $query = "SELECT Equipamento, count(*) FROM $TAB WHERE Equipamento='$FiltroEQP' AND (Situacao!='$desativado' OR Situacao='$vaz') ORDER BY Equipamento"; //filtrando if($FiltroEQP!="" || $FiltroMAR!="" || $FiltroMOD!="" || $FiltroUND!=""){ $addvirg = "no"; $query.= " AND ("; //abre o where if($FiltroEQP!=""){ if($addvirg == "yes"){ $query.=" AND "; //adiciona virgula caso o filtro anterior tenha sido aplicado } $query.="Equipamento='$FiltroEQP'"; $addvirg = "yes"; } if($FiltroMAR!=""){ if($addvirg == "yes"){ $query.=" AND "; //adiciona virgula caso o filtro anterior tenha sido aplicado } $query.="Marca='$FiltroMAR'"; $addvirg = "yes"; } if($FiltroMOD!=""){ if($addvirg == "yes"){ $query.=" AND "; //adiciona virgula caso o filtro anterior tenha sido aplicado } $query.="Modelo='$FiltroMOD'"; $addvirg = "yes"; } if($FiltroUND!=""){ if($addvirg == "yes"){ $query.=" AND "; //adiciona virgula caso o filtro anterior tenha sido aplicado } $query.="Unidade='$FiltroUND'"; $addvirg = "yes"; } $query.=" )"; //exclui os equipamentos desativados } } $result = @mysqli_query($link, $query); while ($tbl = mysqli_fetch_array($result)) { $CODE=$tbl["CODE"]; $Estrutura=$tbl["Estrutura"]; $Equipamento=$tbl["Equipamento"]; if($Estrutura!=""){ $Equipamento=$Estrutura; } $quantEquip = $tbl['count(*)']; $TAG=$tbl["TAG"]; $NumSerie=$tbl["NumSerie"]; $NumPatrimonio=$tbl["NumPatrimonio"]; $Marca=$tbl["Marca"]; $Modelo=$tbl["Modelo"]; $Criacao=$tbl["Criacao"]; $Unidade=$tbl["Unidade"]; $DataCadastro=$tbl["Data_cadastro"]; $DataAgenda=$tbl["DataAgenda"]; $DetalheEXE=$tbl["DetalheEXE"]; $TempInicial=$tbl["TempInicial"]; $TempFinal=$tbl["TempFinal"]; $Observacao=$tbl["Observacao"]; //$DetalheEXE=$tbl["DetalheEXE"]; //dados para manutenção predial $Local=$tbl["Localizacao"]; $Texto = " $Equipamento ** $quantEquip"; //centralizar tabela $pdf->Cell(15); //Cria celula com o vetor $texto $pdf->BasicTableCEL(utf8_decode($Texto), $w); } if($habilitaLinha="sim"){ $pdf->Cell(15); $pdf->FechaTabela($w); // Line break $pdf->Ln(5); } //} //faz a saída do documento $pdf->Output("Relatório Quantidade por Equipamento.pdf", "I"); //Finaliza a conexão com o BD mysqli_close($link);
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.