C# 来自MemoryStream()的PdfReader
谁能给我举个例子,说明如何从C# 来自MemoryStream()的PdfReader,c#,itext,memorystream,pdf-reader,C#,Itext,Memorystream,Pdf Reader,谁能给我举个例子,说明如何从内存流获取PDF阅读器?我可以看到,PdfReader类有两个方法,它们看起来很像候选方法(GetStreamBytes&GetStreamBytesRaw),但是这些方法似乎需要iText特定的流,我的只是一个常规的Byte[]或内存流 这是使用C#和.NET4 iTextSharp.text.pdf.PdfReader rdr = iTextSharp.text.pdf.PdfReader.GetStreamBytesRaw 如果只想在浏览器中使用字节打开pdf
内存流
获取PDF阅读器
?我可以看到,PdfReader
类有两个方法,它们看起来很像候选方法(GetStreamBytes
&GetStreamBytesRaw
),但是这些方法似乎需要iText
特定的流,我的只是一个常规的Byte[]
或内存流
这是使用C#和.NET4
iTextSharp.text.pdf.PdfReader rdr = iTextSharp.text.pdf.PdfReader.GetStreamBytesRaw
如果只想在浏览器中使用字节打开pdf,请执行以下操作:
public void ReturnPDF(byte[] contents, string attachmentFilename)
{
var response = HttpContext.Current.Response;
try
{
if (!string.IsNullOrEmpty(attachmentFilename))
{
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "attachment; filename=" + attachmentFilename);
}
response.ContentType = "application/pdf";
response.BinaryWrite(contents);
}
catch (Exception ex)
{
throw ex;
}
finally
{
response.End();
response.Flush();
response.Clear();
}
}
如果只想在浏览器中使用字节打开pdf,请执行以下操作:
public void ReturnPDF(byte[] contents, string attachmentFilename)
{
var response = HttpContext.Current.Response;
try
{
if (!string.IsNullOrEmpty(attachmentFilename))
{
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "attachment; filename=" + attachmentFilename);
}
response.ContentType = "application/pdf";
response.BinaryWrite(contents);
}
catch (Exception ex)
{
throw ex;
}
finally
{
response.End();
response.Flush();
response.Clear();
}
}
也许有点晚了。
尝试将流位置设置为0
...
stream.Flush(); // Don't know if this is necessary
stream.Position = 0;
PdfReader reader = new PdfReader(stream.ToArray());
...
也许有点晚了。
尝试将流位置设置为0
...
stream.Flush(); // Don't know if this is necessary
stream.Position = 0;
PdfReader reader = new PdfReader(stream.ToArray());
...
只要MemoryStream是有效的PDF对象,就可以从MemoryStream创建PdfReader。如果MemoryStream是有效的PDF对象,则启动PdfReader的一种方法是:
PdfReader _reader = new PdfReader((byte[])_memoryStream.ToArray());
在下面的代码中,PdfReader是从.Net资源初始化的,当从Properties.Resources对象调用该资源时,该资源作为字节[]返回,因此该资源和MemoryStream将向PdfReader返回相同的类型,即字节[]。然后,我从PdfReader对象创建一个PdfStamper对象,并使用MemoryStream作为PdfStamper的结果容器
PdfReader _srcDoc = new PdfReader(Properties.Resources.Resource1);
MemoryStream _output = new MemoryStream();
PdfStamper _scratchDoc = new PdfStamper(_srcDoc, _output);
只要MemoryStream是有效的PDF对象,就可以从MemoryStream创建PdfReader。如果MemoryStream是有效的PDF对象,则启动PdfReader的一种方法是:
PdfReader _reader = new PdfReader((byte[])_memoryStream.ToArray());
在下面的代码中,PdfReader是从.Net资源初始化的,当从Properties.Resources对象调用该资源时,该资源作为字节[]返回,因此该资源和MemoryStream将向PdfReader返回相同的类型,即字节[]。然后,我从PdfReader对象创建一个PdfStamper对象,并使用MemoryStream作为PdfStamper的结果容器
PdfReader _srcDoc = new PdfReader(Properties.Resources.Resource1);
MemoryStream _output = new MemoryStream();
PdfStamper _scratchDoc = new PdfStamper(_srcDoc, _output);
什么是memorystream的PDF阅读器?您是否正在尝试从已有的bytesDave生成pdf,我也遇到了同样的问题。你找到解决方案了吗?什么是memorystream中的PDF阅读器?您是否正在尝试从已有的bytesDave生成pdf,我也遇到了同样的问题。你找到解决方案了吗?我在memorystream中有一个pdf文件,我需要用pdf阅读器阅读。PdfReader rdr=新PdfReader(pdfstream);抛出“未找到PDF标头签名”错误。这通常意味着PDF文件已损坏。不确定问题是否在以前的版本中不清楚,但此答案似乎根本不适用。我在memorystream中有一个PDF,需要使用PDF阅读器阅读。PdfReader rdr=新PdfReader(pdfstream);抛出“未找到PDF头签名”错误。这通常意味着PDF文件已损坏。不确定问题是否在以前的版本中不清楚,但此答案似乎根本不适用。PdfReader是一个静态类。它现在不是
newpdfreader(stream.ToArray)
而是PdfReader.Open(stream)
PdfReader是一个静态类。它现在不再是新的PdfReader(stream.ToArray)而是PdfReader.Open(stream)