Maison > développement back-end > C++ > Comment puis-je fusionner plusieurs PDF générés dynamiquement à l'aide d'iTextSharp ?

Comment puis-je fusionner plusieurs PDF générés dynamiquement à l'aide d'iTextSharp ?

DDD
Libérer: 2024-12-25 19:16:13
original
586 Les gens l'ont consulté

How Can I Merge Multiple Dynamically Generated PDFs Using iTextSharp?

Fusion de plusieurs fichiers PDF générés dynamiquement : une approche iTextSharp

Contexte :
Cette question concerne la fusion plusieurs fichiers PDF générés dynamiquement en temps réel. L'objectif est de fusionner ces fichiers à des fins d'impression.

Solution :
Pour fusionner plusieurs fichiers PDF à l'aide d'iTextSharp, il existe deux approches principales :

1. Classe PdfCopy
Si l'objectif est de fusionner des pages dans leur format d'origine, tout en préservant le contenu et les annotations interactives, la classe PdfCopy doit être utilisée. Un exemple utilisant PdfCopy est fourni ci-dessous :

// 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();
}
Copier après la connexion

2. Classe PdfWriter
Alternativement, si l'objectif est d'intégrer des pages de documents sources dans un nouveau document, en personnalisant le format général et en ignorant les annotations interactives, la classe PdfWriter doit être utilisée. Cette classe importe des pages d'autres documents PDF mais ignore leurs fonctionnalités interactives.

Considérations supplémentaires :

  • PdfCopyFields : Cette classe est utilisée pour fusionner les champs de différents formulaires, évitant notamment les problèmes de champs de formulaire rencontrés lors de la concaténation de formulaires à l'aide de PdfCopy. Il a des besoins en mémoire plus élevés.
  • PdfSmartCopy : Semblable à PdfCopy, il peut détecter le contenu redondant mais nécessite plus de mémoire et de ressources CPU.

La solution devrait être choisi en fonction des exigences spécifiques du projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal