2011-02-11 5 views
5

J'ai besoin de convertir un fichier html en doc. J'utilise html2pdf pour la conversion pdf.Comment convertir html en doc en php

Est-ce il y a un même genre de bibliothèque html2doc?

(PS doit être libre/open source)

EDIT

Après Mark Eirich commentaire ..

Voici deux captures d'écran. Le document Word n'est pas aligné correctement. Vérifiez y-scroll dans un document Word. WORD document, check y scroll..

html file, on browser..

tag Body est: -

<body style="margin-left:350px; margin-right:350px;"> 

J'ai essayé de le régler, mais pas d'effet ..

EDIT 2

après Mark Eirich deuxième commenter je suis venu à savoir le mot prend des choses en pixel, pas i n% d'âge .. Je suis en train d'avoir le dernier numéro de fond. Toute aide .. s'il vous plaît vérifier les deux captures d'écran. La différence est la boîte extérieure. et c'est y doc généré par html semble bizarre.

Original word file

html generated doc file

+0

Microsoft Word peut lire du HTML sans aucune conversion. Terminez simplement le nom de fichier avec .doc et done. –

+0

@Mark Eirich ne fonctionne pas de manière correcte .. vérifier modifier la partie ... –

+0

@piemesons: Tristesse. Je n'ai pas beaucoup d'expérience avec Word.Cependant, essayez ceci (1) définir une largeur sur le corps, (2) définir vos marges en pouces "in" ou centimètres "cm", ou (3) ajouter une enveloppe supplémentaire à l'intérieur du corps, et définir la marge/largeur ; Word ignore peut-être l'étiquette du corps. Vous pouvez également essayer de générer du code HTML dans Word, puis de l'afficher pour voir ce que fait Word pour définir les marges. –

Répondre

1

afin de convertir au format Microsoft Word vous avez besoin d'un serveur compatible COM (fonctionnant sous Windows et Office à ce sujet). Si vous avez un tel serveur

$word = new COM("word.application") or die ("couldnt create an instance of word"); 

devrait fonctionner !. Lire http://php.net/manual/en/book.com.php pour plus de détails.

Sinon, votre meilleur tir à html2doc est html2rtf qui est réalisé avec une bibliothèque comme http://paggard.com/projects/rtf.generator/ ou http://sourceforge.net/projects/phprtf/.

Ensuite, une fois que vous créez vous servir la RTF au navigateur avec un en-tête doc

header("Content-type: application/vnd.ms-word"); 
header("Content-Disposition: attachment;Filename=document_name.doc"); 

Si l'utilisateur a mot alors il sera ouvert pour gérer le fichier.

Enregistrer également une RTF en tant que doc est ok et le mot s'ouvrira en mode layout sans aucune plainte. Vous pouvez également servir HTML avec l'en-tête au-dessus, mais le problème est que Word ouvre en mode Web et ce qui est mauvais

:)
+4

Il a demandé une solution gratuite/open source! –

+0

Qu'est-ce que "web view" et pourquoi est-ce mauvais? (Je ne suis pas très familier avec Word.) –

+1

phprtf est open source, à la fois GPL et LGPL, et il est en fait bien mis en place, c'est le paradis comparé aux autres bibliothèques php html2rtf, bien, celles qui sont techniquement html2rtf seulement. – asnyder

5

La réponse de l'OMI pas, pour les raisons suivantes:

documents Microsoft Office sont extrêmement complexes dans leur conception, il n'y a pas seulement un fichier formaté avec des références à des objets tels que des images, il y a un système de fichiers de type od en lui-même pour gérer les données binaires de ces objets.

Permettez-moi de mettre dans une citation de notre propre Joel:

Si vous avez commencé à lire ces documents avec l'espoir de passer un week-end à écrire un code épatant qui importe des documents Word dans votre système de blog, ou crée Des feuilles de calcul au format Excel avec vos données personnelles de finances, la complexité et la longueur de la spécification vous ont probablement guéri rapidement de ce désir. Un programmeur normale conclurait que les formats de fichiers binaires de bureau:

  • sont délibérément occultées
  • sont le produit d'un esprit démente Borg
  • ont été créés par des programmeurs incroyablement mauvais
  • et sont impossibles à lire ou créer correctement.

Vous auriez tort sur quatre chefs d'accusation ....

Lire plus bas pour une solution possible:

Si vous voulez vraiment générer de fantaisie mot formaté documents, votre meilleur pari est de créer un document RTF. Tout ce que Word peut faire peut être exprimé en RTF, mais c'est un format texte, pas binaire, donc vous pouvez changer les choses dans le document RTF et ça marchera toujours. Vous pouvez créer un document bien formaté avec des espaces réservés dans Word, enregistrer en tant que RTF, puis en utilisant la substitution de texte simple, remplacez les espaces réservés à la volée. Maintenant vous avez un document RTF que chaque version de Word ouvrira heureusement.

@source: http://www.joelonsoftware.com/items/2008/02/19.html

Quelques liens qui peuvent vous intéresser le long de votre voyage:

Bien, essayez d'ouvrir un fichier de mot avec winrar;), peut-être créer une archive avec certains en-têtes, puis changer la l'extenstion suffira, Jamais essayé

+0

Pourquoi le vote à la baisse? – RobertPitt

+2

ma pensée est parce que quelqu'un a donné un lien vers une solution de travail et vous avez dit que ce n'est pas possible. Cela ne vaut pas la peine d'être rétrogradé, puisque vous avez donné une assez bonne discussion et j'ai aimé lire les commentaires de Joel à ce sujet. – ajacian81