2011-07-06 6 views
4

Je dois créer un fichier Word à partir d'un contenu HTML (sur une application serveur ASP.NET) mais je n'ai pas trouvé de méthode robuste pour le faire. Donc décidé de lancer une discussion ici pour voir quelles sont les options possibles de le faire.Conversion de HTML en Word dans .Net

Aspose a un .NET component pour cela mais le prix est si élevé donc ne peut pas être une solution (en raison de problèmes de budgétisation).

Nous nous attendons à cette conversion pour préserver des tables, des images, cacher des éléments invisibles, des liens, etc.

Il y a une discussion similaire here mais des solutions fournies sont tout autour de Bureau Interop qui n'est pas une solution recommandée pour l'application serveur.

Une idée? Fondamentalement comment fonctionnent les composants comme Aspose?

+0

Vérifiez votre budget. À long terme, il sera moins coûteux de concéder des licences que de développer un tel sous-système. – zproxy

Répondre

3

Je suggère d'écrire du code en utilisant l'API OpenXml, vous pouvez naviguer dans les DOM et ajouter des éléments au programme du document Word. Ce n'est pas une tâche simple puisque vous interprétez le balisage et que vous tentez de le convertir.

lien

pour Open XML: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5124

+0

sympa! cela vous donne la possibilité d'enregistrer la sortie en tant que docx? –

+0

Oui, c'est le cas.C'est en fait très facile à utiliser, car il provient d'un historique de travail avec les anciens objets COM. Assurez-vous également d'avoir l'outil Productivité. il vous permet d'ouvrir un document Word et de voir le code OpenXML et le code C# pour générer le balisage –

+0

C'est super cool !, laissez-moi jouer avec un peu. Merci! –

0

Si docx est utilisable, vous pouvez créer un document Word, l'enregistrer en tant que docx, effectuer une reverse engineering du fichier xml et créer votre propre fichier xml/docx. Je l'ai fait avec Excel/xslx et cela a fonctionné parfaitement. Pour accélérer les choses, nous avons créé le XML en tant que texte et rejoint les chaînes (avant nos données - nos données - après nos données).

Le format RTF n'est pas un standard mais il est largement répandu. Créez un document RTF et renvoyez-le en tant que document Word. Word ouvre rtf sans problème.

Créez un document HTML et renvoyez-le en tant que document Word.

HTH

+0

Mais c'est trop compliqué, il est presque impossible de supporter tous les formats, etc. –

1

Il est probablement la peine de vérifier l'outil propre Inference XSLT de Microsoft qui peut générer WordML d'entrée XML.

Si vous êtes flexible avec la source du document lui-même étant HTML/XHTML/XML cela pourrait facilement faire le travail.

http://msdn.microsoft.com/en-us/library/aa212886%28v=office.11%29.aspx

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=3412

Je l'ai utilisé dans le passé pour générer des documents Word à partir d'une application ASP .NET, qui a obtenu ses données XML source à partir des procédures stockées SQL.

L'outil peut être un peu capricieux, mais avec un peu de désinfection du XSLT qu'il génère, il pourrait simplement fonctionner.