Как добавить панель просмотра PDF в Sharepoint WebPart - PullRequest
2 голосов
/ 09 февраля 2011

Никогда не работал с Sharepoint, но нужно добавить WebPart для отображения PDF документа.Как это работает?

В настоящее время существует некоторый код для добавления веб-части ReportViewer (SSRS), но мне нужно заменить ее для отображения файла PDF (с диска).

Файл PDFиз локального / сетевого пути, который не обслуживается публично.Мне нужно, чтобы содержимое PDF транслировалось в веб-части, задавая тип содержимого по пути.

Если это поможет, мои мысли - ответить на другой URL (страница на том же сайте),это просто берет некоторый токен (получить параметры?) и передает поток байтов [] и устанавливает тип контента как application / pdf - я вполне могу быть не в курсе. Вы должны быть достаточно конкретны с шагами и кодом / образцом / ссылками в ответе.

Ответы [ 2 ]

6 голосов
/ 09 февраля 2011

Добавьте на страницу веб-часть средства просмотра страниц и задайте URL-адрес для расположения файла PDF.Побочным эффектом этого является панель инструментов Acrobat, отображаемая в веб-части.Если вы хотите, чтобы это исчезло, вы должны добавить # toolbar = 0 & navpanes = 0 в URL.Например:

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

ПРИМЕЧАНИЕ. Пользователю потребуется установить плагин Adobe Reader для просмотра PDF-файла в веб-части.

3 голосов
/ 17 февраля 2011

Вам следует объединить решение Мэтта и HttpHandler: HttpHandler получит PDF-файл по локальному / сетевому пути и передаст его вашему клиенту.Веб-часть «Просмотр страниц» (или 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:

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

В WebPart вы устанавливаете свойство src:

enter image description here

Сложность будет, если вы захотите загрузить другой PDF в зависимости от параметра, переданного в URL.

В таком случае вам потребуется создать собственную веб-часть, которая просто принимает параметр QueryString в текущем запросе и записываетiframe elt с атрибутом src, содержащим параметр.

...