2016-06-20 8 views
0

iv'eフォームからpdfファイルを生成する方法を作成しました。これはitexsharpを使用して正しいパスに保存されましたが、問題はダウンロードできません。ソースからPDFファイルをダウンロードする際の問題

これは私のコードです:

private void FillForm(Dictionary<string, string> dic) 
{ 

    var pdfTemplate = HttpContext.Current.Server.MapPath("~/ress/GENE_15_04_2014.pdf"); //_pdfTemplet; 

    var newFile = _newFileName + "_" + Guid.NewGuid() + ".pdf"; 

    _gNewFile = newFile.ToString(); 

    var pdfReader = new PdfReader(System.IO.File.ReadAllBytes(pdfTemplate)); 

    var pfileStream = new FileStream(string.Format(HttpContext.Current.Server.MapPath("~/ress/") + "{0}", newFile), FileMode.Create); 

    var pdfStamper = new PdfStamper(pdfReader, pfileStream); 
    var pdfFormFields = pdfStamper.AcroFields; 

    foreach (var entry in dic) 
    { 
     pdfFormFields.SetField(entry.Key, entry.Value); 
    } 
    pdfStamper.FormFlattening = true; 
    pdfStamper.JavaScript = "this.print(true);\r"; 
    pdfStamper.Writer.CloseStream = false; 
    pdfReader.Close(); 
    pdfStamper.Close(); 
    UPContract.Update(); 
    pfileStream.Close(); 
    pdf.FilePath = string.Format("../Ress/{0}", Path.GetFileName(_gNewFile)); 

    Response.Clear(); 
    byte[] bytes = System.IO.File.ReadAllBytes(string.Format(HttpContext.Current.Server.MapPath("~/ress/") + "{0}", _gNewFile)); 
    Response.ContentType = "application/pdf"; 
    MemoryStream ms = new MemoryStream(bytes); 
    Response.AddHeader("content-disposition", "attachment;filename=" + "fiche abonnement_" + _gNewFile + ".pdf"); 
    Response.Buffer = true; 
    ms.WriteTo(Response.OutputStream); 
    Response.Flush(); 
    Response.End(); 
} 
+0

を使用することができますそのファイルをアーカイブする必要がない場合は、サーバーを停止します。そのファイルをアーカイブする必要がありますか? –

+0

もちろん特別なニーズのためにもちろん –

+0

あなたはまだそこに@ブリュノロワギ! –

答えて

0

ファイルを渡したい場合は、バイト配列とMemoryStreamをスキップして、ちょうどそれが上のファイルとしてPDFを作成するために、悪い考えですResponse.WriteFile(string)

+0

私はファイルを渡すことに問題はありません、問題はそれをダウンロードすることです! –

関連する問題