Quelle est la meilleure façon de convertir du HTML en MS Word .doc dans .NET?Convertir HTML en Microsoft Word .doc en .NET
Composants tiers?
Quelle est la meilleure façon de convertir du HTML en MS Word .doc dans .NET?Convertir HTML en Microsoft Word .doc en .NET
Composants tiers?
essayer avec Office Interop
private void _convetHTML2Doc(string FileNameUpload)
{
string filePath = Server.MapPath("~/htmlfile");
object missing = Type.Missing;
object FileName = @"D:\" + "\\" + FileNameUpload;
object readOnly = true;
m_word = new Application();
m_word.Documents.Open(ref FileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
string newfilename = filePath + "\\" + FileNameUpload.Replace(".html", ".doc");
object o_newfilename = newfilename;
object o_encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
object o_format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument;
object o_endings = Microsoft.Office.Interop.Word.WdLineEndingType.wdCRLF;
m_word.ActiveDocument.SaveAs(ref o_newfilename, ref o_format, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref o_encoding, ref missing, ref missing, ref o_endings, ref missing);
m_word.Quit(ref missing, ref missing, ref missing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(m_word);
}
MS met en garde contre l'automatisation de Word quand il est pas surveillé/supervisé/contrôlé par un utilisateur final, par exemple parce qu'il peut apparaître une boîte de message; Donc, si vous voulez faire cela sur un serveur, un composant tiers peut être préférable à l'automatisation de Word.
Vous pouvez également apprendre à écrire le format de document Word vous-même (c'est un format XML documenté), mais cela (apprendre et écrire ce format) est probablement plus de problèmes que vous le souhaitez.
Notez également que Word peut ouvrir du code HTML: ainsi, pour certains (peut-être légèrement), HTML est déjà un document Word.
L'automatisation d'Office sur un serveur est une idée malhonnête. – SLaks
@ SLaks: Je ne pense pas que le PO a dit qu'ils faisaient cela sur un serveur ... –
@Otaku: La réponse est. ('Server.MapPath') – SLaks