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(); }
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 :
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!