栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何合并多个pdf文件(在运行时生成)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何合并多个pdf文件(在运行时生成)?

如果要使用iText(Sharp)合并源文档,则有两种基本情况:

  1. 您确实要合并文档,以原始格式获取页面,并尽可能多地传输其内容和交互式注释。在这种情况下,您应该使用基于

    Pdf*Copy*
    类族成员的解决方案。

  2. 您实际上是想将源文档中的页面集成到一个新文档中,但希望新文档支配通用格式,而不关心原始文档中的交互功能(注释…)(甚至想摆脱它)其中)。在这种情况下,您应该使用基于

    PdfWriter
    类的解决方案。

您可以在《 iText in Action
—第二版》的
第6章(尤其是6.4节)中找到详细信息。Java的示例代码可以访问这里和C#“指明分数版本在这里。

使用一个简单的示例

PdfCopy
是Concatenate.java
/
Concatenate.cs。中央代码是:

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 < pdf.Count; ++i) {     PdfReader reader = new PdfReader(pdf[i]);     // loop over the pages in that document     int n = reader.NumberOfPages;     for (int page = 0; page < n; )     {         copy.AddPage(copy.GetimportedPage(reader, ++page));     } }        }    }    mergedPdf = ms.ToArray();}

在这里

pdf
可以被定义为
List<byte[]>
直接包含在源文件(在适当的合并中间内存的文件你的使用情况),或者作为一个
List<String>
包含源文档文件名(在适当的,如果你从磁盘合并文档)。

本章末尾的概述总结了所提到的类的用法:

  • PdfCopy
    :从一个或多个现有PDF文档中复制页面。主要缺点:
    PdfCopy
    无法检测到多余的内容,并且在连接表单时会失败。

  • PdfCopyFields
    :将不同形式的字段合并为一种形式。可用于避免在使用串联表单时遇到表单字段问题
    PdfCopy
    。内存使用可能是一个问题。

  • PdfSmartCopy
    :从一个或多个现有PDF文档中复制页面。
    PdfSmartCopy
    能够检测到冗余内容,但是它比占用更多的内存和CPU
    PdfCopy

  • PdfWriter
    :从头开始生成PDF文档。可以从其他PDF文档导入页面。主要缺点是在此过程中会丢失导入页面的所有交互功能(注释,书签,字段等)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号