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; }
function setPdfFile($pdf_file) { $this->pdf_file = $pdf_file; }
function getPdfFile() { return $this->pdf_file; }
function setDirFiles($dir_files) { $this->dir_files = $dir_files; }
function getDirFiles() { return $this->dir_files; }
// Método construtor.
function Doc2Pdf()
{
set_time_limit(0);
}
// Método de criação do arquivo pdf.
function makePdf()
{
if(file_exists($this->getDirFiles() . $this->getTemplateFile()))
{
$doc_file = "file:///" . $this->getDirFiles() . $this->getTemplateFile();
$pdf_file = "file:///" . $this->getDirFiles() . $this->getPdfFileName();
$this->setDocFile($doc_file);
$this->setPdfFile($pdf_file);
if($this->word2pdf())
return array($this->getPdfFileName(), $this->getDirFiles(), $this->getTemplateFile());
else
die("Não foi possível geral o arquivo pdf, tente novamente.");
}
else
die("O arquivo de template especificado não existe.");
}
// 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 transformação do arquivo doc para arquivo pdf.
function word2pdf()
{
$doc_url = $this->getDocFile();
$output_url = $this->getPdfFile();
$osm = new COM("com.sun.star.ServiceManager") or die("O OpenOffice.org não está instalado.");
$args = array($this->makePropertyValue("Hidden", true, $osm));
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop");
$oWriterDoc = $oDesktop->loadComponentFromURL($doc_url, "_blank", 0, $args);
$export_args = array($this->makePropertyValue("FilterName", "writer_pdf_Export", $osm));
$oWriterDoc->storeToURL($output_url,$export_args);
$oWriterDoc->close(true);
return true;
}
}
?>
setTemplateFile("meu_arquivo.doc");
// Nome do arquivo do pdf que será gerado.
$doc2pdf->setPdfFileName("meu_pdf.pdf");
// Diretório onde os arquivos estão localizados, é necessário usar o caminho completo.
$doc2pdf->setDirFiles("C:/apache/www/pdf/");
// Cria o arquivo pdf.
$doc2pdf->makePdf();
?>