Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Angelo-ti

[Resolvido] COM("word.application") Linux

Recommended Posts

Daew galera estou com problema, fiz um aplicaçao em PHP no Windows (Easy PHP) mais quando coloquei no servidor (Linux) nao esta funcionando segue o codigo

 

<?PHP

//Pra começar, instanciamos o objeto COM passando 'word.application' como parametro para 'abrir o word'

$word = new COM("word.application") or die ("Erro!!");

 

//Em seguida, atribuímos à variável $file, o nome do documento que será aberto

$file = "modelo.doc";

 

//Aqui, abrimos o documento em questão

$word->Documents->Open(realpath($file));

 

// Agora, extraímos seu conteúdo para a variável $content

//convertento o mesmo para string

$content = (string) $word->ActiveDocument->Content;

 

//Convertemos as quebras de linha para html

$txt = nl2br($content);

 

//Pra visualizar o conteúdo, basta imprimir a variável

echo $content;

 

//Agora, fechamos o documento...

$word->ActiveDocument->Close(false);

//"Saímos do word" (ou quase, hahahaha)

$word->Quit();

//Os passos seguintes, são recomendados pra

//evitar vazamento de memória

$word = null;

unset($word);

?>

 

No Windows roda legal, no linux fica tudo banco,

 

como eu faço para fazer isso no linux,

 

PS: Objetivo do codigo, e copiar o conteudo do arquivo, caso exista outra maneira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

word.application é um recurso nativo do windows, logo não vai funcionar no Linux.

O que tu pode fazer (o que eu não tenho certeza que vai dar certo) é criar uma DLL compilada pro Linux, ou procurar alguma classe que trabalha com arquivos do Word em algum site de classes do PHP, quase sempre tem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri uma forma aqui.

No word 2008, os documentos são arquivos .zip, e o conteudo fica no document.xml;

 

Tu pode fazer o php abrir a zip, abrir o document.xml e ler o conteudo (com uma foreach).

Só que não é uma XML "simples".

 

~~~~~~~~

 

Sei que não é exatamente incentivado a postar códigos prontos, mas é por uma boa causa :lol:

<?php

$doc = new DOMDocument();
$doc->load( 'zip://' . dirname(__FILE__) . '/Notebook.docx#word/document.xml' );

$books = $doc->getElementsByTagName( "t" );
foreach ( $books as $book ) {
  echo $book->nodeValue . PHP_EOL;
}
?>

 

Lembrando que vai funcionar no Word 2007 +

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw, vou tentar usar,

 

achei essa funcao da uma olhada

 

function parseWord($userdoc)

{

$filehandle = fopen($userdoc, "r");

$line = @fread($filehandle, $filesize($userdoc));

$lines = explode(chr(0x00),$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;

 

}

$userdoc = "modelo.doc";

echo parseWord($userdoc);

echo $text;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew galera resolvi meu problema, da seguinte forma

 

Existe um aplicativo para linux CATDOC (para instalar "yum install catdoc")

que converte com perfeicao o .DOC para txt. ai fica facil e so usar o comando

 

 

 

Exibir

 

$documento = 'caminho do arquivo';

$texto = shell_exec("catdoc $documento");

echo "<pre>$texto</pre>";

 

OU

 

$texto = shell_exec("catdoc arquivo.co");

echo "<pre>$texto</pre>";

 

CONVERTER

 

catdoc arquiv.doc > novoarquivo.txt

 

 

ate mais....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.