Pregunta:
Fecha: 27-08-2015 18:20:54
(En Español)
docx to pdf con php? me podrian ayudar gracias Votos: 0 - Respuestas: 1 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
Convertir un archivo DOCX a PDF con PHP[Resuelta]
hola amigos quisiera saber si es posible convertir un archivo docx a pdf con php y si es posible me podrian ayudar como le prodria hacer gracias.docx to pdf con php? me podrian ayudar gracias Votos: 0 - Respuestas: 1 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 28-08-2015 04:04:39 Hola Gabriel, lo que puedes hacer es leer el archivo Word (.docx) con PHP y llevar su contenido a una variable, luego crear un pdf con la librería fpdf volcando ahí el contenido de la variable.
Para leer con PHP un Word puedes utilizar una clase externa llamada "Doc2Txt" creada por "Gourav Mehta", la cual es "GNU General Public License (GPL)".
Aquí el código de la clase:
<?php /* this class is used to convert any doc,docx file to simple text format. author: Gourav Mehta author's email: gouravmehta@gmail.com author's phone: +91-9888316141 */ class Doc2Txt { private $filename; public function __construct($filePath) { $this->filename = $filePath; } private function read_doc() { $fileHandle = fopen($this->filename, "r"); $line = @fread($fileHandle, filesize($this->filename)); $lines = explode(chr(0x0D),$line); $outtext = ""; foreach($lines as $thisline) { $pos = strpos($thisline, chr(0x00)); if (($pos !== FALSE)||(strlen($thisline)==0)) { } else { $outtext .= $thisline." "; } } $outtext = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$outtext); return $outtext; } private function read_docx(){ $striped_content = ''; $content = ''; $zip = zip_open($this->filename); if (!$zip || is_numeric($zip)) return false; while ($zip_entry = zip_read($zip)) { if (zip_entry_open($zip, $zip_entry) == FALSE) continue; if (zip_entry_name($zip_entry) != "word/document.xml") continue; $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); zip_entry_close($zip_entry); }// end while zip_close($zip); $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content); $content = str_replace('</w:r></w:p>', "\r\n", $content); $striped_content = strip_tags($content); return $striped_content; } public function convertToText() { if(isset($this->filename) && !file_exists($this->filename)) { return "File Not exists"; } $fileArray = pathinfo($this->filename); $file_ext = $fileArray['extension']; if($file_ext == "doc" || $file_ext == "docx") { if($file_ext == "doc") { return $this->read_doc(); } else { return $this->read_docx(); } } else { return "Invalid File Type"; } } } ?>
El modo de uso es muy simple, puedes hacer algo como lo siguiente:
<?php require_once 'doc2txt.class.php'; $objetoDocumento = new Doc2Txt("archivo.docx"); $textoString = $objetoDocumento->convertToText(); //imprimo en pantalla el resultado (indicando al HTML que el contenido esta preformateado) echo '<pre>'; echo $textoString; echo '</pre>'; ?>
En cuanto a la creación del PDF con fpdf, aquí te dejo un video tutorial introductorio (hay miles de estos en youtube, pero este es bastante simple y completo para comenzar)
Crear archivo PDF con la librería FPDF
Espero que mi respuesta te sea de ayuda.
Saludos,
Fernando Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión