我正在尝试创建一个Windows Phone 8.1应用,用户可以通过该链接打开pdf文件。假设我想通过按下按钮从我的应用程序下面的链接打开这个pdf文件,而不是在本地下载文件。
http://www.analysis.im/uploads/seminar/pdf-sample.pdf
可以使用WebView完成吗?这个想法是用户将通过在线存储的pdf文件列表并选择一个在本地保存。
答案 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);
}
}