Windows Phone 8.1 PDF查看器

时间:2015-02-09 12:59:32

标签: pdf windows-phone-8 webview windows-phone-8.1

我正在尝试创建一个Windows Phone 8.1应用,用户可以通过该链接打开pdf文件。假设我想通过按下按钮从我的应用程序下面的链接打开这个pdf文件,而不是在本地下载文件。

http://www.analysis.im/uploads/seminar/pdf-sample.pdf

可以使用WebView完成吗?这个想法是用户将通过在线存储的pdf文件列表并选择一个在本地保存。

2 个答案:

答案 0 :(得分:0)

Windows phone 8.1 webview不支持原生pdf呈现。 你可以看看Mozill pdfJS。希望它有所帮助。

答案 1 :(得分:-1)

我不确定WebView,但您可以在应用程序中原生地从URL中呈现PDF。

您可以创建一个流式文件,并将该文件提供给Windows.Data.PDF提供的PDF渲染器。它的工作原理相当不错。查看我的帖子here以获取详细教程

public PdfDocument Document { get; set; }
public PdfPage CurrentPage { get; set; }

创建流式文件 -

try
{                                                                           
    IRandomAccessStreamReference thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(webURL));
    StorageFile file1 = await StorageFile.CreateStreamedFileFromUriAsync("temp.pdf", new Uri(webURL), thumbnail);
    this.Document = await PdfDocument.LoadFromFileAsync(file1)
}
catch (Exception ex)
{
    MessageDialog dialog = new MessageDialog(ex.Message);
    dialog.ShowAsync();
    return;
}
for (int i = 0; i < Document.PageCount; i++)
{
    await this.RenderPage(i);
}

渲染页面 -

private async Task RenderPage(int index)
{
    this.CurrentPage = this.Document.GetPage((uint)index);
    using (IRandomAccessStream stream = new MemoryStream().AsRandomAccessStream())
    {
        await this.CurrentPage.RenderToStreamAsync(stream);
        BitmapImage source = new BitmapImage();
        source.SetSource(stream);
        Image i = new Image();
        i.Source = source;
        i.Margin = new Thickness(0,5,0,0);
        PagePanel.Children.Add(i);
    }
}