Heim >Backend-Entwicklung >C++ >Wie füge ich zur Laufzeit generierte PDF-Dateien in iTextSharp zum Drucken zusammen?

Wie füge ich zur Laufzeit generierte PDF-Dateien in iTextSharp zum Drucken zusammen?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 20:26:10649Durchsuche

How to Merge Runtime-Generated PDF Files in iTextSharp for Printing?

Mehrere zur Laufzeit generierte PDF-Dateien zusammenführen

Frage:

Wie füge ich mehrere zusammen? PDF-Dateien, die zur Laufzeit mit iTextSharp zum Drucken generiert wurden Zwecke?

Antwort:

Beim Zusammenführen von Quelldokumenten in iText (Sharp) treten zwei unterschiedliche Situationen auf:

  1. Beibehalten Originallayout:
    Um Dokumente mit unveränderten Seiten, Anmerkungen und Inhalten zusammenzuführen, verwenden Sie eine Lösung, die auf dem basiert PDF*Kopieren* Klassenfamilie. Dadurch wird die Integrität der interaktiven Funktionen der Originaldokumente sichergestellt.
  2. Erstellen eines neuen Dokuments:
    Um Seiten zu integrieren und gleichzeitig das Gesamtformat zu steuern und interaktive Funktionen zu verwerfen, sollten Sie die Verwendung der PdfWriter-Klasse in Betracht ziehen . Es ermöglicht das Importieren von Seiten aus Quelldokumenten und das Steuern ihrer Präsentation.

Implementierung mit PdfCopy:

byte[] mergedPdf = null;
using (MemoryStream ms = new MemoryStream())
{
    using (Document document = new Document())
    {
        using (PdfCopy copy = new PdfCopy(document, ms))
        {
            document.Open();
            // Iterate over the PDF byte arrays and add pages to the merged document
            for (int i = 0; i < pdf.Count; ++i)
            {
                PdfReader reader = new PdfReader(pdf[i]);
                // Extract pages from the reader and add them to the merged document
                int n = reader.NumberOfPages;
                for (int page = 0; page < n; )
                {
                    copy.AddPage(copy.GetImportedPage(reader, ++page));
                }
            }
        }
    }
    mergedPdf = ms.ToArray();
}

Im bereitgestellten Code ist pdf ein Array von Byte-Arrays, die jeweils ein generiertes PDF-Dokument darstellen. Das resultierende mergedPdf-Byte-Array enthält den kombinierten PDF-Inhalt, der zum Drucken vorbereitet ist.

Klassenzusammenfassung:

  • PdfCopy: Kopiert Seiten ohne Redundanz Erkennung, kann aber Probleme damit haben Formulare.
  • PdfCopyFields: Führt Felder und Formulare zusammen, verbraucht aber möglicherweise übermäßig viel Speicher.
  • PdfSmartCopy: Erkennt Redundanzen effizient, erfordert aber mehr Ressourcen.
  • PdfWriter: Importiert Seiten, opfert jedoch die interaktiven Funktionen der importierten Seiten.

Das obige ist der detaillierte Inhalt vonWie füge ich zur Laufzeit generierte PDF-Dateien in iTextSharp zum Drucken zusammen?. 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