.

miércoles, 7 de agosto de 2024

PHP - Convertir documento formato docx a txt

Documento index.php


 <?php

require_once 'doc2txt.class.php';

//Documento con contenido

$objetoDocumento = new Doc2Txt("test.pdf");

$textoString = $objetoDocumento->convertToText();

//imprimo en pantalla el resultado (indicando al HTML que el contenido esta preformateado)


//Documento inicial

$origen = 'copy.odt';

//Documento inicial

$origen2 = 'test.pdf';


// 1) Documento de salida

$URLdo_a_conv1 = 'copy.docx';


// 2) Documento de salida

$URLdo_a_conv2 = 'copy.txt';


// 3) Documento de salida

$URLdo_a_conv3 = 'copy2.docx';

//copy($origen, "copy.docx");



//copiar documentos de un mismo formato con imagenes

//Obtener texto

$actual = file_get_contents($origen2);


//escribir texto, incluye imagen

file_put_contents($URLdo_a_conv3, $actual);


//==============================================================


//pasar documento a texto plano

//Abrir documento en modo escritura

$fp = fopen($URLdo_a_conv2, 'w');


//escribir texto

fwrite($fp, $textoString);


//Cerrar documento

fclose($fp);


echo '<pre>';

echo $textoString;

echo '</pre>';

?>


Documento index.php

<?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" || $file_ext == "pdf")

        { 

            if($file_ext == "doc") {

                return $this->read_doc();

            } else { 

                return $this->read_docx();

            }

        } else {

            return "Invalid File Type";

        }

    }

}

?>


No hay comentarios:

Publicar un comentario

DOLIBARR - Sistema de Variables de Sustitución

Son editadas en el directorio: /htdocs/core/lib/functions.lib.php   Variable substitution system Ir a la navegación Ir a la búsqueda Return ...