2012-12-13 3 views
0

이 .NET에 대한 iText5 내 첫 경험이고, 지금까지 하나의 작업을 제외하고 매우 성공적이었다 승 하나 MemoryStream을에 PDFStampers에서 두 가지의 PDF memorystreams을 병합합니다./2 페이지

나는 두 VB.Net 클래스 성공적으로 연결하고 전자 우편을 통해 보내 개별적으로뿐만 아니라, 브라우저에 반환하고 표시 할 수있는 단일 페이지 PDF 문서를 포함하는 유효한 MemoryStream을을 돌려 각을 만들었습니다.

두 개의 스트림을 하나의 스트림으로 병합하여 두 페이지의 문서를 포함하는 방법을 알고 싶습니다. 따라서 문서를 단일 첨부 파일로 보내면 스트림을 브라우저로 보내서 두 페이지가 모두 포함 된 문서를 표시 할 수 있습니다.

이 코드

반환 및 생성 후 내용을 이메일로 내 코드 숨김 페이지에 사용됩니다. 첨부 된 코드에서 볼 수 있듯이 현재 문서마다 별도의 페이지가 포함 된 단일 스트림을 제공하고 싶습니다. 아래 코드에서 식별자 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 
+1

질문의 내용이 명확하지 않습니다. – khagler

답변

1

당신은 MemoryStream을을 전체 문서가 아닌 PdfPage을 반환하고 다른 기능과 출력 페이지를 결합하는 기능을 수정하는 것입니다. 또는 새 문서에 새 페이지를 추가하고 그 반환 문서의 각 PdfPage에 대해 다음 문서의 배열을 가지고하는 기능을 할 것이라고

.

How to merge different documents into single one?

관련 문제