2010-09-13 5 views

Répondre

1

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); 
    } 
+3

L'automatisation d'Office sur un serveur est une idée malhonnête. – SLaks

+0

@ SLaks: Je ne pense pas que le PO a dit qu'ils faisaient cela sur un serveur ... –

+0

@Otaku: La réponse est. ('Server.MapPath') – SLaks

1

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.

Questions connexes