这是我对 .NET 的 iText5 的第一次体验,到目前为止,除了一项任务外,非常成功。
我创建了两个 VB.Net 类,每个类都成功返回一个有效的 MemoryStream,其中包含一个单页 PDF 文档,该文档可以单独返回到浏览器并显示,也可以附加并通过电子邮件发送。
我想知道如何将两个流合并为一个包含两页文档的流,以便我可以将文档作为单个附件发送,将流返回到浏览器以显示一个包含两个页面的文档。
此代码将在我的代码隐藏页面中用于在创建后返回并通过电子邮件发送内容。正如您在附加代码中看到的那样,我想提供一个流,其中包含每个当前文档的单独页面。在下面的代码中,标识符EitherSingleStream
显示了我单独插入每个流的位置,并且该代码适用于该单个页面。
一些代码可能是多余的,它是我第一个用于 .NET 郊游的 iText5,任何帮助将不胜感激。我到目前为止的代码如下。
Private Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click
Dim Emplid As String = txtEMPLID.Text,
BankInfo As String = txtBankInfo.Text,
AsOfDate As String = Request.Form("AsOfDate")
lEmp = New VOELibrary.Employee(Emplid)
lEmp.EarningsAsOfDate = AsOfDate
lEmp.EarningsYears = 3
lEmp.LoadEarningsSummary()
lEmp.LoadEmploymentHistory()
' request logging meta data object
Dim FormRequest As New VOELibrary.FormRequest
' Function that uses first template and Styamper to return first document stream
Dim FM1005 As New VOELibrary.FannieMae1005(lEmp, BankInfo, UserInfo)
Dim streamForm1005PDF As MemoryStream = FM1005.PDFStream
' Function that uses second template and stamper to return second docuemnt stream
Dim VOESummary As New VOELibrary.VOESummary(lEmp, UserInfo)
Dim streamVOESummaryPDF As MemoryStream = VOESummary.PDFStream
*EitherSingleStream*.Position = 0
MailPDF(*EitherSingleStream*, FormRequest)
*EitherSingleStream*.Position = 0
Dim response As HttpResponse = HttpContext.Current.Response
response.Clear()
response.AddHeader("Content-Disposition", "attachment; filename= FM1005.pdf")
response.ContentType = "application/pdf"
response.BinaryWrite(*EitherSingleStream*.ToArray())
response.Flush()
response.End()
With FormRequest
.Req_UID = UserInfo(0).ToString
.Req_UserName = UserInfo(1).ToString
.EMPID = lEmp.EmplID
.FormDate = Date.Now.ToShortDateString
.Requestor = BankInfo
.AsOfDate = AsOfDate
.Log()
End With
End Sub