C# 在windows phone 8.1上将pdf的第一页转换为图像

C# 在windows phone 8.1上将pdf的第一页转换为图像,c#,pdf,image-processing,windows-phone-8.1,C#,Pdf,Image Processing,Windows Phone 8.1,我想将pdf的第一页转换为要在gridview上显示的图像。选择图像后,pdf将根据我选择的图像打开。如何在windows phone 8.1上将pdf的第一页转换为图像?我认为一个名为MuPDF的库是一个不错的选择。我找到了一个WinRT()的旧示例项目,它包含一个简单的PDF查看器,它基本上将每个页面转换为一个可写的位图,然后显示在屏幕上 下面是代码的一部分,用于执行此操作: async Task<WriteableBitmap> ConstructPageAsync()

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

我认为一个名为MuPDF的库是一个不错的选择。我找到了一个WinRT()的旧示例项目,它包含一个简单的PDF查看器,它基本上将每个页面转换为一个可写的位图,然后显示在屏幕上

下面是代码的一部分,用于执行此操作:

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;
    }
异步任务ConstructPageAsync() { var size=Document.GetPageSize(页码); 变量宽度=(int)(size.X*ZoomFactor); 变量高度=(int)(size.Y*ZoomFactor); var image=新的可写位图(IsDoublePage?宽度*2:宽度,高度); IBuffer buf=新缓冲区(image.PixelBuffer.Capacity); buf.Length=image.PixelBuffer.Length; 如果(IsDoublePage) { 等待任务。运行(()=>Document.DrawFirtPageConcurrent(页码、buf、宽度、高度)); 等待任务。运行(()=>Document.DrawSecondPageConcurrent(页码+1,buf,宽度,高度)); } 其他的 { 文档.绘图页(页码,buf,0,0,宽度,高度,假); } //将缓冲区复制到WriteableBitmap(UI线程) 使用(var stream=buf.AsStream()) { 等待stream.CopyToAsync(image.PixelBuffer.AsStream()); } 返回图像; }
它需要一些工作才能在Windows Phone 8.1中运行,但我认为这是一个良好的开端。

您的应用程序中是否实现了pdf查看器?或者你是否使用第三方应用程序来显示pdf?我使用component one来读取pdf,也许你可以试试这个?不使用按钮也不使用屏幕显示。但是,在我从服务器下载pdf后,pdf会自动将pdf的第一页转换为图像并显示在GridView上我一直使用mupdf将pdf的第一页转换为图像,但一旦我将应用程序提交到windows phone store,应用程序被拒绝,因为MuPDFWinRT.dll容器检查失败,我找不到任何其他可用库。XFINIUM.PDF看起来不错,他们的示例应用程序运行良好。不幸的是,它大约要500美元。