SilverCard / DanfeSharp

Biblioteca C# para geração de DANFE em PDF.
MIT License
97 stars 81 forks source link

Criar um arquivo PDF com vários DANFES #11

Closed iuryamicussi closed 5 years ago

iuryamicussi commented 5 years ago

Boa tarde, gostaria de saber se é possível criar um arquivo/stream PDF com vários DANFES.

Valeu! Muito bom projeto!!

SilverCard commented 5 years ago

Boa tarde,

Aprecio o seu agradecimento @iuryamicussi.

Creio que isso seja possível se utilizar diretamente o PDF Clown, a biblioteca de PDF utilizada pelo DanfeSharp.

iuryamicussi commented 5 years ago

Só pra postar como acabei fazendo. Criei uma lista de PDFs em Stream e depois fui concatenando eles com a ajuda do PDFSharp. Valeu @SilverCard !! Ta em VB.NET..

Public Function ConcatenarPDFsStream(listaPDFstream As List(Of Stream)) As Stream

        If listaPDFstream.Count = 1 Then
            Return listaPDFstream(0)
        End If

        Dim outputDocument As New PdfDocument

        For Each file As Stream In listaPDFstream
            Dim inputDocument As PdfDocument = PdfReader.Open(file, PdfDocumentOpenMode.Import)

            Dim count As Integer = inputDocument.PageCount
            For idx As Integer = 1 To count
                Dim page As PdfPage = inputDocument.Pages.Item(idx - 1)
                outputDocument.AddPage(page)
            Next
        Next

        Dim retorno As String = ""
        If outputDocument.CanSave(retorno) Then
            Dim ms As New MemoryStream
            outputDocument.Save(ms, False)
            Return ms
        Else
            Throw New Exception(retorno)
        End If

    End Function