UWP保存PDF文件

时间:2016-05-06 09:50:04

标签: c# xaml pdf win-universal-app windows-10-universal

我目前正在开发一个UWP应用程序。这个应用程序的用户手册是PDF文件。我需要能够在浏览器中打开PDF,并在打开后将其保存到下载文件夹中。 PDF的链接在这里: https://mysite.azurewebsites.net/Content/manuals/01-Introduction.pdf

在我打开它之前,我会检查文件是否已保存到设备上。如果找不到该文件,我将打开PDF,并需要自动将其保存到所需的文件夹(此时只是下载)。 我已经在这里试了一下检查:

        try {
            var ManualFile = await DownloadsFolder.CreateFileAsync("ManualFile.txt", CreationCollisionOption.FailIfExists);
        }
        catch
        {
            var uriBing = new Uri(@"https://mysite.azurewebsites.net/Content/manuals/01-Introduction.pdf");
            var success = await Windows.System.Launcher.LaunchUriAsync(uriBing);
        }

Catch是我在浏览器中打开文件的地方,我现在需要的是将此PDF保存到下载文件夹。 “ManualFile.txt”将更改为保存的PDF的名称,因此一旦它位于Downloads文件夹中,检查就会找到该文件。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

我认为您只需要在程序中复制文件,而不是使用PDF浏览器进行另存为。例如:

    var uriBing = new Uri(@"https://mysite.azurewebsites.net/manuals/01-Introduction.pdf");
    try 
    {
        var ManualFile = await DownloadsFolder.CreateFileAsync("ManualFile.pdf", CreationCollisionOption.FailIfExists);
        var cli = new HttpClient();
        var str = await cli.GetInputStreamAsync(uriBing);
        var dst = await ManualFile.OpenStreamForWriteAsync();
        str.AsStreamForRead().CopyTo(dst);
    }
    catch { }
    var success = await Windows.System.Launcher.LaunchUriAsync(uriBing));