2

我正在开发 Windows phone 8 应用程序。在我的应用程序中,我必须在应用程序中以离线(无网络连接)模式显示 PDF 文件。为此,我必须执行以下操作,

  1. 从服务器端提供的链接( URL )下载 PDF 文件。
  2. 将下载的 PDF 文件保存在本地存储中。
  3. 从本地存储打开并显示 PDF 文件。

在搜索时,我发现了使用 ComponentOne Studio 的工具集“Studio for Windows Phone”的建议。不幸的是,它不是免费的。有什么方法可以免费实施吗?

任何参考、样品或想法将不胜感激。

4

1 回答 1

13

您可以下载 PDF 文件并将其保存在独立存储中,以便以后使用 PDF 查看器应用程序(如 Adob​​e Reader 或 PDF Reader)离线查看。

因此,让我们一步一步地看看如何做到这一点。

1-从服务器端提供的链接( URL )下载 PDF 文件:

WebClient client = new WebClient();
client.OpenReadCompleted += client_OpenReadCompleted;
client.OpenReadAsync(new Uri("http://url-to-your-pdf-file.pdf"));

2-将下载的PDF文件保存在本地存储中:

async void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    byte[] buffer = new byte[e.Result.Length];
    await e.Result.ReadAsync(buffer, 0, buffer.Length);

    using (IsolatedStorageFile storageFile = IsolatedStorageFile.GetUserStoreForApplication())
    {
        using (IsolatedStorageFileStream stream = storageFile.OpenFile("your-file.pdf", FileMode.Create))
        {
            await stream.WriteAsync(buffer, 0, buffer.Length);
        }
    }
}

3- 从本地存储打开并显示 PDF 文件:

// Access the file.
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile pdffile = await local.GetFileAsync("your-file.pdf");

// Launch the pdf file.
Windows.System.Launcher.LaunchFileAsync(pdffile);
于 2013-09-10T10:09:40.723 回答