我是一名初学网络程序员。我一直在编写桌面应用程序。 现在,我已经在Silverlight中创建了这个Web应用程序,它使用我自己的Web服务来查询数据库。问题是,应用程序功能之一是打开PDF文件的能力。我知道silverlight不允许你这样做,但是在silverlight应用程序的顶部使用IFrame,你可以显示带有de pdf文件的页面(使用acrobat插件)。 所以这就是问题,我的silverlight应用程序将pdf路径传递给Web服务,作为回报,Web服务将创建一个新页面并将新页面URI传回,以便它可以显示在IFrame上:
页面代码Behing:
public partial class PDFViewer : System.Web.UI.Page
{
string Filename = string.Empty;
public Uri Uri
{
get { return HttpContext.Current.Request.Url; }
}
public PDFViewer(string filename)
{
Filename = filename;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "Application/pdf";
Response.WriteFile(Filename); //Write the file directly to the HTTP content output stream.
Response.End();
}
}
WebMethod代码:
[WebMethod]
public string GetReport(string filename)
{
PDFViewer viewer = new PDFViewer(filename);
return viewer.Uri.AbsoluteUri;
}
这只返回Web服务URL。 所以主要的问题是:如何创建页面实例并获取该页面URL?
解决方案可能在这里: http://forums.silverlight.net/forums/p/76977/372282.aspx
“在我的Silverlight应用程序中,我通过传入查询字符串我的id来打开一个新的Web浏览器,页面处理它,查询数据库,检索所选对象并使用响应方法进行渲染。”
我只是不知道该怎么做。
非常感谢任何帮助。
佩德罗
答案 0 :(得分:0)
也许这会有所帮助。
无论你的silverlight对象嵌入在何处,都会将iframe设为id =“xContainer”
从你的silverlight代码中将scr设置为你想要显示的pdf
HtmlPage.Document.GetElementById("xContainer").SetProperty("src", "http://google.com");