C # iTextSharp Mehrere PDFs über Bytearray zusammenführen

Ich bin neu in der Verwendung von iTextSharp und der Arbeit mit PDF-Dateien im Allgemeinen, aber ich denke, ich bin auf dem richtigen Weg.

Ich durchlaufe eine Liste von PDF-Dateien, konvertiere sie in Bytes und verschiebe alle resultierenden Bytes in ein Byte-Array. Von dort übergebe ich das Bytearray an concatAndAddContent (), um alle PDFs zu einem einzigen großen PDF zusammenzuführen. Momentan erhalte ich nur das letzte PDF in der Liste (sie scheinen zu überschreiben)

public static byte[] concatAndAddContent(List<byte[]> pdfByteContent)
    {
        byte[] allBytes;

        using (MemoryStream ms = new MemoryStream())
        {
            Document doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, ms);

            doc.SetPageSize(PageSize.LETTER);
            doc.Open();
            PdfContentByte cb = writer.DirectContent;
            PdfImportedPage page;

            PdfReader reader;
            foreach (byte[] p in pdfByteContent)
            {
                reader = new PdfReader(p);
                int pages = reader.NumberOfPages;

                // loop over document pages
                for (int i = 1; i <= pages; i++)
                {
                    doc.SetPageSize(PageSize.LETTER);
                    doc.NewPage();
                    page = writer.GetImportedPage(reader, i);
                    cb.AddTemplate(page, 0, 0);

                }
            }

            doc.Close();
            allBytes = ms.GetBuffer();
            ms.Flush();
            ms.Dispose();
        }

        return allBytes;
    }

Above ist der Arbeitscode, der dazu führt, dass ein einzelnes PDF erstellt wird, und der Rest der Dateien wird ignoriert. Irgendwelche Vorschläg

Antworten auf die Frage(2)

Ihre Antwort auf die Frage