我想将pdf的第一页转换为图像以在gridview上显示。选择图像后,pdf会根据我选择的图像打开。如何在Windows Phone 8.1上将pdf的第一页转换为图像?
答案 0 :(得分:0)
我认为一个名为MuPDF的图书馆是一种可行的方式。我找到了一个WinRT(Reading PDF file in Windows store App)的旧示例项目,其中包含一个简单的PDF查看器,它基本上将每个页面转换为WriteableBitmap,然后显示在屏幕上。
以下是执行此操作的代码的一部分:
async Task<WriteableBitmap> ConstructPageAsync()
{
var size = Document.GetPageSize(PageNumber);
var width = (int)(size.X * ZoomFactor);
var height = (int)(size.Y * ZoomFactor);
var image = new WriteableBitmap(IsDoublePage ? width * 2 : width, height);
IBuffer buf = new Buffer(image.PixelBuffer.Capacity);
buf.Length = image.PixelBuffer.Length;
if (IsDoublePage)
{
await Task.Run(() => Document.DrawFirtPageConcurrent(PageNumber, buf, width, height));
await Task.Run(() => Document.DrawSecondPageConcurrent(PageNumber + 1, buf, width, height));
}
else
{
Document.DrawPage(PageNumber, buf, 0, 0, width, height, false);
}
// copy the buffer to the WriteableBitmap ( UI Thread )
using (var stream = buf.AsStream())
{
await stream.CopyToAsync(image.PixelBuffer.AsStream());
}
return image;
}
它需要一些工作才能在Windows Phone 8.1中运行,但我认为这是一个良好的开端。