PI S4 DSW III DouglasARS: mudanças entre as edições
imported>Douglas |
imported>Douglas |
||
| (36 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 14: | Linha 14: | ||
* | *Operações com data. | ||
*Gerando PDF a partir de um HTML com o PHP. | *Gerando PDF a partir de um HTML com o PHP. | ||
= | =Operações com data= | ||
| Linha 38: | Linha 37: | ||
Infelizmente a função '''strftime()''' retorna os nomes dos dias da semana e meses em inglês, mas é muito útil em se tratando de datas futuras | Infelizmente a função '''strftime()''' retorna os nomes dos dias da semana e meses em inglês, mas é muito útil em se tratando de datas passadas ou futuras como, por exemplo, dividir um valor e lançar os próximos vencimentos mensais. | ||
;Função: date() | ;Função: date() | ||
| Linha 87: | Linha 85: | ||
:%r: Sinal de menos quando for um período negativo, vazio quando positivo | :%r: Sinal de menos quando for um período negativo, vazio quando positivo | ||
</pre> | </pre> | ||
=Exportar PHP/HTML arquivo PDF= | |||
Vamos mostrar como exportar uma página PHP/HTML para um arquivo PDF, mas antes, precisamos entender um pouco melhor como se pode fazer isso. Você já deve ter visto que a grande maioria dos programas disponibiliza a opção "Exportar para PDF". Em outros casos, você também pode instalar um programa para fazer isso pelo próprio sistema operacional e ele opera como um impressora "virtual". O que vamos apresentar, a partir de agora, é uma maneira de transformar o seu código HTML em PDF sem muito esforço. Tendo um documento padrão onde se possa mudar variáveis dentro desse template para depois exportar essa página para um arquivo PDF em formato A4, sem estragar o layout. | |||
No internet pode-se encontrar uma quantidade enorme de scripts que ajudam a realizar essa conversão. Aqui neste demostrativo eu utilizei o [https://github.com/dompdf/dompdf/releases DOMPDF:0.7.0] que é a última versão estável e um pouco diferente de usar com relação a versão 0.5.2 anteriormente apresentada. Na nova versão some a função dompdf_config.inc.php e vou mostrar o que é preciso para fazer gerar seus PDFs. | |||
;Instalando o DOMPDF 0.7.0 | |||
1. Faça o download do DOMPDF no site oficial da biblioteca. A versão que vou utilizar neste tutorial é a versão 0.7.0. | |||
2. Descompacte os arquivos do DOMPDF em um local acessível pelo seu servidor web. Por exemplo: /var/www/html/exemplo (Linux Ubuntu). | |||
3. Pronto! | |||
;Utilizando o DOMPDF: | |||
Vou dar um exemplo simples de utilização da biblioteca. Seguindo este exemplo, você consegue fazer tudo o que precisa para geração de arquivos PDF. | |||
;teste2.php | |||
<pre> | |||
<?php | |||
$html='<html> | |||
<head> | |||
<title></title> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> | |||
</head> | |||
<style> | |||
#tudo{ | |||
width: 98%; | |||
height: 16%; | |||
} | |||
#tudo1 { | |||
position: relative; | |||
width: 30%; | |||
height: 15%; | |||
background-color: #F0FFF0; | |||
text-align: center; | |||
float: left; | |||
} | |||
#tudo2 { | |||
position: relative; | |||
left: 31%; | |||
width: 67%; | |||
height: 15%; | |||
background-color: white; | |||
border: 1px solid gray; | |||
text-align: center; | |||
float: right; | |||
} | |||
#tudo3 { | |||
position: relative; | |||
width: 100%; | |||
height: 80%; | |||
background-color: white; | |||
border: 1px solid blue; | |||
} | |||
</style> | |||
<body> | |||
<div id="tudo"> | |||
<div id="tudo1" > | |||
<p>LOGO</p> | |||
</div> | |||
<div id="tudo2" > | |||
<p>Título do Relatório</p> | |||
teste<br> | |||
teste | |||
</div> | |||
</div> | |||
<div id="tudo3"> | |||
Corpo do documento...<br> | |||
Corpo do documento...<br> | |||
Corpo do documento...<br> | |||
Corpo do documento...<br> | |||
Corpo do documentox...<br> | |||
</div> | |||
</div> | |||
</body> | |||
</html>'; | |||
echo $html; | |||
require_once 'dompdf/lib/html5lib/Parser.php'; | |||
require_once 'dompdf/lib/php-font-lib/src/FontLib/Autoloader.php'; | |||
//require_once 'dompdf/src/functions.inc.php'; | |||
require_once 'dompdf/autoload.inc.php'; | |||
use Dompdf\Dompdf; | |||
$dompdf = new Dompdf(); | |||
$dompdf->loadHtml($html); | |||
$dompdf->setPaper('A4', 'portrait'); | |||
$dompdf->set_option('isHtml5ParserEnabled', true); | |||
$dompdf->render(); | |||
$pdf = $dompdf->output(); | |||
$dompdf->stream("teste2"); | |||
?> | |||
</pre> | |||
O código acima mostra com funciona o script, bastando instanciar algumas bibliotecas e abrir o código HTML, que neste exemplo está associado a variável '''$html''', então converter a mesma para um documento PDF: | |||
Na nossa página no hostinger colocamos um exemplo: | |||
http://douglasars.esy.es/teste2.php | |||
Testem!!! | |||
Ao testar, um arquivo PDFs (teste2.php) vai ser baixado para seu computador. | |||
Existem muitos exemplos a partir da página: http://pxd.me/dompdf/www/examples.php | |||
<blockquote style="background: #FFEEFF; border: 1px solid red; margin-left: 0px; margin-right: 0px; padding: 1em;"> | |||
;Atenção! | |||
Para que sua aplicação que está no Hostinger possa funcionar com o DOMPDF, é necessário fazer o upload da pasta dompdf para a pasta da sua aplicação. Cuidado com a sobreposição de versões. | |||
</blockquote> | |||
=Código Fonte= | |||
A novidade no nosso código fonte é o cadastro de produtos com a possibilidade de gerar o relatório em PDF da listagem. Nele colocamos as imagens dos produtos que estão cadastrados. O próximo passo, vamos criar um carrinho de compras utilizando sessões. | |||
;Acesse: http://douglasars.esy.es | |||
;Usuário: teste | |||
;Senha: 1234 | |||
;Código fonte para download: http://douglasars.esy.es/down/exemplo.zip | |||
=Organização da Semana 5= | =Organização da Semana 5= | ||
Nesta quarta semana apresentamos novos códigos PHP de como fazer operações com datas e como gerar relatórios PDF a partir das páginas HTML. Deixamos para a próxima semana de interação, já que na semana que vem teremos o ''chat de feriadão'', as digitações de lista, e no lugar, colocamos no nosso sistema exemplo (douglasars.esy.es) a parte de cadastro de produtos que inclui as imagens dos produtos que estão cadastrados e também o relatório PDF da lista. Lembrando que no caso das imagens o que fica gravado é o nome do arquivo e que esses arquivos de imagens devem ser enviados para um local (pasta) dentro do seu domínio na WEB. Para terminar, essa semana teremos chat e pretendo corrigir a AO1. Fiquem atentos também a novas postagens na wiki. | |||
Testem todos os códigos! | |||
Prof. Douglas A. | Prof. Douglas A. | ||
=Referências= | =Referências= | ||
[1] http://www.devmedia.com.br/manipulando-datas-com-php/32966 | [1] http://www.devmedia.com.br/manipulando-datas-com-php/32966 | ||
Edição atual tal como às 11h13min de 10 de junho de 2016
Apresentação
Olá Aluno,
Nestas duas últimas semanas, mostramos como por nossa aplicação na web. Agora sua aplicação será visível para qualquer pessoa em qualquer lugar do mundo, desde que tenha acesso à internet e um navegador. Lembrando que isto pode ser com qualquer sistema operacional em qualquer computador, tablet ou smartphone. Mostramos como criar um domínio, como criar e acessar o banco de dados na web e enviar os nossos arquivos e pastas de código fonte para esse local na internet, utilizando um programa de FTP. Nesta quarta semana, vamos dar uma atenção para nossa aplicação, vamos propor melhorias e novas implementações no código PHP, como digitar listas e gravar no banco de dados, como fazer operações com datas e como gerar relatórios PDF a partir das páginas HTML.
Bom trabalho!
Fiquem atentos as postagens no Fórum e participem dos nossos encontros virtuais.
Prof. Douglas A.
Objetivos
- Operações com data.
- Gerando PDF a partir de um HTML com o PHP.
Operações com data
Dentre todas as simplificações possíveis, a que mais costuma deixar o programador feliz é a função strtotime(). Pra quem já está acostumado, parece que não parece nada de mais, mas pra quem ainda faz cálculos com data multiplicando por 365,25 ou somando 30 ou qualquer outra combinação esdruxula, aqui vai alguns exemplos de uso da função strtotime():
- Função
- srttotime()
<?php
echo '<P>Ontem: ', strftime('%A', strtotime('yesterday'));// Ontem: Wednesday
echo '<P>Amanhã: ', strftime('%A', strtotime('tomorrow'));// Amanhã: Friday
echo '<P>Próxima segunda: ', strftime('%d de %B de %Y', strtotime('next monday')); // Próxima segunda: 23 de May de 2016
echo '<P>Vencimento daqui a 3 meses: ', strftime('%d/%m/%Y', strtotime('+3 months')); // Vencimento: 19/08/2016
?>
Infelizmente a função strftime() retorna os nomes dos dias da semana e meses em inglês, mas é muito útil em se tratando de datas passadas ou futuras como, por exemplo, dividir um valor e lançar os próximos vencimentos mensais.
- Função
- date()
A função date() recebe apenas um parâmetro: o formato de data. Por padrão, sempre será mostrada a data do momento atual da execução, como mostra o código a seguir:
<?php
echo '<p> Hoje: ', date("d/m/Y"); // 19/05/2016
?>
- Função time()
A função time() retorna qualquer número de segundos desde a era UNIX, que é de 1º de Janeiro de 1970 00:00:00 até a hora atual de execução. Este número também é chamado de timestamp UNIX. Para utilizar a função basta declara-la conforme o código abaixo:
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
echo '<p>Hoje: '. date('d-m-Y') ."<br>"; // data atual
echo 'Próxima semana: '. date('d-m-Y', $nextWeek) ."<br>"; // É uma semana após a data atual
echo 'Próxima semana 2: '. date('d-m-Y', strtotime('+2 week')) ."<br>"; // São duas semanas após a data atual
?>
Além dessas funções, existem muitas outras que fazem operações com horas e datas. Abaixo segue uma combinação muito útil na hora de formatar a apresentação de datas e horas:
:%Y: Ano, com dois dígitos :%y: Ano, com um ou dois dígitos :%M: Mês, com dois dígitos :%m: Mês, com um ou dois dígitos :%D: Dia, com dois dígitos :%d: Dia, com um ou dois dígitos :%a: Total de dias :%H: Hora, com dois dígitos :%h: Hora, com um ou dois dígitos :%I: Minuto, com dois dígitos :%i: Minuto, com um ou dois dígitos :%S: Segundo, com dois dígitos :%s: Segundo, com um ou dois dígitos :%R: Sinal de mais quando for um período positivo, menos quando negativo :%r: Sinal de menos quando for um período negativo, vazio quando positivo
Exportar PHP/HTML arquivo PDF
Vamos mostrar como exportar uma página PHP/HTML para um arquivo PDF, mas antes, precisamos entender um pouco melhor como se pode fazer isso. Você já deve ter visto que a grande maioria dos programas disponibiliza a opção "Exportar para PDF". Em outros casos, você também pode instalar um programa para fazer isso pelo próprio sistema operacional e ele opera como um impressora "virtual". O que vamos apresentar, a partir de agora, é uma maneira de transformar o seu código HTML em PDF sem muito esforço. Tendo um documento padrão onde se possa mudar variáveis dentro desse template para depois exportar essa página para um arquivo PDF em formato A4, sem estragar o layout.
No internet pode-se encontrar uma quantidade enorme de scripts que ajudam a realizar essa conversão. Aqui neste demostrativo eu utilizei o DOMPDF:0.7.0 que é a última versão estável e um pouco diferente de usar com relação a versão 0.5.2 anteriormente apresentada. Na nova versão some a função dompdf_config.inc.php e vou mostrar o que é preciso para fazer gerar seus PDFs.
- Instalando o DOMPDF 0.7.0
1. Faça o download do DOMPDF no site oficial da biblioteca. A versão que vou utilizar neste tutorial é a versão 0.7.0.
2. Descompacte os arquivos do DOMPDF em um local acessível pelo seu servidor web. Por exemplo: /var/www/html/exemplo (Linux Ubuntu).
3. Pronto!
- Utilizando o DOMPDF
Vou dar um exemplo simples de utilização da biblioteca. Seguindo este exemplo, você consegue fazer tudo o que precisa para geração de arquivos PDF.
- teste2.php
<?php
$html='<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<style>
#tudo{
width: 98%;
height: 16%;
}
#tudo1 {
position: relative;
width: 30%;
height: 15%;
background-color: #F0FFF0;
text-align: center;
float: left;
}
#tudo2 {
position: relative;
left: 31%;
width: 67%;
height: 15%;
background-color: white;
border: 1px solid gray;
text-align: center;
float: right;
}
#tudo3 {
position: relative;
width: 100%;
height: 80%;
background-color: white;
border: 1px solid blue;
}
</style>
<body>
<div id="tudo">
<div id="tudo1" >
<p>LOGO</p>
</div>
<div id="tudo2" >
<p>Título do Relatório</p>
teste<br>
teste
</div>
</div>
<div id="tudo3">
Corpo do documento...<br>
Corpo do documento...<br>
Corpo do documento...<br>
Corpo do documento...<br>
Corpo do documentox...<br>
</div>
</div>
</body>
</html>';
echo $html;
require_once 'dompdf/lib/html5lib/Parser.php';
require_once 'dompdf/lib/php-font-lib/src/FontLib/Autoloader.php';
//require_once 'dompdf/src/functions.inc.php';
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->render();
$pdf = $dompdf->output();
$dompdf->stream("teste2");
?>
O código acima mostra com funciona o script, bastando instanciar algumas bibliotecas e abrir o código HTML, que neste exemplo está associado a variável $html, então converter a mesma para um documento PDF:
Na nossa página no hostinger colocamos um exemplo:
http://douglasars.esy.es/teste2.php
Testem!!!
Ao testar, um arquivo PDFs (teste2.php) vai ser baixado para seu computador.
Existem muitos exemplos a partir da página: http://pxd.me/dompdf/www/examples.php
- Atenção!
Para que sua aplicação que está no Hostinger possa funcionar com o DOMPDF, é necessário fazer o upload da pasta dompdf para a pasta da sua aplicação. Cuidado com a sobreposição de versões.
Código Fonte
A novidade no nosso código fonte é o cadastro de produtos com a possibilidade de gerar o relatório em PDF da listagem. Nele colocamos as imagens dos produtos que estão cadastrados. O próximo passo, vamos criar um carrinho de compras utilizando sessões.
- Acesse
- http://douglasars.esy.es
- Usuário
- teste
- Senha
- 1234
- Código fonte para download
- http://douglasars.esy.es/down/exemplo.zip
Organização da Semana 5
Nesta quarta semana apresentamos novos códigos PHP de como fazer operações com datas e como gerar relatórios PDF a partir das páginas HTML. Deixamos para a próxima semana de interação, já que na semana que vem teremos o chat de feriadão, as digitações de lista, e no lugar, colocamos no nosso sistema exemplo (douglasars.esy.es) a parte de cadastro de produtos que inclui as imagens dos produtos que estão cadastrados e também o relatório PDF da lista. Lembrando que no caso das imagens o que fica gravado é o nome do arquivo e que esses arquivos de imagens devem ser enviados para um local (pasta) dentro do seu domínio na WEB. Para terminar, essa semana teremos chat e pretendo corrigir a AO1. Fiquem atentos também a novas postagens na wiki.
Testem todos os códigos!
Prof. Douglas A.
Referências
[1] http://www.devmedia.com.br/manipulando-datas-com-php/32966
| << | <> | >> |
|---|