2009-02-11 9 views
0

Je souhaite convertir une page ASPX en PDF en utilisant un composant capable de convertir du HTML en PDF. Est-il possible, lors de la publication, de rediriger la sortie de la page aspx et de l'envoyer en tant que flux ou chaîne à une méthode HtmlToPdf?Sortie Hijack de aspx

Répondre

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

Réservoirs Luke. C'était exactement ce que je cherchais. – Sanjo

0

Avez-vous essayé d'envoyer la valeur renvoyée par "HttpContext.Current.Response.OutputStream;" dans la publication?

0

Salut Je pense que la façon de le faire serait d'utiliser la propriété Reponse.Filter pour intercepter et modifier le code HTML envoyé à une page.

Il y a un tutoriel vidéo et exemple de code dans les deux VB.net et C# sur cette page sur le site ASP.net:

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

0

Vous écrirait un HTTPFilter qui est joint à la demande. C'est un code qui peut changer la sortie après qu'elle a été écrite par l'étape Render de la page ASP.NET.

This article montre comment faire cela (ils changent la sortie du HTML en XHTML valide, mais l'idée est la même).

Questions connexes