我想制作一个PDF文档阅读器,目前唯一能帮助我的是“Amyuni PDF Suite”,它可以将PDF转换为XAML并流式传输。除此之外,还有其他在Silverlight中展示PDF的控件吗?或者我可以在Silverlight中添加一个IFrame并让客户端渲染它吗?
或者我能在Silverlight中添加一个IFrame,让客户端渲染它吗?
Silverlight实际上没有这个功能。您可以使您的Silverlight控件透明,并有一个HTML div块位于您的Silverlight控件上方,您可以在其中加载PDF,但是如果要在Silverlight中显示PDF,我认为您会失败。
编辑:这个问题提供了一些关于如何实现透明Silverlight控件的信息,希望能对您有所帮助!
CanvasObject.Children.Add(XamlReader.Load("xaml string from pdf converter"));
PDF应该在CanvasObject内呈现。
我真的认为通过某种类型的转换到XAML会得到最好的结果。我想自己编写转换器不可能那么难,但我可能错了。
看起来First Floor Software有一个解决方案,但它仍处于预览阶段。
http://firstfloorsoftware.com/blog/pdf-for-silverlight-preview/
我们实际上要做的是将PDF转换为SVG,然后使用类似于:http://www.codeplex.com/XamlTune这样的东西再转到Xaml。您可以使用服务器端将PDF转换为一组位图或如上所述的SVG,并通过WCF服务返回给Silverlight客户端。