Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de PHP
SEÇÕES
Manuais relacionados
+Workshop de PHP
Categorias
+PHP
+Scripts em PHP

Índice do Manual Workshop de PHP
+ Gestão de ficheiros através de PHP
+ Upload de ficheiros com PHP
+ Verificar a existência de uma URL
+ Leitura sequencial de ficheiros com PHP
+ Escritura em ficheiros com PHP
+ Gestão de directórios com PHP
+ Função que escreve um campo select com valores de uma base de dados
+ Receber o último ID de uma inserção com PHP e MySQL
+ Recolher dados de um Select Multiple com PHP
+ Enviar e-mails pelo PHP
+ Validar um endereço email em PHP
+ Loop para receber todas as variáveis por POST em PHP
+ Enviar um formulário por mail com PHP
+ Paginação de resultados com PHP e MySQL
+ Usuários ativos com PHP
+ Listas de elementos com cores alternas em PHP
+ Programas de livre distribuição em PHP
+ phpMyAdmin
+ Formatação de uma cadeia
+ Cálculo dos dias de um mês em PHP
+ Contador simples para páginas PHP
+ Avaliações dos usuários em PHP
+ Rastrear os robôs de buscadores
+ Recomendar um site usando PHP
+ Criação de um log de erros
+ Comprimir página PHP
+ Contador PHP com imagens
+ Editor PHP Maguma Studio
+ SiteMaps de Google em PHP
+ Teste de velocidade de conexão à Internet
+ Mostrar Conteúdo de acordo com o país em PHP
+ Conteúdos em banco de dados com PHP
+ Problemas com as datas em timestamp Unix de PHP
+ Contar o número de linhas e caracteres em arquivo PHP
+ Transformação Doc, Odt ou Rtf para PDF
+ Preencher um arquivo RTF e gerar o PDF
+ Converter arquivos ods ou xls para pdf
+ PHP isam, ferramenta Web para Arquivos Planos
+ Undefined variable ou Undefined index
+ Agregar carinhas ao sistema
+ Paginator, script para paginação com PHP e MySQL
+ Executar scripts PHP automaticamente através do cron com CURL
+ Uso do FTP com PHP
+ Instalação de One or Zero PHP Helpdesk
+ Portal PHP Nuke
+ Gerando feed RSS de notícias em PHP
+ Blasten blt-SEARCH 1.0.5
+ Classes e Objetos em PHP
+ Recuperando a qualidade de uma imagem JPEG
+ Comprovar se existe o domínio do correio
+ Tutorial de BBCode
+ Função em PHP para o cálculo de minutos transcorridos em duas horas dadas
+ Criação de gráficos em PHP com JpGraph
+ Gerar documentos de Word RTF com PHP
+ Introdução ao Symfony
+ Arredondar decimais em PHP
+ Envio de boletins a e-mails de um banco de dados MySQL
+ Htaccess e páginas dinâmicas
+ Criando imagens com PHP
+ Programar um buscador com PHP e MySQL
+ Loop para receber todos os dados de uma fila de um recordset com PHP

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Converter arquivos ods ou xls para pdf

Vremos agora como transformar um arquivo ods ou xls em pdf.


Nos artigos passados ensinei como transformar arquivos doc, odt e rtf em pdf. Muitas pessoas ficaram interessadas em saber como transformar um arquivo ods ou xls em pdf, desta forma decidi escrever esse artigo. Da mesma forma como nos artigos anteriores é necessário realizar a instalação do OpenOffice.org, para esse artigo é necessário que o Calc do OpenOffice.org esteja instalando, estou utilizando a versão 2.2 nesse artigo, para fazer o download do OpenOffice.org acesse esse endereço: www.openoffice.org .

Esse script funciona graças as API´s que o OpenOffice.org possui e esse exemplo funciona apenas em servidores Windows.

Vamos fazer a coisa acontecer, crie um arquivo chamado: xls2pdf.class.php , esse será o arquivo da classe, que realizará toda transformação do arquivo em pdf, adicione o seguinte conteúdo ao arquivo:

<?php
/****************************************************************/
/* CLASSE RESPONSÁVEL PELA CRIAÇÃO DE ARQUIVOS XLS E ODS EM PDF */
/* CRIADO EM: 05/06/2007 | 12h16min *****************************/
/* CRIADO POR: Patrick Espake *********************************/
/* E-MAIL: patrickespake@gmail.com ******************************/
/* SITE: www.patrickespake.com **********************************/
/****************************************************************/

class Xls2Pdf
{
// Atributos.
private $template_file;
private $xls_file_tmp;
private $xls_tmp;
private $pdf_file_name;
private $dir_files;
private $value_col_row;

// Métodos sets e gets.
function setTemplateFile($template_file) { $this->template_file = $template_file; }
function getTemplateFile() { return $this->template_file; }

function setPdfFileName($pdf_file_name) { $this->pdf_file_name = $pdf_file_name; }
function getPdfFileName() { return $this->pdf_file_name; }

function setDirFiles($dir_files) { $this->dir_files = $dir_files; }
function getDirFiles() { return $this->dir_files; }

// Método construtor.
function Xls2Pdf()
{
set_time_limit(0);
}

// Método de criação das propriedades do OpenOffice.org.
function makePropertyValue($name, $value, $osm)
{
$oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$oStruct->Name = $name;
$oStruct->Value = $value;
return $oStruct;
}

// Método de criação do arquivo pdf.
function makePdf()
{
if(file_exists($this->getDirFiles() . $this->getTemplateFile()))
{
// Conecta com o OpenOffice.org
$objServiceManager = new COM("com.sun.star.ServiceManager") or die("O OpenOffice.org não está instalado.");
// Cria a instância para trabalhar com as API´s do OpenOffice.org
$objDesktop = $objServiceManager->createInstance("com.sun.star.frame.Desktop");
// Carrega o OpenOffice.org na memória em modo invisível
$args = array($this->makePropertyValue("Hidden", true, $objServiceManager));
// Carrega o arquivo de template para dentro OpenOffice.org
$objDocument = $objDesktop->loadComponentFromURL("file:///" . $this->getDirFiles() . $this->getTemplateFile(), "_black", 0, $args);
// Seleciona a primeira planilha do documento
$activeSheet = $objDocument->getSheets->getByIndex(0);
// Define o filtro calc_pdf_Export, esse filtro que converte o arquivo template em pdf
$export_args = array($this->makePropertyValue("FilterName", "calc_pdf_Export", $objServiceManager));
// Define o local onde será gravado o arquivo pdf gerado no computador
$objDocument->storeToURL("file:///" . $this->getDirFiles() . $this->getPdfFileName(), $export_args);
// Descarrega o OpenOffice.org e fecha a conexão com as API´s
$objDocument->dispose();
$objDocument->close(true);
// Retorna um vetor com o nome do pdf, o diretório dos arquivos e o nome do template
return array($this->getPdfFileName(), $this->getDirFiles(), $this->getTemplateFile());
}
else
{
// Exibe uma mensagem de erro caso não exista o arquivo
die("O arquivo de template especificado não existe.");
}
}
}
?>

Acabamos de montar o arquivo da classe, agora precisamos criar um arquivo que irá definir o nome do arquivo template, o diretório dos arquivos e o nome do arquivo pdf que você deseja que seja gerado.

Crie um arquivo chamado: criar_pdf.php, e insira o seguinte conteúdo:

<?php
/****************************************************************/
/* CRIADO POR: Patrick Espake *********************************/
/* CRIADO EM: 05/06/2007 | 13h11min *****************************/
/* E-MAIL: patrickespake@gmail.com ******************************/
/* SITE: www.patrickespake.com **********************************/
/****************************************************************/

// Insere o arquivo da classe
include("xls2pdf.class.php");

// Instância a classe
$xls2pdf = new Xls2Pdf();

// Seta o nome do arquivo de template
$xls2pdf->setTemplateFile("exemplo.ods");

// Seta o diretório onde está o arquivo de template
$xls2pdf->setDirFiles("C:/VertrigoServ/www/test/xls/");

// Seta o nome do arquivo pdf que deve ser gerado
$xls2pdf->setPdfFileName("meu_pdf.pdf");

// Converte o arquivo template em pdf
$result = $xls2pdf->makePdf();

// Exibe a mensagem de sucesso
echo $result[0] . " criado com sucesso em " . $result[1] . ".";
?>

O arquivo criar_pdf.php irá instanciar a classe e passar todos os parâmetros para ela, retornando uma mensagem de sucesso quando o arquivo pdf for gerado. Na primeira execução o script pode demorar um pouco, pois o OpenOffice.org está sendo carregado na memória, nas chamadas seguintes do arquivo criar_pdf.php vai ser mais rápido, pois o OpenOffice.org já irá estar carregado na memória do servidor.

A idéia desse script e você criar um arquivo de template ou qualquer documento e transformar ele em um pdf.

No código existe comentários em cada ponto, que explicam como funciona cada parte do código.

Você pode fazer o download desse script nesse endereço: www.patrickespake.com/pe_scripts/xls2pdf.zip

Espero que esse script facilite a vida de muita gente.

"O conhecimento só pode evoluir quando é compartilhado."

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de PHP

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em PHP
+ Entrar em Scripts em PHP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites