来自aspx的劫持输出

时间:2009-02-11 13:02:10

标签: asp.net pdf-generation

我想使用可以将Html转换为PDF的组件将aspx页面转换为PDF。在回发期间,是否有可能重定向aspx页面的输出并将其作为流或字符串发送到HtmlToPdf方法?

4 个答案:

答案 0 :(得分:2)

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);
}

答案 1 :(得分:0)

您是否尝试过发送从“HttpContext.Current.Response.OutputStream;”返回的值在回发?

答案 2 :(得分:0)

您好我认为这样做的方法是使用Reponse.Filter属性来拦截和更改发送到页面的HTML。

在ASP.net网站的这个页面上有VB.net和C#的教程视频和示例代码:

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

答案 3 :(得分:0)

您可以编写附加到请求的HttpFilter。这是可以在ASP.NET页面的渲染步骤写入后更改输出的代码。

This article显示了如何执行此操作(他们将输出从HTML更改为有效的XHTML,但想法是相同的)。