2011-02-08 8 views
2

Sharepointを使用したことはありませんが、WebPartを追加してPDFドキュメントを表示する必要があります。これはどのように作動しますか?Sharepoint WebPartにPDFビューアパネルを追加する方法

現在、ReportViewer(SSRS)WebPartを追加するコードがありますが、ディスクからPDFファイルを表示するためには置き換える必要があります。

PDFファイルは、公開されていないローカル/ネットワークパスからのものです。 PDFコンテンツをWebパーツでストリーミングして、その途中でコンテンツタイプを設定する必要があります。

私が考えているのは、別のURL(同じサイト内のページ)で応答することです。単にトークンを取るだけです(paramsを取得します)、バイト[]をストリームしてコンテンツタイプをアプリケーション/ pdf - 私は完全にマークから外れる可能性があります。 答えにステップとコード/サンプル/リンクを明確にする必要があります。

+0

PDFを扱う簡単なWebサイトを設定できますか?おそらくこれは簡単です。 – gbn

+0

@gbnそのようなWebサイトでは、Sharepointサイトでいくつかの設定ファイル、セッション、ユーザー検証を共有する必要があります。 – RichardTheKiwi

+0

ドキュメントライブラリから配信できるPDFビューアがあります。共有ポイントの代わりにPDFをアップロードできますか?これは、Windowsエクスプローラや、おそらくユーティリティを介して行うことができます – gbn

答えて

3

MattのソリューションとHttpHandlerを組み合わせる必要があります。 HttpHandlerはローカル/ネットワークパスからPDFファイルを取得し、クライアントに取得します。 ページビューアWebパーツ(またはコンテンツのWebパーツを挿入iframeのは)あなたのページにPDFを統合します:

enter image description here

ここ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の追加:Webパーツでは

<add verb="*" path="pdf.axd" type="test.TestPdfHandler, pdfhandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=98df27cf3a770eaa"/> 

を、あなたは、srcプロパティを設定します。

enter image description here

あなたがURLに渡されたパラメータに応じて、異なるPDFをロードしたい場合は困難があることでしょう。

この場合、現在のリクエストでQueryStringパラメータを取得し、パラメータを含むsrc属性を使用してiframe eltを作成するだけで、独自のwebpartを作成する必要があります。

6

ページビューアWebパーツをページに追加し、URLをpdfの場所に設定します。この副作用は、AcrobatツールバーがWebパーツに表示されることです。それを外したい場合は、urlに#toolbar = 0 & navpanes = 0を追加する必要があります。

http://server:port/path/filename.pdf#toolbar=0&navpanes=0

注:たとえば、ユーザーがWebパーツでPDFを表示するためにインストールAdobe Readerのプラグインを持っている必要があります。

+0

URLはブラウザ(クライアント側)のURLか、 'file:///'のようなローカルリソースですか? Webパーツのネットワーク上の場所にPDFファイルを保存する必要があります。 – RichardTheKiwi

+0

@cyberwikiクライアント側ではなくサーバー側のパスになります。 – Matt

関連する問題