Вставить разрыв страницы в сгенерированный HTML .doc - PullRequest
7 голосов
/ 04 февраля 2011

В настоящее время я создаю файл .doc как html , используя asp.NET.

Я хочу вставить разрыв страницы на страницу, но не знаю как.

Я пытался использовать css style = 'page-break-before: всегда', но он ничего не делает.

Это код, назначенный событию нажатия кнопки:

    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 ]

16 голосов
/ 24 октября 2012

Слово имеет свои специальные классы. МСО-специальный характер: страница-брейк; работает в этой ситуации, как упомянул Pekka, однако не хватает только того, что это должно быть в теге
. Так что следующий код будет работать:

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

Это не очень хорошее решение, но в моем случае у меня не было выбора (я не писал оригинальный код, и было намного сложнее его изменить).

2 голосов
/ 04 февраля 2011

Я не знаю, что это за обозначение Office, но я бы создал документ с разрывом страницы в Word, сохранил бы его как HTML и посмотрел, что он использует.Вы показываете, это может быть

mso-special-character:page-break;
1 голос
/ 04 февраля 2011

Я бы вместо этого использовал библиотеку Gios.Word .NET. Гораздо проще создавать RTF-совместимые файлы слов с таблицами, разрывами страниц и т. Д.

Сначала я попытался создать Doc-файлы на основе XML и обнаружил, что Gios лучше:

Вот статья об этом:

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

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

0 голосов
/ 17 декабря 2018

Если кто-то сталкивался с этим, и принятый ответ невозможен или ответ CodePB не работает, используйте следующее. Я просто вынул «разрыв строки» и заменил его на «разрыв страницы», и это, казалось, работало «из коробки».

<br clear=all style='mso-special-character:page-break;page-break-before:always'>
0 голосов
/ 04 февраля 2011

Не генерируйте файлы MS Word с HTML

Вы бы не хотели строить дом с планами на лодку?

Если выЕсли вы хотите сделать это программно, я предлагаю вам либо взглянуть на формат docx, либо даже на спецификацию формата расширенного текста и перейти оттуда.Но, по всей вероятности, вы идете по неверному пути, и там уже есть библиотеки, которые вы можете использовать.

Я предлагаю вам начать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...