Просмотр PDF как часть страницы - PullRequest
18 голосов
/ 22 июня 2011

Я пытаюсь просмотреть документ PDF на моей веб-странице MVC, но не могу заставить его работать.

Я бы хотел, чтобы PDF отображался как часть других материалов на странице (верхний и нижний колонтитулы и т. д.).В настоящее время у меня есть решение, где PDF отображается, но на всей странице.

Кто-нибудь сделал это, если да, то как?

1 Ответ

38 голосов
/ 23 июня 2011

Почему бы вам не попробовать использовать iframe следующим образом:

<iframe src="even file stream action url"></iframe>

Я предлагаю использовать тег объекта, если это возможно, используйте iframe только для тестирования.

Если вы хотите отобразить PDF как часть страницы, как вы только что сделали

src = '<% Html.RenderAction ("GetPDF"); %> '

Тогда это ваш вариант

Если вам нужен полный контроль над содержимым PDF с использованием CSS или чего-либо еще, например, книг Google и т. Д., Вам нужны инструменты, которые помогут вам конвертировать каждую запрашиваемую страницу PDF в обычный текст, HTML или даже изображение. инструменты, такие как PDFsharp. Поиск в Google для инструментов

Если вы хотите отобразить PDF как часть страницы, то это то, что вам нужно сделать

ASPX: src="<%= Url.Action("GetPDF") %>"
Razor: src="@Url.Action("GetPDF")"

И окончательный ответ может быть

<object data="<%= Url.Action("GetPDF") %>" type="application/pdf" width="300" height="200">
    alt : <a href="data/test.pdf">test.pdf</a>
</object>

А в случае, если вы хотите вернуть PDF в виде потока, вам нужно

public FileStreamResult GetPDF()
{
    FileStream fs = new FileStream("c:\\PeterPDF2.pdf", FileMode.Open, FileAccess.Read);
    return File(fs, "application/pdf");
}
...