<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Paulo Canedo &#187; PHP</title>
	<atom:link href="http://www.paulocanedo.com.br/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulocanedo.com.br</link>
	<description>Blog pessoal - TI, Java, NetBeans e Programação em geral</description>
	<lastBuildDate>Wed, 26 May 2010 16:30:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Usando relatórios jasper com PHP</title>
		<link>http://www.paulocanedo.com.br/2008/08/27/usando-relatorios-jasper-com-php/</link>
		<comments>http://www.paulocanedo.com.br/2008/08/27/usando-relatorios-jasper-com-php/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 15:56:24 +0000</pubDate>
		<dc:creator>Paulo Canedo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[itext]]></category>
		<category><![CDATA[jasper]]></category>
		<category><![CDATA[jasper-reports]]></category>
		<category><![CDATA[java & php]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php-java-bridge]]></category>
		<category><![CDATA[relatórios]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=21</guid>
		<description><![CDATA[Introdução A criação de relatórios é uma tarefa muito comum na área de desenvolvimento de sistemas, produzir modelos de relatórios sempre foi uma tarefa muito árdua até o surgimento da biblioteca jasperreports e sua ferramenta de design, o iReport. Através destas ferramentas é possível criar modelos de relatórios de uma forma muito simples e prática. [...]]]></description>
			<content:encoded><![CDATA[<h1>Introdução</h1>
<p>A criação de relatórios é uma tarefa muito comum na área de desenvolvimento de sistemas, produzir modelos de relatórios sempre foi uma tarefa muito árdua até o surgimento da biblioteca jasperreports e sua ferramenta de design, o iReport. Através destas ferramentas é possível criar modelos de relatórios de uma forma muito simples e prática.</p>
<p>O funcionamento básico trata-se da criação de um arquivo com extensão jrxml (Jasper Report XML), o qual pode ser facilmente desenhado através da ferramenta gráfica iReport, com o modelo de relatório em mãos, o arquivo jrxml, a biblioteca do jasperreport compila o arquivo para um formato com extensão jasper, este arquivo é o “byte-code” do modelo de relatório a ser interpretado pelo jasperreport. Em seguida a mesma biblioteca irá gerar o arquivo de relatório no formato desejado.</p>
<p>O jasperreport é capaz de gerar relatórios em vários formatos, como por exemplo: xml, odt, pdf, rtf, entre outros. Para cada um desses formatos o jasperreport vai precisar de uma biblioteca capaz de gerar conteúdo no específico formato (sendo que alguns formatos não é necessário nenhuma extensão extra). Por exemplo, para gerar arquivos pdf o jasperreport necessita da biblioteca itext.<br />
São necessárias algumas bibliotecas para qualquer geração de relatório com o jasperreport, além das bibliotecas específicas para cada formato, são elas:</p>
<ul>
<li>apache-commons-logging</li>
<li>apache-commons-beanutils</li>
<li>apache-commons-collections</li>
<li>apache-commons-digest</li>
</ul>
<p>Se o modelo de relatório que está implementando fizer uma consulta ao banco de dados, a biblioteca de conexão a este banco também deve ser incluída.</p>
<h1>Configurando o ambiente do servidor</h1>
<p>As instruções a seguir consideram que o ambiente já tenha o apache, php e o jdk instalados na máquina, foram testados utilizando o apache2, php5 e o sun-java6. A configuração do servidor em ambientes linux pode ser feita de três maneiras diferentes dependendo da distribuição utilizada.</p>
<ul>
<li>Distribuições que utilizam pacotes rpm podem ser configuradas automaticamente através do php-java-bridge-x.y.z-1-i386.rpm</li>
<li>Distribuições que utilizam pacotes deb podem ser configuradas automaticamente através do php-java-bridge_x.y.z-1_i386.deb</li>
<li>Outras distribuições podem ser instaladas a partir do arquivo código-fonte php-java-bridge_x.y.z.tar.gz, basta executar os comandos a seguir:</li>
</ul>
<div style="border: 1px dashed #000000; background-color: #ddfefe;"><code>tar -zxvf  php-java-bridge_*.tar.gz<br />
cd php-java-bridge*<br />
phpize &amp;&amp; ./configure &amp;&amp; make &amp;&amp; sh install.sh<br />
</code></div>
<p>Disponíveis em: <a href="http://sourceforge.net/project/showfiles.php?group_id=117793" target="_blank">http://sourceforge.net/project/showfile &#8230; _id=117793</a><br />
Execute um página no browser que tenha o  &lt;? phpinfo(); ?&gt; e verifique se o módulo Java foi carregado corretamente.<br />
Localize o arquivo de configuração do php (você pode, opcionalmente, criar um extra, nas instalações automáticas dos pacotes deb ou rpm isso é realizado automaticamente e é gerado um arquivo chamado java.ini, o endereço dele pode ser visto executando a página do phpinfo), neste arquivo configure os seguintes itens:</p>
<div style="border: 1px dashed #000000; background-color: #ddfefe;"><code> extension = java.so<br />
java.java_home = /usr/lib/jvm/java-6-sun <span style="color: #01cf01;">(diretório raiz do JDK)</span><br />
java.java = /usr/lib/jvm/java-6-sun/jre/bin/java <span style="color: #01cf01;">(arquivo binário java)</span><br />
</code></div>
<p>Pronto, o servidor apache agora é capaz de interpretar códigos java, nosso próximo passso é disponibilizar as bibliotecas necessárias para o jasperreports trabalhar. Para isso vamos copiar os jars necessários para a pasta $JAVA_INSTALL/jre/lib/ext/ neste exemplo copiei os seguintes arquivos:</p>
<div style="border: 1px dashed #000000; background-color: #ddfefe;"><code> commons-beanutils-1.8.0-BETA.jar <span style="color: #01cf01;">- essencial para o jasper</span><br />
commons-collections-3.2.1.jar <span style="color: #01cf01;">- essencial para o jasper</span><br />
commons-digester-1.8.jar <span style="color: #01cf01;">- essencial para o jasper</span><br />
commons-logging-1.1.1.jar <span style="color: #01cf01;">- essencial para o jasper</span><br />
iText-2.0.8.jar <span style="color: #01cf01;">- biblioteca para gerar pdf</span><br />
jasperreports-2.0.5.jar <span style="color: #01cf01;">- essencial para o jasper</span><br />
postgresql-8.3-603.jdbc3.jar <span style="color: #01cf01;">- relatórios que conectam ao postgres</span><br />
</code></div>
<p>Para que o apache reconheça estas bibliotecas é necessário que reinice o servidor apache.</p>
<p><strong>OBS.:</strong> <em>Na instalação realizada na distruibuição linux Slackware, a compilação do código fonte do php-java-bridge, não gerou alguns jars necessários para o funcionamento do módulo Java para php, para solucionar este problema eu retirei estes jars contidos do pacote debian e inseri manualmente no diretório de módulos do php-java-bridge</em></p>
<h2>Links</h2>
<p><a href="http://www.rjohnson.id.au/wordpress/2007/02/04/jasper-reports-and-php/" target="_blank">http://www.rjohnson.id.au/wordpress/200 &#8230; s-and-php/</a><br />
<a href="http://php-java-bridge.sourceforge.net/" target="_blank">http://php-java-bridge.sourceforge.net/</a><br />
<a href="http://commons.apache.org/" target="_blank">http://commons.apache.org/</a><br />
<a href="http://www.lowagie.com/iText/" target="_blank">http://www.lowagie.com/iText/</a><br />
<a href="http://commons.apache.org/downloads/index.html" target="_blank">http://commons.apache.org/downloads/index.html</a><br />
<a href="http://php-java-bridge.sourceforge.net/pjb/installation.php" target="_blank">http://php-java-bridge.sourceforge.net/ &#8230; lation.php</a><br />
<a href="http://www.hlegius.pro.br/integracao-php-e-java-facil-porem-dificil/" target="_blank">http://www.hlegius.pro.br/integracao-ph &#8230; m-dificil/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulocanedo.com.br/2008/08/27/usando-relatorios-jasper-com-php/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
