来自MemoryStream()的PdfReader

Dav*_*ave 1 c# memorystream itextsharp pdf-reader

谁能给我一个如何从MemoryStream获取PdfReader的示例吗?我可以看到PdfReader类有几个看起来很可能候选的方法(GetStreamBytes和GetStreamBytesRaw),但是这些似乎想要iText特定的流,我的只是常规的Byte []或MemoryStream。

这是使用C#和.net4

iTextSharp.text.pdf.PdfReader rdr = iTextSharp.text.pdf.PdfReader.GetStreamBytesRaw
Run Code Online (Sandbox Code Playgroud)

提前致谢。

小智 5

您可以从MemoryStream创建PdfReader,只要MemoryStream是有效的PDF对象即可。如果MemoryStream是有效的PDF对象,则启动PdfReader的一种方法是:

PdfReader _reader = new PdfReader((byte[])_memoryStream.ToArray());
Run Code Online (Sandbox Code Playgroud)

在下面的代码中,从.Net Resource初始化了PdfReader,当从Properties.Resources对象调用该资源时,它作为byte []返回,因此Resource和MemoryStream将相同的类型返回给PdfReader,即byte []。然后,我从PdfReader对象创建一个PdfStamper对象,并将MemoryStream用作PdfStamper的结果容器。

PdfReader _srcDoc = new PdfReader(Properties.Resources.Resource1);
MemoryStream _output = new MemoryStream();
PdfStamper _scratchDoc = new PdfStamper(_srcDoc, _output);
Run Code Online (Sandbox Code Playgroud)