Transformação DOC, ODT ou RTF para PDF
Uma necessidade que está surgindo é a criação de arquivos DOC, ODT (formato de texto do Open Office - Writer) ou RTF para PDF. O Php não possui nenhuma engine que realiza essa transformação, desta forma é necessário usar alguns métodos para realizar essa tarefa.
O processo descrito aqui funciona para servidores Windows rodando o Apache e o PHP.
INSTALANDO O OPENOFFICE.ORG Como o PHP não possui engines para transformação de documentos de texto para PDF é necessário instalar o OpenOffice.org, pois através dele que iremos realizar a criação dos arquivos de texto em PDF. O primeiro passo é instalar o OpenOffice.org, para isso basta acessar:
OpenOffice.org e fazer o download do Open Office, nesse artigo usei o Open Office versão 2.2. Após fazer o download do Open Office realize a sua instalação, se quiser basta instalar somente o Writer e o Calc (em um próximo artigo explicarei como converter arquivos XLS ou ODS para PDF).
CRIANDO A CLASSE DOC2PDF Agora vamos criar um arquivo novo em PHP, esse arquivo será a nossa classe de criação de arquivos DOC, ODT ou RTF para PDF. Digite o texto o abaixo e salve o arquivo como: 2PDF.class.php.
<?php
/****************************************************************/
/* CLASSE RESPONSÁVEL PELA CRIAÇÃO DE ARQUIVOS TEMPLATES EM PDF */
/* CRIADO POR: PATRICK ESPAKE ***********************************/
/* E-mail: patrickespake@gmail.com ******************************/
/****************************************************************/
class Doc2PDF
{
// Atributos.
private $template_file;
private $doc_file;
private $PDF_file_name;
private $PDF_file;
private $dir_files;
// Métodos sets e gets.
function setTemplateFile($template_file) { $this->template_file = $template_file; }
function getTemplateFile() { return $this->template_file; }
function setDocFile($doc_file) { $this->doc_file = $doc_file; }
function getDocFile() { return $this->doc_file; }
function setPDFFileName($PDF_file_name) { $this->PDF_file_name = $PDF_file_name; }
function getPDFFileName() { return $this->PDF_file_name; }