Transformando documentos DOC, ODT ou RTF para PDF
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: doc2pdf.class.php.
Digite o texto o abaixo e salve o arquivo como: doc2pdf.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; } 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, odt ou rtf 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; } } ?>
alguem pode me dizer prq, na minha aplicação ta dando "O arquivo de template especificado não existe."
30/11/2010 1:37pm
(~14 anos atrás)
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `com.sun.star.ServiceManager': A execução no servidor falhou ' in C:\apache2triad\htdocs\doc2pdf.class.php:72 Stack trace: #0 C:\apache2triad\htdocs\doc2pdf.class.php(72): com->com('com.sun.star.Se...') #1 C:\apache2triad\htdocs\doc2pdf.class.php(49): Doc2Pdf->word2pdf() #2 C:\apache2triad\htdocs\criar_pdf.php(19): Doc2Pdf->makePdf() #3 {main} thrown in C:\apache2triad\htdocs\doc2pdf.class.php on line 72
boas esta me dando este erro alguem me podia ajudar.....
boas esta me dando este erro alguem me podia ajudar.....
09/11/2007 8:28am
(~17 anos atrás)
Muito bom o artigo.
Por acaso encontrou como resolver a questão no Linux?
Por acaso encontrou como resolver a questão no Linux?
20/07/2007 7:01am
(~17 anos atrás)
Patrick, esse artigo é ótimo e bom esplicativo, parabens, nos falamos na aula.
10/07/2007 12:14pm
(~17 anos atrás)