我有一个Stream对象,它包含我想在PDF文档中显示的数据。
如何从Stream对象创建和保存PDF文档?(Stream对象是使用MigraDoc工具创建的)
我想你可能会感到困惑。MigraDoc创建Pdf文档。因此,如果您有一个来自MigraDoc的流(来自它的PdfDocument对象),我想将流保存为"document.pdf"将是最好的选择。
请点击此处查看Jon Skeets对此的回答:
如何将流保存到C#中的文件中?
请记住,流只是二进制数据。所以当你想读取和写入数据时,你可以使用系统。IO将流读取或写入某个位置,无论是磁盘、内存还是网络传输。
我会看一下MigraDoc的样本以了解更多信息:
http://www.pdfsharp.net/wiki/MigraDocSamples.ashx
如果你把这个写到HTTP输出,那么我会做如下操作:
byte[] buffer = new byte[8192];
pdfStream.Seek(0, SeekOrigin.Begin);
Response.ClearContent();
Response.ClearHeaders();
Response.BufferOutput = true;
Response.ContentType = "application/pdf";
int bytesRead = pdfStream.Read(buffer, 0, 8192);
while(bytesRead > 0)
{
byte[] buffer2 = new byte[bytesRead];
System.Buffer.BlockCopy(buffer, 0, buffer2, 0, bytesRead);
Response.BinaryWrite(buffer2);
Response.Flush();
bytesRead = pdfStream.Read(buffer, 0, 8192);
}
Response.End();