在生成的HTML .doc中插入分页符

时间:2011-02-04 10:21:38

标签: html asp.net ms-word

我目前正在使用asp.NET生成一个.doc文件为 html

我希望在页面中插入分页符,但不知道如何。

我尝试过使用css style ='page-break-before:always'但它什么也没做。

这是分配给按钮点击事件的代码:

    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.Charset ="";

    HttpContext.Current.Response.ContentType ="application/msword";

    string strFileName = "GenerateDocument"+ ".doc";
    HttpContext.Current.Response.AddHeader("Content-Disposition","inline;filename=" + strFileName);

    StringBuilder strHTMLContent = new StringBuilder();

    strHTMLContent.Append("<p align='Center'>Content Before Page Break</p>".ToString());

    strHTMLContent.Append("<br><br>".ToString());
    strHTMLContent.Append("<p class='pageBreak' style='mso-special-character:line-break;'>meh</p>".ToString());

    strHTMLContent.Append("<br><br>".ToString()); 
    strHTMLContent.Append("<p align='Center'>Content After Page Break</p>".ToString());

    HttpContext.Current.Response.Write(strHTMLContent);
    HttpContext.Current.Response.End();
    HttpContext.Current.Response.Flush();

5 个答案:

答案 0 :(得分:16)

Word有自己的特殊类。 MSO的特殊字符:分页;如Pekka所述,在这种情况下确实有效,但缺少的是这应该是在&lt; br&gt;标签。因此,以下代码将起作用:

<br clear=all style='mso-special-character:line-break;page-break-before:always'>

这不是特别好的解决方案,但在我的情况下,我别无选择(我没有编写原始代码,更改它的工作要大得多)。

答案 1 :(得分:2)

我不知道Office的注释是什么,但是我会在Word中创建一个带分页符的文档,将其保存为HTML,并查看其使用的内容。

从您显示的代码块中猜测,可以

mso-special-character:page-break;

答案 2 :(得分:1)

我会使用Gios.Word .NET库。使用表和分页符等创建RTF兼容的word文件要简单得多。

我首先尝试创建基于XML的Doc文件,然后发现Gios更好:

这是一篇关于它的文章:

http://www.codeproject.com/KB/string/gioswordnetlibrary.aspx

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=11252

答案 3 :(得分:0)

如果有人遇到此问题而无法接受的答案或CodePB的答案无效,请使用以下内容。我只是简单地将“换行符”取出来,然后用“页面换行符”代替了它,这似乎可以立即使用。

<br clear=all style='mso-special-character:page-break;page-break-before:always'>

答案 4 :(得分:-2)

不要使用HTML生成MS Word文件

你不想建造一个有船的计划的房子吗?

如果您想以编程方式执行此操作,我建议您查看docx格式,甚至是富文本格式规范,然后从那里开始。但是,在所有可能的情况下,你走的是错误的道路,那里已经有你可以使用的库。

我建议你start here

相关问题