HTMLを単語に変換する

私はdocx.dllを使ってhtmlを単語に変換します。しかし、HTMLタグを変換することはできません。たとえば、htmlは p です。

adfaàasdf asdf

変換が終わったら、wordファイルの内容は同じです

adfaàasdf asdf

.

下の私のコード

[System.Web.Services.WebMethod]
    public static void eprt_tml(int ptcn_id)
    {
        DataTable tml_tbl = DBclass.TruyVanTraVeTable1("select course_id, vname, vcontent from testimonial where contact_id='" + ptcn_id + "'");
        string course_name = DBclass.TruyVanTraVeGiaTri("select vname from course where id='"+tml_tbl.Rows[0]["course_id"]+"'");
        DataTable ptcn_tbl = DBclass.TruyVanTraVeTable1("select first_name, last_name, salutation_id, title from contact where id='"+ptcn_id+"'");
        string ptcn_name = ptcn_tbl.Rows[0]["last_name"].ToString() + " " + ptcn_tbl.Rows[0]["first_name"].ToString();
        DocX g_document;

        try
        {

           //Store a global reference to the loaded document.
            g_document = DocX.Load(@"D:\Project\CRM1\tml\tml_tpt.docx");
            /*
             * The template 'InvoiceTemplate.docx' does exist, 
             * so lets use it to create an invoice for a factitious company
             * called "The Happy Builder" and store a global reference it.
             */
            g_document = crt_from_tpl(DocX.Load(@"D:\Project\CRM1\tml\tml_tpt.docx"), course_name, tml_tbl.Rows[0]["vname"].ToString(), tml_tbl.Rows[0]["vcontent"].ToString(), ptcn_name, ptcn_tbl.Rows[0]["title"].ToString());
           //Save all changes made to this template as Invoice_The_Happy_Builder.docx (We don't want to replace InvoiceTemplate.docx).
            g_document.SaveAs(@"D:\Project\CRM1\tml\Invoice_The_Happy_Builder.docx");
        }

           //The template 'InvoiceTemplate.docx' does not exist, so create it.
        catch (FileNotFoundException)
        {

        }

    }

    //Create tml from template
    [System.Web.Services.WebMethod]
    private static DocX crt_from_tpl(DocX template, string course_name, string vname, string vcontent, string ptcn_name, string ptcn_title)
    {
        template.AddCustomProperty(new CustomProperty("static_title", "Ứng Dụng Thực Tiễn Thành Công"));
        template.AddCustomProperty(new CustomProperty("tmlname", vname));
        template.AddCustomProperty(new CustomProperty("tmlcontent", vcontent));
        template.AddCustomProperty(new CustomProperty("ptcnname", ptcn_name));
        template.AddCustomProperty(new CustomProperty("ptcntitle", ptcn_title));
        template.AddCustomProperty(new CustomProperty("coursename", course_name));
        return template;
    }

どうすれば解決できますか?

2
ParParに感謝します。でも、私のコードはうまくいきます.HTMLタグを置き換えたり削除したりしたいだけです。それを行うためのツールがありますか?
追加された 著者 Hainlp,

2 答え

WordでHTMLファイルを開き、[名前を付けて保存]をクリックし、[ファイルタイプ]の下の[Word文書]を選択します。

0
追加された

ドキュメントを保存する直前に、これらの2行をコードに追加します。

g_document.ReplaceText(@"

",""); g_document.ReplaceText(@"

","");

注:これはhtmlタグを削除するだけですが、フォーマットを追加することはありません。

0
追加された
私はOPがこれよりも汎用的な解決策を望んでいると思う。
追加された 著者 jadarnel27,
@ jadarnel27私はそうだと思いますが、ParParへのコメントでHainlpの返信をチェックしましたか?基本的にHTMLをDOC自体に変換することは悪い考えです.HTTPタグの代わりにASP.NETが独自のサーバーサイドタグからhtmlをレンダリングするためです。
追加された 著者 Flowerking,
@Hainlp私はあなたが探しているもののための直接的な解決策はないと思います.WORDへのHTML変換は一貫性のフォーマットを保証しません。 notesforhtml2openxml.codeplex.com をチェックし、役立つかどうかを確認してください。よろしく。
追加された 著者 Flowerking,
@Hainlp OpenXMLは、あなたが単語文書で何をしたいのかを行うことができます。この電子書籍をチェックしてください - goo.gl/a3Nl7 また openxmldeveloper.org 唯一の詐欺は、学び理解するのにもう少し時間がかかることです。
追加された 著者 Flowerking,
私のアプリケーション:ユーザーは、CKeditor経由で自分のWebに記事を投稿します。次に、このアーティクルを.docxファイルにエクスポートして印刷に使用します。したがって、ReplaceTextを使ってhtmlタグを置き換えることはできません。
追加された 著者 Hainlp,
@Flowerking:openxmlは、.docxファイルテンプレートがヘッダー、フット、背景イメージ、ロゴを持っていなければならないので、私の問題を解決するにはあまりにも制限されています。だから私はDocX
追加された 著者 Hainlp,