在Windows Phone 8.1上将pdf的第一页转换为图像

时间:2015-05-13 17:15:33

标签: c# pdf image-processing windows-phone-8.1

我想将pdf的第一页转换为图像以在gridview上显示。选择图像后,pdf会根据我选择的图像打开。如何在Windows Phone 8.1上将pdf的第一页转换为图像?

1 个答案:

答案 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中运行,但我认为这是一个良好的开端。