从链接下载,保存(本地)并显示PDF

时间:2013-09-10 06:43:14

标签: c# pdf windows-phone-8 isolatedstorage pdf-viewer

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

  1. 从服务器端提供的链接(URL)下载PDF文件。
  2. 将下载的PDF文件保存在本地存储中。
  3. 从本地存储打开并显示PDF文件。
  4. 在搜索时,我发现了使用ComponentOne Studio工具集“Studio for Windows Phone”的建议。不幸的是它不是免费的。有没有办法免费实施?

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

1 个答案:

答案 0 :(得分:13)

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

让我们一步一步看看如何做到这一点。

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);