2011-06-01 4 views

Répondre

4

Je pense que vous pouvez être confus. MigraDoc crée des documents PDF. Donc, si vous avez un flux de MigraDoc (qui vient de son objet PdfDocument), je devinerais que sauvegarder le flux sur le disque comme "document.pdf" serait la meilleure option.

Voir Jon Skeets réponse à cette ici:

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

Rappelez-vous un flux est tout simplement des données binaires. Ainsi, lorsque vous voulez lire et écrire ces données, vous utilisez System.IO pour lire ou écrire le flux dans un emplacement, qu'il s'agisse d'un disque, d'une mémoire ou d'une transmission réseau.

Je prendrais un coup d'œil sur les échantillons de MigraDoc pour plus d'informations: si vous écrivez ce à une sortie HTTP

http://www.pdfsharp.net/wiki/MigraDocSamples.ashx

je ferais comme suit:

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

Je flux créé à partir de MicroDoc et je l'ai enregistré en DB puis je l'ai récupéré, puis je veux l'enregistrer en PDF sur demande de l'utilisateur – pramod

+0

Est-ce une demande Web ou une demande d'interface de programme? – Richard

Questions connexes