2011-03-17 6 views
3

Quel est le meilleur moyen d'afficher un document Word formaté en HTML/PHP?Comment afficher un document Word formaté en HTML/PHP?

Voici le code que j'ai actuellement, mais il ne formate pas:

$word = new COM("word.application") or die ("Could not initialise MS Word object."); 
$word->Documents->Open(realpath("ACME.doc")); 

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

echo $content; 

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

$word->Quit(); 
$word = null; 
unset($word); 
+0

Est-ce possible? – alex

+0

J'espère que lol ... Le code que j'ai posté fonctionne mais encore une fois il ne le formate pas de toute façon. –

+1

Vous auriez besoin de logiciels qui pourraient analyser le formatage de Word et le convertir en HTML et en CSS. – alex

Répondre

3

Je ne sais rien à propos de COM, mais farfouillé l'API documents Word sur MSDN, il semble que votre meilleur pari va utiliser Document.SaveAs pour enregistrer comme wsFormatFilteredHTML dans un fichier temporaire, puis en servant ce code HTML à l'utilisateur. Assurez-vous de choisir le filtré HTML, sinon vous obtiendrez la soupe tag le plus soupe jamais.

+0

Merci, j'essaie de travailler avec maintenant. –

+0

Pas capable de faire fonctionner ça ... Avez-vous d'autres suggestions? –

+0

C'est tout ce que j'ai, malheureusement. – Charles

4

J'ai compris cela. Consultez la solution à la lecture d'un mot Doc et le formatage en HTML:

$filename = "ACME.doc"; 
$word = new COM("word.application") or die ("Could not initialise MS Word object."); 
$word->Documents->Open(realpath($filename)); 

$new_filename = substr($filename,0,-4) . ".html"; 

// the '2' parameter specifies saving in txt format 
// the '6' parameter specifies saving in rtf format 
// the '8' parameter specifies saving in html format 
$word->Documents[1]->SaveAs("C:/a1/projects/---full path--- /".$new_filename,8); 
$word->Documents[1]->Close(false); 
$word->Quit(); 
//$word->Release(); 
$word = NULL; 
unset($word); 

$fh = fopen($new_filename, 'r'); 
$contents = fread($fh, filesize($new_filename)); 
echo $contents; 
fclose($fh); 
//unlink($new_filename); 

Couple de choses ... Avoir « charset = UTF-8 » en haut de ma page PHP a été l'ajout d'un tas de diamants avec des points d'interrogation ... J'ai supprimé ça et ça fonctionne parfaitement.

En outre, le SaveAs doit avoir le chemin complet, au moins localement, j'ai ajouté cela pour le faire fonctionner.

Merci encore pour votre aide.

Questions connexes