none
如何在 Metro 应用内嵌现实 PDF 而不打开 Windows Reader? RRS feed

答案

全部回复

  • 内嵌目前是不能实现的,除非有第三方推出了能够阅读PDF的WinRT API, 然后你自己去实现能够解析和阅读PDF内容。

    “现实打开 PDF 而不打开 Windows Reader。”

    这个问题是这样子的,Windows 8 Metro 应用能否打开一种文件,这个应用必须得关联这种文件类型,之所以我们去打开PDF总是Windows Reader,是因为系统默认关联了Windows Reader为打开PDF的应用。  如果我们自己要打开PDF文件,我们要设置App 的 appxmanifest 〉Declarations, 添加一个 File Type Association 到PDF类型:

    然后,你通过File Access方法去打开文件,注意文件存放的位置,来决定是否需要用 File Pickers (http://msdn.microsoft.com/en-us/library/windows/apps/hh465174.aspx) 还是 DocumentLibrary 和 PictureLibrary 的访问。 File Access Sample: http://code.msdn.microsoft.com/windowsapps/File-access-sample-d723e597

    最后你有了解析PDF的API, 你就可以读出PDF内容等。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年4月11日 8:58
    版主
  • 内嵌目前是不能实现的,除非有第三方推出了能够阅读PDF的WinRT API, 然后你自己去实现能够解析和阅读PDF内容。

    “现实打开 PDF 而不打开 Windows Reader。”

    这个问题是这样子的,Windows 8 Metro 应用能否打开一种文件,这个应用必须得关联这种文件类型,之所以我们去打开PDF总是Windows Reader,是因为系统默认关联了Windows Reader为打开PDF的应用。  如果我们自己要打开PDF文件,我们要设置App 的 appxmanifest 〉Declarations, 添加一个 File Type Association 到PDF类型:

    然后,你通过File Access方法去打开文件,注意文件存放的位置,来决定是否需要用 File Pickers (http://msdn.microsoft.com/en-us/library/windows/apps/hh465174.aspx) 还是 DocumentLibrary 和 PictureLibrary 的访问。 File Access Sample: http://code.msdn.microsoft.com/windowsapps/File-access-sample-d723e597

    最后你有了解析PDF的API, 你就可以读出PDF内容等。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    谢谢

    请问比如我从程序中调用系统默认的 PDF 阅读器打开了PDF,那么有没有办法可以看完后返回程序的方法,如 Windows Phone 7 中按 Back 按键。

    还有 如何在程序中直接调用系统默认程序打开  PDF 呢?
    • 已编辑 bjshdq 2012年4月12日 5:03
    2012年4月12日 4:43
  • 很遗憾.Windows 8 Metro是没有直接的进程间通信方法的,所以你无法让Reader好了之后通知你的App, 这个只有让用户自己去切换回你的App。 

    >> 如何在程序中直接调用系统默认程序打开  PDF 呢?

    看这篇文档:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh779671.aspx  用到了 Launcher.LaunchFileAsync(IStorageFile, LauncherOptions) 这个API。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年4月12日 5:09
    版主