[英]How to add PDF viewer panel to Sharepoint WebPart
從未使用過Sharepoint,但需要添加WebPart才能顯示PDF文檔。 這是如何運作的?
目前有一些代碼可以添加ReportViewer(SSRS)WebPart,但我需要將其替換為顯示PDF文件(來自磁盤)。
PDF文件來自未公開提供的本地/網絡路徑。 我需要在Web部件中獲取流式傳輸的PDF內容,並在此過程中設置內容類型。
如果它有幫助,我的想法是響應不同的URL(同一站點中的頁面),只需要一些令牌(獲取參數?)並流式傳輸一個byte []並將內容類型設置為application / pdf - I很可能完全不合適。 您需要對答案中的步驟和代碼/示例/鏈接非常具體。
將頁面查看器Web部件添加到頁面並將URL設置為pdf的位置。 副作用是Acrobat工具欄顯示在Web部件中。 如果你希望它消失,你必須在網址中添加#toolbar = 0&navpanes = 0。 例如:
HTTP://服務器:端口/路徑/ filename.pdf#工具欄= 0&navpanes = 0
注意:用戶必須安裝Adobe Reader插件才能在Web部件中查看pdf。
您應該結合Matt的解決方案和HttpHandler:HttpHandler將從您的本地/網絡路徑獲取PDF文件並將其發送到您的客戶端。 頁面查看器Web部件(或插入內容webpart的iframe)將在頁面上集成PDF:
這是httphandler的簡單代碼:
public class TestPdfHandler : IHttpHandler
{
#region IHttpHandler Membres
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
string fileName = context.Request["pdfname"];
byte[] buffer = null;
buffer = File.ReadAllBytes("d:\\" + fileName +".pdf");
context.Response.Clear();
context.Response.ContentType = "application/pdf";
context.Response.OutputStream.Write(buffer, 0, buffer.Length);
context.Response.End();
}
#endregion
}
在web.config中,添加httphandler:
<add verb="*" path="pdf.axd" type="test.TestPdfHandler, pdfhandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=98df27cf3a770eaa"/>
在WebPart中,設置src屬性:
如果您想根據URL上傳遞的參數加載不同的PDF,則會遇到困難。
如果是這樣,您將需要創建自己的webpart,只需在當前請求上獲取QueryString參數,並使用包含該參數的src屬性編寫iframe elt。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.