2011-02-04 41 views
6

我目前使用asp.NET生成一個.doc文件,內容爲html在生成的HTML中插入分頁符.doc

我想插入一個分頁符到頁面,但不知道如何。

我試過使用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(); 
+0

你正在用HTML創建一個MS Word文檔? – 2011-02-04 10:23:06

+0

聲稱文檔是MS Word不會使它成爲MS Word。它只是讓用戶配置的任何應用程序處理Word文檔嘗試處理HTML文檔。如果你想提供一個MS Word文檔,然後生成一個真正的。不要發送包裝在一堆謊言中的HTML。 – Quentin 2011-02-04 10:24:32

+0

你可能會更喜歡看'docx`規範 - 你可以用類似的方式生成它,並輸出一個支持的格式,而不是希望單詞/任何程序處理`doc`文件可以拾取片斷 – Basic 2011-02-04 10:28:08

回答

1

我不知道該怎麼辦的記法是,但我會創造在Word換頁的文檔,將其保存爲HTML,並看看它使用什麼。

從你展示的代碼塊猜測,它可能

mso-special-character:page-break; 
-2

不生成的HTML MS Word文件

你不希望建立一個能與房子你會計劃一艘船嗎?

如果你想以編程方式做到這一點,我建議你看一看docx格式,甚至是富文本格式規範,然後從那裏移動。但是,在所有可能的情況下,你走的都是錯誤的道路,他們已經在那裏圖書館,你可以使用。

我建議你start here

15

字都有其特殊的類。 MSO的特殊字符:分頁;在這種情況下工作,正如Pekka所提到的那樣,但是缺少的是這應該在<br>標籤上。所以下面的代碼將工作:

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

這不是特別好的解決辦法,但對我來說,我別無選擇(我沒有寫的原代碼,這是一個更大的工作去改變它)。