C#WebBrowser不会显示嵌入对象

时间:2011-06-06 06:31:58

标签: c# html pdf browser embed

这可能是一个愚蠢的问题,但我无法让它发挥作用。我正在尝试将pdf文件嵌入到c#程序中的webbrower中。简单吧?我是这么认为的,但事实证明并非如此。 这是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 个答案:

答案 0 :(得分:2)

尝试格式化标记,如下所示:

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

在标签中包含数据属性,它似乎工作得很好 - 只是在IE8 / IE9机器上的浏览器控件中尝试了这个并且它显示为内联。

答案 1 :(得分:1)

我解决了我的问题。为了防止其他人有同一个,这就是我做的: 首先,我将visual studio中的构建选项卡下的“目标平台”属性设置为x86,因为事实证明,64位IE无法呈现PDF。 其次我使用了embed标签而不是object标签,因为IE要求你使用“classid”以及使用object标签时你不想要的各种Active X东西。

相关问题