我使用 iTextSharp(不是说这与 iTextSharp 相关)使用类似于以下的代码生成 PDF 字节:
Function GetFileBytes() as Byte()
Dim result() As Byte
Using ms As New MemoryStream
Dim reader As New PdfReader(pdfForm)
Dim writer As New PdfStamper(reader, ms)
Dim fields As AcroFields = writer.AcroFields
fields.SetField("Customer Name", custInfo.FirstName + " " + custInfo.LastName)
result = ms.GetBuffer
End Using
End Function
我想让它成为一个异步任务,而是返回 Task(Of Byte()),但是我在弄清楚如何让我的内存流以异步模式写入以及如何返回 Task(Of Byte() ) 进行中。任何提示,建议?谢谢!
编辑 1 我想澄清使用任务和使用此代码的必要性,因为到目前为止,似乎有些评论类似于“你为什么这样做”和“不只是这样做,我想礼貌地说“谢谢,但我想这样做”:)
这是我的场景,想象一个网站在几页上收集数据,然后呈现一个审查屏幕,然后让用户能够查看包含该数据的 PDF。在审阅屏幕上,我需要生成一个 1 MB 的 PDF 文件,将其上传到 BLOB 存储,并在用户选择下载时提供。
我想在用户查看审阅屏幕时而不是在他们选择“查看 PDF”按钮时生成和上传 PDF。该代码将使用我的示例完成,这就是为什么我很好奇如何创建 Byte() 类型的任务。任何帮助总是很感激,再次感谢!