2012-09-14 68 views
1

如何製作pdf文件有功能按鈕?在PDF中插入一個按鈕

本PDF

public partial class Pdf_Default : System.Web.UI.Page 
{ 
protected override void Render(HtmlTextWriter writer) 
{ 
    MemoryStream mem = new MemoryStream(); 
    StreamWriter twr = new StreamWriter(mem); 
    HtmlTextWriter myWriter = new HtmlTextWriter(twr); 
    base.Render(myWriter); 
    myWriter.Flush(); 
    myWriter.Dispose(); 
    StreamReader strmRdr = new StreamReader(mem); 
    strmRdr.BaseStream.Position = 0; 
    string pageContent = strmRdr.ReadToEnd(); 
    strmRdr.Dispose(); 
    mem.Dispose(); 
    writer.Write(pageContent); 
    CreatePDFDocument(pageContent); 


} 
public void CreatePDFDocument(string strHtml) 
{ 

    string strFileName = HttpContext.Current.Server.MapPath("test.pdf"); 
    // step 1: creation of a document-object 
    Document document = new Document(); 
    // step 2: 
    // we create a writer that listens to the document 
    PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create)); 
    StringReader se = new StringReader(strHtml); 
    HTMLWorker obj = new HTMLWorker(document); 
    document.Open(); 
    obj.Parse(se); 
    document.Close(); 
    ShowPdf(strFileName); 



} 
public void ShowPdf(string strFileName) 
{ 
    Response.ClearContent(); 
    Response.ClearHeaders(); 
    Response.AddHeader("Content-Disposition", "inline;filename=" + strFileName); 
    Response.ContentType = "application/pdf"; 
    Response.WriteFile(strFileName); 
    Response.Flush(); 
    Response.Clear(); 
} 

}後面的代碼

當我試圖把一個返回按鈕,PDF文件僅顯示標籤測試。 我想製作一個可以轉到另一個頁面的按鈕(非PDF)。謝謝!

回答

1

當你使用Response.ContentType = "application/pdf";等發送PDF文件作爲響應,很多事情可能發生,最常見的有:
1 - 誰是你的網站導航用戶尚未默認的PDF閱讀器和「保存As ...「對話框將顯示(通常)。
2-用戶默認PDF查看器,該查看器顯示爲瀏覽器外部的應用程序或集成在其中的外部應用程序。

在任何這些情況下,您將只顯示PDF文件,不包含任何HTML內容。如果你想顯示一個按鈕,讓用戶回到你的網站,你將不得不修改PDF文件並在其中添加按鈕。

另一種選擇是embed the pdf file inside a page而不是將其作爲響應發送。在這種情況下,您可以將按鈕添加到包裝PDF文件的頁面。