我正在尝试使用 Winnovative Tools 生成 PDF。在单击“打印 PDF 按钮”后触发的单击处理程序中,我有以下代码。
我希望在调用 Server.Execute() 后控制恢复到 printPDF_Click 子例程,但它会从头开始调用 printPDF_Click 子例程,这会导致循环,因为 Server.Execute() 将再次被调用,依此类推。
当我将preserveForm设置为False时,它按预期工作,但随后我丢失了表单数据,重点是保留它。
Private Sub printPDF_Click(sender As Object, e As EventArgs) Handles printPDF.Click
Dim outTextWriter As IO.TextWriter = New IO.StringWriter()
Server.Execute("Default_v3.aspx?isWinnovative=true", outTextWriter)
Dim baseUrl As String = HttpContext.Current.Request.Url.AbsoluteUri
Dim htmlStringToConvert As String = outTextWriter.ToString()
Dim downloadBytes As Byte() = PdfHelper.CreatePdf(htmlStringToConvert, baseUrl)
Dim response As HttpResponse = HttpContext.Current.Response
response.Clear()
response.AddHeader("Content-Type", "binary/octet-stream")
response.AddHeader("Content-Disposition", ("attachment; filename=" + (
"Rendered.pdf" + ("; size=" + downloadBytes.Length.ToString))))
response.Flush()
response.BinaryWrite(downloadBytes)
response.Flush()
response.End()
End Sub