簡體   English   中英

如何將PDF查看器面板添加到Sharepoint WebPart

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM