0
A
回答
0
上腭有一点更容易:
你必须采取PDF文档存储流,并将它们合并起来!
这是一个简单的功能,可以实现这个功能!
public MemoryStream MemoryStreamMerger(List<MemoryStream> streams)
{
MemoryStream OurFinalReturnedMemoryStream;
using (OurFinalReturnedMemoryStream = new MemoryStream())
{
//Create our copy object
PdfCopyFields copy = new PdfCopyFields(OurFinalReturnedMemoryStream);
//Loop through each MemoryStream
foreach (MemoryStream ms in streams)
{
//Reset the position back to zero
ms.Position = 0;
//Add it to the copy object
copy.AddDocument(new PdfReader(ms));
//Clean up
ms.Dispose();
}
//Close the copy object
copy.Close();
//Get the raw bytes to save to disk
//bytes = finalStream.ToArray();
}
return new MemoryStream(OurFinalReturnedMemoryStream.ToArray());
}
1
按照哈斯先生(与他的代码帮助某处SO),
“不幸的是,据我所知,没有办法合并两个文档对象。这些对象是辅助类它抽象出PDF文件格式的复杂性,这些抽象的“成本”之一是你仅限于单个文档,但正如其他人指出的那样,你可以创建单独的PDF(甚至在内存中)和然后合并它们。“
所以我就是这样做的:
我用PdfCopyFields对象。
MemoryStream realfinalStream = new MemoryStream();
MemoryStream[] realstreams = { stream,new MemoryStream(finalStream.ToArray()) };
using (realfinalStream)
{
//Create our copy object
PdfCopyFields copy = new PdfCopyFields(realfinalStream);
//Loop through each MemoryStream
foreach (MemoryStream ms in realstreams)
{
//Reset the position back to zero
ms.Position = 0;
//Add it to the copy object
copy.AddDocument(new PdfReader(ms));
//Clean up
ms.Dispose();
}
//Close the copy object
copy.Close();
}
return File(new MemoryStream(realfinalStream.ToArray()), "application/pdf","hello.pdf");
FYI
new MemoryStream(realfinalStream.ToArray())
我这样做,是因为MemoryString被关闭。
+0
*我这样做是因为MemoryString是关闭的。* - 像任何'PdfWriter'一样,可以告诉'PdfCopy'在关闭时不关闭输出流。只需在'copy.Close()'之前执行'copy.SetCloseStream(false)'。 – mkl
相关问题
- 1. 如何使用iTextSharp?
- 2. 如何使用iTextSharp的
- 3. 如何使用iTextSharp的
- 4. 如何使用iTextSharp的
- 5. 如何使用iTextSharp的
- 6. 如何使用iTextSharp的
- 7. 如何使用iTextSharp的
- 8. 如何将图像使用itextsharp与asp.net 3.5使用itextsharp
- 9. 使用iTextSharp的
- 10. 使用iTextSharp的
- 11. 使用iTextSharp的
- 12. 使用iTextSharp的
- 13. 使用iTextSharp的
- 14. 使用iTextSharp的
- 15. 使用iTextSharp的
- 16. 如何iTextSharp的
- 17. 如何iTextSharp的
- 18. 如何使用iTextSharp编写页脚5.0.4
- 19. 如何在iTextSharp上使用PDFTextExtractor
- 20. 如何使用iTextSharp编辑PDF文件
- 21. 如何使用iTextSharp连接两个PDF?
- 22. 如何使用ItextSharp检测上标?
- 23. 如何使用itextsharp插入选项卡?
- 24. 如何使用iTextSharp编辑PDF?
- 25. 如何使用itextsharp设置FIT视图?
- 26. 我们如何在mvc3中使用itextsharp?
- 27. 如何使用iTextSharp写入pdf文档
- 28. 如何使用itextsharp库来旋转pdf
- 29. 如何使用iTextSharp保存CSS?
- 30. 如何证明文本使用iTextSharp?
http://stackoverflow.com/questions/2233129/merging-pdfs-with-itextsharp –
作为iText的已经在最近几个月和几年相当大的变化,对从2010年和2011年的答案指向不一定是有帮助的。 – mkl
我打算把这个标记为重复,但问题与通常要求的稍有不同。 OP不是合并两个PDF,而是询问如何合并两个“Document”对象。不幸的是,据我所知,没有办法合并两个'Document'对象。这些对象是助手类,可以抽象出PDF文件格式的复杂性。这些抽象的“成本”之一是,你仅限于单个文档。但是,正如其他人指出的那样,您可以创建单独的PDF(甚至是内存),然后合并它们。 –