Heim >Backend-Entwicklung >C++ >Wie kann ich mit iTextSharp mehrere dynamisch generierte PDFs zusammenführen?

Wie kann ich mit iTextSharp mehrere dynamisch generierte PDFs zusammenführen?

DDD
DDDOriginal
2024-12-25 19:16:13628Durchsuche

How Can I Merge Multiple Dynamically Generated PDFs Using iTextSharp?

Zusammenführen mehrerer dynamisch generierter PDF-Dateien: Ein iTextSharp-Ansatz

Kontext:
Diese Frage bezieht sich auf das Zusammenführen mehrere PDF-Dateien, die dynamisch in Echtzeit generiert werden. Ziel ist es, diese Dateien zu Druckzwecken zusammenzuführen.

Lösung:
Um mehrere PDF-Dateien mit iTextSharp zusammenzuführen, gibt es zwei Hauptansätze:

1. PdfCopy-Klasse
Wenn das Ziel darin besteht, Seiten in ihrem Originalformat zusammenzuführen und dabei den Inhalt und die interaktiven Anmerkungen beizubehalten, sollte die PdfCopy-Klasse verwendet werden. Nachfolgend finden Sie ein Beispiel für die Verwendung von PdfCopy:

// Assuming pdf is a List<byte[]> containing in-memory PDF documents
using (MemoryStream ms = new MemoryStream())
{
    using (Document document = new Document())
    {
        using (PdfCopy copy = new PdfCopy(document, ms))
        {
            document.Open();
            for (int i = 0; i < pdf.Count; ++i)
            {
                PdfReader reader = new PdfReader(pdf[i]);
                int n = reader.NumberOfPages;
                for (int page = 0; page < n; )
                {
                    copy.AddPage(copy.GetImportedPage(reader, ++page));
                }
            }
        }
    }
    mergedPdf = ms.ToArray();
}

2. PdfWriter-Klasse
Wenn das Ziel alternativ darin besteht, Seiten aus Quelldokumenten in ein neues Dokument zu integrieren, das allgemeine Format anzupassen und interaktive Anmerkungen zu ignorieren, sollte die PdfWriter-Klasse verwendet werden. Diese Klasse importiert Seiten aus anderen PDF-Dokumenten, verwirft jedoch deren interaktive Funktionen.

Zusätzliche Überlegungen:

  • PdfCopyFields: Diese Klasse wird verwendet um die Felder verschiedener Formulare zusammenzuführen und insbesondere Probleme mit Formularfeldern zu vermeiden, die beim Verketten von Formularen mit PdfCopy auftreten. Es hat einen höheren Speicherbedarf.
  • PdfSmartCopy: Ähnlich wie PdfCopy kann es redundante Inhalte erkennen, benötigt aber mehr Speicher und CPU-Ressourcen.

Die Lösung sollte sein ausgewählt basierend auf den spezifischen Anforderungen des Projekts.

Das obige ist der detaillierte Inhalt vonWie kann ich mit iTextSharp mehrere dynamisch generierte PDFs zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn