合并多个动态生成的 PDF 文件:iTextSharp 方法
上下文:
此问题与合并有关实时动态生成的多个 PDF 文件。目标是合并这些文件以进行打印。
解决方案:
要使用 iTextSharp 合并多个 PDF 文件,有两种主要方法:
1. PdfCopy 类
如果目标是以原始格式合并页面,同时保留内容和交互式注释,则应使用 PdfCopy 类。下面提供了使用 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 类
或者,如果目标是将源文档中的页面集成到新文档中,自定义通用格式并忽略交互式注释,则应使用 PdfWriter 类。此类从其他 PDF 文档导入页面,但放弃其交互功能。
其他注意事项:
解决方案应该是根据项目的具体要求进行选择。
以上是如何使用 iTextSharp 合并多个动态生成的 PDF?的详细内容。更多信息请关注PHP中文网其他相关文章!