2009-05-28 16 views
0

私はボタンをクリックすると、pdfのフォームフィールドにテキストを挿入し、埋め込まれたpdfをディレクトリに保存します。私がpdfの編集を終えたら、私はブラウザーでpdfを開きたいが、Process.Start()は動いていない。生成された後すぐにpdfを表示するには良い方法はありますか?iTextSharpでPDFを作成した後にPDFを開こうとしましたが、動作させることができませんでしたか?

private void respondWithFile(string filePath, string remoteFileName) 
{ 
    if (!File.Exists(filePath)) 
     throw new FileNotFoundException(
       string.Format("Final PDF file '{0}' was not found on disk.", 
          filePath)); 
    var fi = new FileInfo(filePath); 
    Response.Clear(); 
    Response.AddHeader("Content-Disposition", 
        String.Format("attachment; filename=\"{0}\"", 
           remoteFileName)); 
    Response.AddHeader("Content-Length", fi.Length.ToString()); 
    Response.ContentType = "application/octet-stream"; 
    Response.WriteFile(fi.FullName); 
    Response.End(); 
} 

:これはASP.NETのタグに従って、あなたはProcess.Start()が、このようなコード例については使用しないでくださいについてですので

protected void btnGenerateQuote_Click(object sender, EventArgs e) 
{ 
    string address = txtAddress.Text; 
    string company = txtCompany.Text; 
    string outputFilePath = @"C:\Quotes\Quote-" + company + "-.pdf"; 
    PdfReader reader = null; 
    try 
    { 
     reader = new PdfReader(@"C:\Quotes\Quote_Template.pdf"); 
     using (FileStream pdfOutputFile = new FileStream 
              (outputFilePath, FileMode.Create)) 
     { 
      PdfStamper formFiller = null; 
      try 
      { 
       formFiller = new PdfStamper(reader, pdfOutputFile); 
       AcroFields quote_template = formFiller.AcroFields; 
       //Fill the form 
       quote_template.SetField("OldAddress", address); 
       //Flatten - make the text go directly onto the pdf 
       //   and close the form. 
       //formFiller.FormFlattening = true; 
      } 
      finally 
      { 
       if (formFiller != null) 
       { 
        formFiller.Close(); 
       } 
      } 
     } 
    } 
    finally 
    { 
     reader.Close(); 
    } 
    //Process.Start(outputFilePath); // does not work 
} 

答えて

4

:ここではボタンのコードですこれにより、ブラウザはセーブ/オープンダイアログを表示します。

+0

より正確なコンテンツタイプの 'application/pdf'は、ブラウザの検出を容易にします。 – devstuff

+0

ありがとうございます。オープンセーブを表示せず、新しいウィンドウでPDFを表示する方法はありますか? – Xaisoft

+0

添付ファイルではなくインラインでコンテンツ処理。 –

関連する問題