优越。我遍历pdf文件列表,将它们转换为字节,并将所有生成的字节推送到字节数组中。从那里我将字节数组传递给concatAndAddContent()以将所有pdf组合成一个大的pdf。目前我只得到列表中的最后一个pdf(它们似乎被覆盖)publicstaticbyte[]concatAndAddContent(ListpdfByteContent){byte[]allBytes;使用(MemoryStreamms=newMemoryStream()){Documentdoc=newDocument();PdfWriterwriter=PdfWriter.GetInstance(doc,ms);doc.SetPageSize(PageSize.LETTER);文档.Open();PdfContentBytecb=writer.DirectContent;PdfImportedPage页面;PdfReader阅读器;foreach(byte[]pinpdfByteContent){reader=newPdfReader(p);intpages=reader.NumberOfPages;//遍历文档页面for(inti=1;i<=pages;i++){doc.SetPageSize(PageSize.LETTER);文档.NewPage();page=writer.GetImportedPage(读者,我);cb.AddTemplate(页面,0,0);}}doc.Close();allBytes=ms.GetBuffer();ms.Flush();ms.Dispose();}返回所有字节;上面是工作代码,导致创建一个pdf文件,其余文件被忽略。有什么建议么?这几乎只是Bruno代码的C#版本。这是合并PDF文件的最简单、最安全和推荐的方法。PdfSmartCopy对象能够检测多个文件中的冗余,这可以在一段时间内减小文件大小。其中一个重载接受一个完整的PdfReader对象,该对象可以根据需要实例化。以上就是C#学习教程:C#iTextSharp通过字节数组合并多个pdf共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——publicstaticbyte[]concatAndAddContent(ListpdfByteContent){using(varms=newMemoryStream()){using(vardoc=newDocument()){使用(varcopy=newPdfSmartCopy(doc,ms)){doc.Open();//遍历每个字节数组foreach(varpinpdfByteContent){//使用(varreader=newPdfReader(p))创建一个绑定到该字节数组的PdfReader{//添加整个文档而不是逐页添加复制.AddDocument(读者);}}doc.Close();}}//在处理之前返回returnms.ToArray();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
