Maison >développement back-end >C++ >Comment fusionner plusieurs PDF générés par l'exécution à l'aide d'ITextSharp ?
Pour fusionner plusieurs PDF générés lors de l'exécution à l'aide d'ITextSharp, vous disposez de deux options principales : utiliser PdfCopy famille de classes ou PdfWriter class.
Famille PdfCopy
Les classes Pdf*Copy* permettent de fusionner des PDF tout en préservant leur format d'origine et leurs annotations interactives. Pour cette approche, suivez ces étapes :
Exemple d'utilisation de PdfCopy :
byte[] mergedPdf = null; using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { using (PdfCopy copy = new PdfCopy(document, ms)) { document.Open(); for (int i = 0; i < pdfBytes.Count; ++i) { PdfReader reader = new PdfReader(pdfBytes[i]); int n = reader.NumberOfPages; for (int page = 0; page < n; ) { copy.AddPage(copy.GetImportedPage(reader, ++page)); } } } } mergedPdf = ms.ToArray(); }
Classe PdfWriter
La classe PdfWriter vous permet de intégrer des pages de PDF sources dans un nouveau document sans préserver leur interactivité d'origine. Utilisez cette approche si vous n'êtes pas préoccupé par les annotations ou autres fonctionnalités des PDF sources.
using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { using (PdfWriter writer = PdfWriter.GetInstance(document, ms)) { document.Open(); for (int i = 0; i < pdfBytes.Count; ++i) { PdfReader reader = new PdfReader(pdfBytes[i]); int n = reader.NumberOfPages; for (int page = 0; page < n; ) { PdfImportedPage importedPage = writer.GetImportedPage(reader, ++page); writer.Add(importedPage); } reader.Close(); } } } mergedPdf = ms.ToArray(); }
Pour plus de détails, reportez-vous à la documentation iTextSharp ou aux exemples de code fournis dans la réponse liée.
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!