Hijack выход из aspx - PullRequest
       10

Hijack выход из aspx

0 голосов
/ 11 февраля 2009

Я хочу преобразовать страницу aspx в PDF, используя компонент, который может конвертировать HTML в PDF. Можно ли во время обратной отправки перенаправить вывод с aspx-страницы и отправить его в виде потока или строки в метод HtmlToPdf?

Ответы [ 4 ]

2 голосов
/ 11 февраля 2009
protected override void Render(HtmlTextWriter writer)
{
    // setup a TextWriter to capture the page markup
    TextWriter tw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(tw);

    // render the page into our surrogate TextWriter
    base.Render(htw);

    // convert the TextWriter markup to a string
    string pageSource = tw.ToString();

    if (convertToPDF)
    {
        // convert the page markup to a pdf
        // eg, byte[] pdfBytes = HtmlToPdf(pageSource);
    }

    // write the page markup into the output stream
    writer.Write(pageSource);
}
0 голосов
/ 11 февраля 2009

Здравствуйте, я думаю, что способ сделать это - использовать свойство Reponse.Filter для перехвата и изменения HTML-кода, отправляемого на страницу.

На этой странице на веб-сайте ASP.net есть обучающее видео и пример кода на VB.net и C #:

http://www.asp.net/learn/videos/video-450.aspx

0 голосов
/ 11 февраля 2009

Вы бы написали HttpFilter, который прикреплен к запросу. Это код, который может изменить вывод после того, как он был записан на этапе рендеринга страницы ASP.NET.

В этой статье показано, как это сделать (они изменяют вывод с HTML на действительный XHTML, но идея та же).

0 голосов
/ 11 февраля 2009

Вы пытались отправить значение, возвращенное из "HttpContext.Current.Response.OutputStream;" в обратной передаче?

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