Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner Martins - SC

Plugin não funciona com pdf

Recommended Posts

Olá bom dia pessoal

 

Estou fazendo um script que mostra o resultado em um arquivo pdf, só que ele não esta funcionando, e não consigo ver o erro pois a página do admin retorna quando clico em Gerar AR no admin. Ondo pode estar o erro?

 

<?php


/*


  Plugin Name: Gerador de AR WooCommerce


  Plugin URI:  http://digitalshark.com.br


  Description: Um plugin simples para impressão de AR do WooCommerce para envio por Correios.


  Version: 0.1


  Author: Wagner Martins


  Author URI: http://digitalshark.com.br


License: GPL v1






Plugin Simples.


*/






function bulk_admin_AR_footer() {


global $post_type;






if ( 'shop_order' == $post_type ) {


?>


<script type="text/javascript">


jQuery(function() {


jQuery('<option>').val('gerar_ar').text('<?php _e( 'Gerar AR', 'woocommerce' )?>').appendTo("select[name='action']");


jQuery('<option>').val('gerar_ar').text('<?php _e( 'Gerar AR', 'woocommerce' )?>').appendTo("select[name='action2']");


});


</script>


<?php


}


}






/**


* Process the new bulk actions for changing order status


*/


function bulk_action_AR() {






$wp_list_table = _get_list_table( 'WP_Posts_List_Table' );


$action = $wp_list_table->current_action();






// Bail out if this is not a status-changing action


if ( strpos( $action, 'gerar_' ) === false ) {


return;


}






$new_status    = substr( $action, 5 ); // get the status name from action


$report_action = 'gerada' . $new_status;






$changed = 0;






$post_ids = array_map( 'absint', (array) $_REQUEST['post'] );






$sendback = add_query_arg( array( 'post_type' => 'shop_order', $report_action => true, 'changed' => $changed, 'ids' => join( ',', $post_ids ) ), '' );


wp_redirect( $sendback ); // esse é o padrão






exit();


}














function bulk_action_AR_notices() {


global $post_type, $pagenow;






// Bail out if not on shop order list page


if ( 'edit.php' !== $pagenow || 'shop_order' !== $post_type ) {


return;


}


if ( isset( $_REQUEST[ 'gerada_AR' ] ) ) {






$number = isset( $_REQUEST['changed'] ) ? absint( $_REQUEST['changed'] ) : 0;


$message = 'AR geradas em uma nova aba. Se não abrir, <a href="'. get_admin_url() .'admin-ajax.php/?action=get_AR_pdf&ids='.$_GET['ids'].'" target="_blank">clique aqui</a>.';


echo '<div class="updated"><p>' . $message . '</p></div>';


}


}










function get_AR_pdf(){






/**


 *


 * WooCommerce


 *


 * Biblioteca para PDF


 *


 */


require_once("dompdf/dompdf_config.inc.php");






$html .= '<!DOCTYPE html>';


$html .= ' <html>';


$html .= ' <head>';


$html .= '  <title>AR Correios</title>';


$html .= ' <style type="text/css">


*{font-size:15px;}


ul{list-style:none;padding:0;margin:0;}


div.one{width:374px;position:absolute;}


div.left{top:0;left:0;}


div.right{top:0;left:381px;}


div.one div{padding:13px 18px;line-height:19px;}


</style>';


$html .= ' </head>';


$html .= ' <body>';


$html .= ' <page>';






$orders = $_GET['ids'];


$orders = explode(",", $orders);






$i=0; $a=0;


foreach ($orders as $key => $value) {






$pedido = $value;


$order = new WC_Order( $pedido );


$order = wc_get_order( $value );






//altura


$height = 150;


$top = ($height + 5) * $a;






//esquerda//direita


if($i%2){ $alinha = "right"; $a++; }else{ $alinha = "left";  }






$nome  = $order->shipping_first_name;


$sobrenome  = $order->shipping_last_name;


$endereco  = $order->shipping_address_1;


$endereco2  = $order->shipping_address_2;


$cidade  = $order->shipping_city;


$uf  = $order->shipping_state;


$cep  = $order->shipping_postcode;






$rates = $order->get_shipping_methods();


foreach ( $rates as $key => $rate ) {


        $tipoEnvio = $rate['method_id'];


            break;


}






$html .= '<div class="one ';


$html .= $alinha;


$html .= '" style="top:';


$html .= $top;


$html .= ';height:';


$html .= $height;


$html .= 'px;"><div>';


$html .= '#000';


$html .= $order->id;


$html .= ' - <b>';






if ( $tipoEnvio == 'free_shipping' ) {


$html .= 'Carta Registrada';


} else {


$html .= $tipoEnvio;


}


$html .= '</b><br /><b>';


$html .= $nome ." ". $sobrenome;


$html .= '</b><br />';


$html .= $endereco;


$html .= ' - ';










if ( is_plugin_active( 'woocommerce-extra-checkout-fields-for-brazil/woocommerce-extra-checkout-fields-for-brazil.php' ) ) {


$numero  = $order->shipping_number;


$bairro  = $order->shipping_neighborhood;


   $html .= $numero;


   $html .= '<br/>';


   $html .= $bairro;


   $html .= ' - ';


}










$html .= $endereco2;


$html .= '<br />';


$html .= $cidade;


$html .= ' - ';


$html .= $uf;


$html .= '<br /><b>';


$html .= 'CEP: ';


$html .= $cep;


$html .= '</b></div></div>';






if($i == 13){


$html .= '</page><page>';


$a=0;


}






$i++;






}














$html .= ' </body>';


$html .= '</html>';






$dompdf = new DOMPDF();


$dompdf->load_html($html);


$dompdf->render();


$dompdf->stream("AR.pdf", array('Attachment'=>0));






exit;


}










function custom_admin_AR_js() {






if ( $_GET['gerada_AR'] == "1" ) {


    echo '<script type="text/javascript" language="Javascript">window.open("'. get_admin_url() .'admin-ajax.php/?action=get_AR_pdf&ids='.$_GET['ids'].'")</script>';


}


}










add_action('wp_ajax_get_AR_pdf', 'get_AR_pdf');


add_action('wp_ajax_nopriv_get_AR_pdf', 'get_AR_pdf');


add_action( 'admin_footer', 'bulk_admin_AR_footer', 1000 );


add_action( 'load-edit.php', 'bulk_action_AR' );


add_action( 'admin_notices', 'bulk_action_AR_notices' );


add_action('admin_head', 'custom_admin_AR_js');

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Alvaro_php
      Pessoal boa noite
      Tenho um sistema em Visual Basic 6 que utiliza um documento do Word que é enviado para as empresas, onde tenho algumas flags que são utilizadas para colocar no nome da empresa e endereço e que são enviadas via email

      Estou conseguindo converter esse documento do WORD em PDF sem problemas
      Private Sub ConverterWordParaPDF()

          On Error GoTo TrataErro
          Dim ObjWord2 As Word.Application
          Dim ObjWordDoc2 As Word.Document
          
          Set ObjWord2 = CreateObject('Word.Application')
          ObjWord2.Visible = False
          ObjWord2.DisplayAlerts = wdAlertsNone

          Set ObjWordDoc2 = ObjWord2.Documents.Open(App.Path + '\Documento.doc', True, True, False, Replace(Replace(Replace(Replace(Rs(1), '/', ''), '-', ''), '.', ''), '_', ''))

          ObjWordDoc2.ExportAsFixedFormat OutputFileName:= _
          App.Path + '\Documento.pdf', ExportFormat:=wdExportFormatPDF, _
          OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
          wdExportAllDocument, from:=1, To:=1, Item:=wdExportDocumentContent, _
          IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
          wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
          True, UseISO19005_1:=False
              
          ObjWord2.Visible = False
          ObjWord2.Quit (False)
          Set ObjWord2 = Nothing
      Exit Sub
      TrataErro:
        msgbox 'Erro ao converter o documento'
      End Sub

      Porém a senha que coloquei no word, não está ficando no arquivo pdf após a conversão, e também não achei nenhuma opção para incluir uma senha nesse novo arquivo

      Não estou usando o Crystal e o documento do word é um documento qualquer que o cliente usa, por isso que não da para utilizar o crystal

      Alguém sabe como que eu poderia fazer essa conversão e colocar a senha nesse novo arquivo ou teria alguma outra forma de converter esse documento para pdf que desse para colocar a senha

      Desde já agradeço a todos
    • Por Kefatif
      Prezados, boa tarde!
       
      Em uma tela faço o envio de arquivos PDF para uma pasta reservada para isso.
       
      Estou tendo dificuldade para criar um botão de download na tela de consultas, quando abro a página de consulta ele está me mostrando a seguinte mensagem: "Notice: Undefined variable: row in C:\xampp\htdocs\plataforma\indicadores\consultar.php on line 126"
       
      Podem me ajudar?
       
      <?php include_once 'autenticacao.php'; include_once'../conexao.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Envio de Ata</title> <link href="../css/estilo.css" rel="stylesheet"> <!-- Bootstrap Core CSS --> <link href="../css/bootstrap.css" rel="stylesheet"> <!-- Custom CSS --> <link href="../css/modern-business.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <script src="../js/jquery.min.js"></script> </head> <body> <?php include_once 'nav-menu1.php'; ?> <!-- Page Content --> <div class="container" style="width: 90%"> <?php include_once 'cabecalho.php'; ?> <div class="row"> <?php include_once 'barra-lateral.php'; ?> <!-- Content Column --> <div class="col-md-9" style="width: 80%"> <h4><b>CONSULTAR UNIDADE</b></h4> <form class="form-inline" action="consultar.php" autocomplete="off" method="get"> <div id="form-callcenter"> <label style="width: 30%"> <input type="text" name="nome" class="form-control" placeholder="Digite o nome da unidade" style="width: 100%"> </label> <input type="submit" readonly value="Pesquisar" class="btn btn-primary"> </div> </form> <?php if (isset($_GET["nome"]) ) { $nome = $_GET["nome"]; include_once '../funcoes.php'; $sql = "select A.dt_envio, A.unidade, A.responsavel, A.observacao, A.anexo from controle_ata A where A.unidade like '%".$nome."%' order by A.dt_envio desc"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { ?> <table class="table table-hover table-bordered" id="tabela-dispensacao2"> <tr> <th>Unidade</th> <th>Data do envio</th> <th>Responsável</th> <th>Observação</th> <th>Ata</th> <th>Download</th> </tr> <?php if($row["anexo"] == ''){ $cor = "red"; }else{ $cor = "blue"; } while ($row = mysqli_fetch_array($result)){ foreach($row as $key => $values){ $row[$key]= utf8_encode($values); } ?> <tr> <td><?php echo $row["unidade"]?></td> <td><?php echo dataTela($row["dt_envio"]); ?></td> <td><?php echo $row["responsavel"]; ?></td> <td><?php echo $row["observacao"] ?></td> <td><?php echo $row["anexo"] ?></td> <td><a class="<?php if($row["ANEXO"] == ''){echo "link-nao-ativo";}?>" href='anexos/<?php echo $row["ANEXO"] ?>' target="_blank"> <i style="color:<?php echo $cor ?>" class="glyphicon glyphicon-download-alt"></i> </a> </td> </tr> <?php }//ENCERRANDO O WHILE ?> </table> <?php }else{ echo "Nenhuma unidade encontrada!<br>"; } } ?> <?php mysqli_close($con); ?> </div> </div> <!-- /.row --> </div> <!-- /.container --> <!-- jQuery --> <script src="../js/jquery.js"></script> <!-- Bootstrap Core JavaScript --> <script src="../js/bootstrap.min.js"></script> </body> </html>  
       
      Agradeço a ajuda desde já!
    • Por Mauricio Molina
      Ola pessoal,
       
      Estou com probleminha, preciso gerar um PDF de alguns dados do BD, até consegui gerar o PDF (quando especifico o id), mas preciso que ao clicar no botão corresponde de uma lista de ordem de serviço, o PDF seja gerado de acordo com o ID da ordem de serviço.
       

       
      Botão:
      <a type="button" class="btn btn-sm btn-info" href="gerar_pdf.php?id=<?php echo $rows_cursos['id']; ?>" target="_blank" >PDF</a> Gerar PDF:
      <?php include ('pdf/mpdf.php'); include_once("../conexao/conexao.php"); //Criar a conexão $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); if(!$conn){ die("Falha na conexao: " . mysqli_connect_error()); }else{ //echo "Conexao realizada com sucesso"; } $id = '17'; //***Aqui seria onde busca o ID da Ordem de Serviço*** $result_usuario = "SELECT * FROM ordem_servico WHERE id = '$id' LIMIT 1"; $resultado_usuario = mysqli_query($conn, $result_usuario); $row_usuario = mysqli_fetch_assoc($resultado_usuario); $pagina = "<html> <body> <h2>Ordem de Serviço Eletrobrastec</h2><p></p> <strong>Empresa:</strong> Eletrobrastec                                          <strong>Data:</strong> ".$row_usuario['date']."              <strong>Número OS:</strong> ".$row_usuario['id']." <p></p> <strong>Edereço:</strong> Rua Santo Agostinho, 860            <strong>Bairro:</strong> Caiçara        <strong>Cidade:</strong> Praia Grande       <strong>UF:</strong> SP <p></p> <strong>CNPJ:</strong> 288.880.270/0018-1         <strong>DD:</strong> 13         <strong>Telefone:</strong> 99757-6400 <hr> <h2>Dados do Cliente</h2> <p></p> <strong>Nome:</strong> ".$row_usuario['nome']."                                          <strong>Data Execução:</strong> _______________________ <p></p> <strong>DD:</strong> ".$row_usuario['dd']."                       <strong>Telefone:</strong> ".$row_usuario['telefone']."               <strong>E-mail:</strong> ".$row_usuario['email']." <p></p> <strong>CPF:</strong> ".$row_usuario['cpf']."               <strong>CNPJ:</strong> ".$row_usuario['cnpj']." <p></p> <strong>Aparelho:</strong> ".$row_usuario['aparelho']."                 <strong>Modelo:</strong> ".$row_usuario['modelo']."                  <strong>Defeito:</strong> ".$row_usuario['defeito']." <p></p> <strong>Taxa:</strong> _______________________                       <strong>Valor Total:</strong> ".$row_usuario['v_total']." <p></p> <strong>Descrição Serviço:</strong> ".$row_usuario['desc_servico']." <p></p><p></p><p></p><p></p><p></p><p></p><p></p> <strong>Observações:</strong> _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ <p></p><p></p><p></p><p></p> <label>*A taxa de visita apenas será cobrada caso o cliente não realize o serviço, caso não queira e posteriormente venha realizar, a mesma será descontada.<label> </body> </html> "; $arquivo = "ordemservico.pdf"; $mpdf = new mPDF(); $mpdf->WriteHTML($pagina); $mpdf->Output($arquivo, 'I'); // I - Abre no navegador // F - Salva o arquivo no servido // D - Salva o arquivo no computador do usuário ?> Neste caso percebem que esta sendo gerado um PDF com a ordem de serviço de ID 17, tudo correto, porem gostaria que neste item, fosse gerado de acordo com o botão clicado.
       
      $id = '17'; //***Aqui seria onde busca o ID da Ordem de Serviço*** $result_usuario = "SELECT * FROM ordem_servico WHERE id = '$id' LIMIT 1"; $resultado_usuario = mysqli_query($conn, $result_usuario); $row_usuario = mysqli_fetch_assoc($resultado_usuario);  
      Alguém pra dar uma força?
       
      Obrigado!
       
       
    • Por Kefatif
      Prezados, bom dia.
       
      Tenho uns um sistema com uns relatórios em PDF na pasta do meu domínio onde chamo pelo comando abaixo:

                 
      <div class="row">             <div class="col-md-4 img-portfolio">                 <a href="relatorios/teste.pdf" target="_blank">                 <img class="img-responsive img-hover" src="../img/jan-700x400.jpg" alt=""></a><h3>                 <center><a href="relatorios-teste/relatorios-producao.php">Janeiro/2021</a></center></h3>             </div>  
      Mas se uma pessoa acessar o PDF, copiar o link e enviar para uma outra pessoa que não tem acesso ao sistema, essa pessoa não autorizada terá acesso a esses relatórios, existe alguma forma para restringir esse acesso?
       
      Uso a autenticação da seguinte forma.
       
      Arquivo "Autenticação":
       
      <?php session_start(); //se não(!) existir a sessao login if(!isset($_SESSION["nome"])){ session_destroy(); $msg = "Acesso negado!"; header("location:../login.php?msg=".$msg); }elseif( $_SESSION["perfil"] != 'relatorios' ){ $msg = "Acesso negado!"; header("location:../painel.php?msg=".$msg); } ?>  
       
      Agradeço a todos desde já.
    • Por Diego Tolentino
      Fala Galera!! procuro uma solução a tempos para um leitor de pdf que leia pdf com mídias (no meu caso vídeos).
       
      Tenho um ebook em pdf que preciso disponibilizá-lo online, porém esse pdf contem um vídeo e não roda apenas com os navegadores normais. 
       
      A solução não poderia ser através de plugin ou apps, pois preciso que as pessoas que acessarem esse ebook abram sem maiores dificuldades.
       
      Eu já uso um leitor em javaScript, o PDF.js mas ele não lê o video
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.