C # WebBrowser не будет отображать встроенный объект - PullRequest
3 голосов
/ 06 июня 2011

Это может быть глупый вопрос, но я просто не могу заставить его работать.Я пытаюсь встроить PDF-файл в веб-браузер в программе AC #.Просто верно?Я так и думал, но это доказало обратное.Вот HTML-код:

<object classid="" type="application/pdf" width="400" height="300" id="pdf1">
<param name="src" value="Test.pdf" />
    <div style="text-align:center; color:#CCCCCC" >No Preview Available.</div>
</object>

И это все, что в HTML-файле.Самое смешное, что это прекрасно работает в IE (что, как я понимаю, то, что использует WebBrowser).Я пытался реализовать тег объекта non-IE, с атрибутом src и еще чем-то, но он сделал то же самое.Происходит то, что элемент управления WebBrowser просто отображает No Preview Available, что означает, что PDF не был успешно внедрен.Вот код c #:

wbPreview.Navigate("I:/Documents/Visual Studio 2008/Projects
                      /PlanReferenceDatabase/test.html");

Может кто-нибудь сказать мне, почему веб-браузер в c # не может отображать pdf , а другой браузер может?

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

Попробуйте отформатировать тег следующим образом:

<object type="application/pdf" data="myPdfFile.pdf" class="yourPdfClass" width="550px" height="800px"/>

Включите атрибут данных в тег, и он, кажется, работает просто отлично - только что попробовал это в моем элементе управления браузером на компьютере с IE8 / IE9, и он отображаетвстроенный.

1 голос
/ 08 июня 2011

Я решил свою проблему.На тот случай, если у кого-то еще такой же, вот что я сделал: во-первых, я установил свойство «target platform» на вкладке «build» в visual studio на x86, потому что 64-битный IE не может отображать PDF-файлы.Во-вторых, я использовал тег embed вместо тега object, потому что IE требует, чтобы вы использовали «classid» и все виды Active X, которые вам не нужны при использовании тега object.

...