2011-06-01 89 views

回答

4

我想你可能会感到困惑。 MigraDoc创建Pdf文档。所以如果你有一个来自MigraDoc的流(来自它的PdfDocument对象),我猜想将流保存为磁盘为“document.pdf”是最好的选择。

见乔恩长柄水杓回答这个位置:

How do I save a stream to a file in C#?

记住一个流只是二进制数据。所以当你想要读写数据时,你可以使用System.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(); 
+0

我有从MicroDoc创建的流,我将它保存到数据库,然后我检索它,然后我想根据用户请求将其保存为PDF – pramod 2011-06-01 08:57:39

+0

它是一个Web请求或程序接口请求? – Richard 2011-06-01 16:06:06