2016-11-18 21 views
0

以下はコードです。私たちは何をする必要がありますか?MS Wordファイル(.docx)でHTMLコードをレンダリングする - ファイルが破損する

HttpContext context = HttpContext.Current; 
    context.Response.Clear(); 
    context.Response.AppendHeader("content-disposition", "attachment;filename=" + strFileName + ".docx"); 
    context.Response.Charset = ""; 
    context.Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; 
    var stringWriter = new StringWriter(); 
    stringWriter.Write(strContent); 
    var htmlWriter = new HtmlTextWriter(stringWriter); 
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(stringWriter); 
    HttpContext.Current.Response.Write(oHtmlTextWriter); 
    context.Response.Write(stringWriter.ToString()); 
    context.Response.End(); 
+0

あなたは何が起こると思いますか?あなたが投稿したコードは、有効なOpen XMLパッケージファイルを送信しないため、動作しません。単にHTMLを書き出し、それを.docxと命名するだけでは、HTMLをWordファイルに変換することはありません。 –

+0

お返事ありがとうございました。 strContentにHTMLコードを渡して、Docファイルに書いていますので、docxファイルをコンテンツとともにダウンロードしたいと考えています。あなたはこれを助けてくれますか? –

答えて

1

単純にHTMLを書き出して、.docxというファイル名拡張子を付けて、Wordで正しく開くことはできません。 .docxファイルは、有効なOffice Open XMLパッケージである必要があります。これは、基本的にさまざまなXMLファイルを含むzipコンテナです(.zocに.docxドキュメントの名前を変更し、標準のzipツールを使用して開くことが簡単に分かります)。 )。

  • 代わりのHTMLは、MicrosoftのOpen XML SDKを使用して有効なのdocxファイルを作成します。あなたは問題を修正して、有効なWordファイルを取得するために今できることは何

    。 SDKには、Word文書を作成する方法を示すサンプルが含まれています。

  • HTMLの作成を変更できない場合は、いわゆるaltChunkを使用してHTMLをWord文書に埋め込むこともできます。これは別の回答hereに記載されています。
  • 生成するコンテンツによっては、テンプレートWord文書を作成する可能性があります。プレースホルダを作成するだけで済みます。そのような溶液は、例えば、コンテンツコントロールとカスタムXMLを構築する次に、ドキュメントを埋めるために、docxパッケージ内の単一のXMLファイルを置き換えるだけです。そのための基本的なチュートリアルはhereです。
+0

共有リンクが便利です。スムーズに作業。ありがとう。 –

関連する問題