Sprache: C#
Hier eine Methode, um ein WebControl, oder ein HtmlControl in einen String zu render
public string RenderControl2String(Control ctrl)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter tw = new HtmlTextWriter(sw);
ctrl.RenderControl(tw);
return sb.ToString();
}
public string RenderControl2String(Control ctrl)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter tw = new HtmlTextWriter(sw);
ctrl.RenderControl(tw);
return sb.ToString();
}
Alte URL:
/snippet/webcontrol-in-einen-string-rendern/565
Guten Abend,
Ich habe in Visual Studio 2005 eine .aspx Seite auf dem sich ein Panel mit Controls befinden (Controlbox und sämtliche Textfelder)
Diese Methode hier mit Hilfe der PDf Komponente iText, gibt mir die Inhalte der Controls (also den Text) in einer PDF Datei wieder (siehe unten). Jedoch möchte ich, dass in dieser PDF Datei auch die Controls erscheinen und nicht nur der jeweilige Inhalt.
Wie muss ich denn meinen Code umändern damit das klappt?
Reicht es, wenn ich mein Panel rendere oder muss ich die ganzen Controls rendern? ich weiß einfach nicht wie ich meinen Code umändern muss, damit es klappt und hoffe, dass ihr mir helfen könnte.
Danke
Protected Sub makePDF(ByVal filename As String)
Dim Document As Document = New Document()
Dim writer As PdfWriter = New PdfWriter
Dim fontHelv As Font = New Font(Font.HELVETICA, 12, Font.NORMAL)
Dim cb As PdfContentByte
Dim bf As BaseFont
writer = PdfWriter.getInstance(Document, New FileStream(filename, FileMode.Create))
Document.setMargins(43, 0, 35, 0)
Document.open()
Document.add(New Paragraph(48, “ “ + Label1.Text, fontHelv))
Document.add(New Paragraph(38, lblAngabenZumNeuger„t.Text, fontHelv))
cb = writer.getDirectContent()
bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED)
cb.setFontAndSize(bf, 7)
cb.beginText()
cb.setTextMatrix(480, 760)
cb.showText(lblId.Text)
Hallo Nicole,
ich bezweifle, das iTextSharp (ich denke diese nutzt du, und nicht iText) alle Controlls darstellen kann, zumindest aus einem HTML String heraus. iTextSharp ist, oder wahr es bis vor ein Jahr, sehr einfach gestrickt.
Hat dir die Diskussion auf ASP.NET Zone noch nicht weitergeholfen?
http://www.aspnetzone.de/forums/thread/187534.aspx
(Ich habe dir dort ebenfalls geantwortet)