gpt4 book ai didi

java - 将 PDFStampers 中的两个 pdf 内存流合并为一个带 2 页的内存流

转载 作者:行者123 更新时间:2023-12-01 14:59:41 29 4
gpt4 key购买 nike

这是我第一次使用 iText5 for .NET,到目前为止,除了一项任务外,一切都相当成功。

我创建了两个 VB.Net 类,每个类都成功返回一个有效的 MemoryStream,其中包含一个单页 PDF 文档,该文档可以单独返回到浏览器并显示,也可以附加并通过电子邮件发送。

我想知道如何将两个流合并为一个包含两页文档的流,以便我可以将文档作为单个附件发送,将流返回到浏览器以显示包含两个页面的一个文档。

此代码将在我的代码隐藏页面中使用,以在创建后返回并通过电子邮件发送内容。正如您在所附代码中看到的,我想提供一个流,其中包含每个当前文档的单独页面。在下面的代码中,标识符 EitherSingleStream 显示了我单独插入每个流的位置,并且该代码适用于该单个页面。

有些代码可能是多余的,这是我第一次使用 iText5 for .NET,如果有任何帮助,我们将不胜感激。到目前为止我的代码如下。

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

最佳答案

您可以修改函数以返回 PdfPage 而不是整个文档,然后在另一个函数中组合页面,并在组合后输出 MemoryStream。

或者您将创建一个函数来获取文档数组,然后对于文档中的每个 PdfPage,您将向新文档添加一个新页面并返回该页面。

参见How to merge different documents into single one?

关于java - 将 PDFStampers 中的两个 pdf 内存流合并为一个带 2 页的内存流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13851905/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com