iTextSharp PDF généré: Comment faire pour envoyer le fichier pdf pour le client et ajouter une invite?

J'ai généré un fichier pdf à l'aide iTextSharp, lors de son créé il enregistre automatiquement dans l'emplacement prévu dans mon code sur le serveur, pas sur le côté client, et bien sûr sans dire quelque chose à l'utilisateur.

J'ai besoin de l'envoyer au client et j'ai besoin de invite une boîte de dialogue pour demander à l'utilisateur où il veut sauver son pdf..

comment puis-je faire s'il vous plaît?

c'est mon code pdf:

using (MemoryStream myMemoryStream = new MemoryStream())
{
    Document document = new Document();
    PdfWriter PDFWriter = PdfWriter.GetInstance(document, myMemoryStream);

    document.AddHeader("header1", "HEADER1");


    document.Open();

      //..........

    document.Close();

    byte[] content = myMemoryStream.ToArray();

    //Write out PDF from memory stream.
    using (FileStream fs =      File.Create(HttpContext.Current.Server.MapPath("~\\report.pdf")))
    {
        fs.Write(content, 0, (int)content.Length);
    }

MODIFIER

ceci est un exemple du résultat que je souhaite
http://examples.extjs.eu/?ex=download

merci pour vos réponses ,j'ai modifié mon code pour ce:

HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.AppendHeader( "Content-Disposition", "attachment; filename=test.pdf");


using (MemoryStream myMemoryStream = new MemoryStream())
{    
Document document = new Document();    
PdfWriter PDFWriter = PdfWriter.GetInstance(document, myMemoryStream);

document.AddHeader("Content-Disposition", "attachment; filename=wissalReport.pdf");

document.Open();

  //..........

document.Close();


byte[] content = myMemoryStream.ToArray();
HttpContext.Current.Response.Buffer = false;  
HttpContext.Current.Response.Clear();         
HttpContext.Current.Response.ClearContent(); 
HttpContext.Current.Response.ClearHeaders();  
HttpContext.Current.Response.AppendHeader("content-disposition","attachment;filename=" + "my_report.pdf");                
HttpContext.Current.Response.ContentType = "Application/pdf";        

//Write the file content directly to the HTTP content output stream.    
HttpContext.Current.Response.BinaryWrite(content);         
HttpContext.Current.Response.Flush();                
HttpContext.Current.Response.End(); 

mais j'obtiens cette erreur:

Uncaught Ext.Error: You're trying to decode an invalid JSON String: 
%PDF-1.4 %���� 3 0 obj <</Type/XObject/Subtype/Image/Width 994/Height 185/Length 13339/ColorSpace/DeviceGray/BitsPerComponent 8/Filter/FlateDecode>>stream x���|E
...........

im absolument sûr que mon itextsharp pour créer un fichier pdf est correct parce que je peux l'enregistrer sur le serveur, mais ce n'est pas ce que je dois faire ,quand j'ai essayer de l'envoyer au client, j'ai obtenu l'erreur ci-dessus

merci d'avance

  • est pour WebApp/WinForm/programme de Console? Vous pouvez toujours demander un emplacement avant de procéder à la génération de pdf.
  • ses une application web..comment faire? (désolé im nouveau à c# et iTextSharp)
InformationsquelleAutor Armance | 2011-12-14