如何使用iTextSharp将asp.net网页中的文本框值动态呈现到PDF中的相同位置?

如何使用iTextSharp将asp.net网页中的文本框值动态呈现到PDF中的相同位置?,asp.net,vb.net,pdf,Asp.net,Vb.net,Pdf,如何使用iTextSharp将Asp.net网页中的文本框值动态呈现为PDF格式 文本必须放在PDF中与网页中文本框相同的位置,因为文本框的数量在不同的场景中有所不同,因为文本框包含在不同的FormView中。页面中有许多表单视图&在某些情况下,只有一些表单视图会被数据绑定。因此,我们无法为每个文本框设置位置。位置应与网页中的位置相同 我是这样做的: Dim TextBox5 As TextBox = DirectCast(FormView2.FindControl("TextB

如何使用iTextSharp将Asp.net网页中的文本框值动态呈现为PDF格式

文本必须放在PDF中与网页中文本框相同的位置,因为文本框的数量在不同的场景中有所不同,因为文本框包含在不同的FormView中。页面中有许多表单视图&在某些情况下,只有一些表单视图会被数据绑定。因此,我们无法为每个文本框设置位置。位置应与网页中的位置相同

我是这样做的:

        Dim TextBox5 As TextBox = DirectCast(FormView2.FindControl("TextBox5"), TextBox)

        Dim htmlarraylist As List(Of IElement) = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(New StringReader(TextBox5.Text), Nothing)

        For Each element As IElement In htmlarraylist

            document.Add(element)

        Next
        Dim cb As PdfContentByte = writer.DirectContent

        cb.BeginText()

        Dim TextBox5 As TextBox = DirectCast(FormView2.FindControl("TextBox5"), TextBox)

        Dim text As String = TextBox5.Text

        cb.SetFontAndSize(bf, 8)

        cb.ShowTextAligned(1, text, 122, 474, 0)

        cb.EndText()
但文本框将仅添加到PDF文档的最后一个

如果要将其放置在PDF中的绝对位置,可以这样做:

        Dim TextBox5 As TextBox = DirectCast(FormView2.FindControl("TextBox5"), TextBox)

        Dim htmlarraylist As List(Of IElement) = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(New StringReader(TextBox5.Text), Nothing)

        For Each element As IElement In htmlarraylist

            document.Add(element)

        Next
        Dim cb As PdfContentByte = writer.DirectContent

        cb.BeginText()

        Dim TextBox5 As TextBox = DirectCast(FormView2.FindControl("TextBox5"), TextBox)

        Dim text As String = TextBox5.Text

        cb.SetFontAndSize(bf, 8)

        cb.ShowTextAligned(1, text, 122, 474, 0)

        cb.EndText()

但在我的情况下,这两个都不能做到。请帮忙。

我找到了解决这个问题的方法,我想与大家分享

动态文本框值不会自动呈现为PDF格式。因此,一个不可见的标签与FormView中的文本框一起添加。在创建PDF的按钮中单击,编码如下:

    Dim nametxt As TextBox = DirectCast(FormView2.FindControl("TextBox5"), TextBox)

    Dim namelbl As Label = DirectCast(FormView2.FindControl("Label10"), Label)

    namelbl.Text = nametxt.Text

    namelbl.Visible = True

    nametxt.Visible = False

然后,该标签将自动呈现在PDF中与网页中相同的位置。就这样。如此简单的逻辑:

有人知道怎么做吗???