Поскольку класс PdfDocument доступен только в Windows 8.1, есть что-то использовать на телефоне Windows 8.1 (время выполнения Windows) для рендеринга pdf-файла внутри моего приложения?Pdf в Windows Phone 8.1
Редактировать
MuPdf Работает отлично! Но чтобы заставить его работать в телефоне проекта Windows, я должен был вручную редактировать .csproj
я должен был добавить этот код:
<Reference Include="MuPDFWinRT, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL" Condition="'$(Platform)'=='x86'">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\MuPDF\x86\MuPDFWinRT.winmd</HintPath>
</Reference>
<Reference Include="MuPDFWinRT, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL" Condition="'$(Platform)'=='ARM' ">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\MuPDF\ARM\MuPDFWinRT.winmd</HintPath>
</Reference>
и это пример использования:
IBuffer readBuffer = pdf.AsBuffer();
var pdfDocument = Document.Create(readBuffer, DocumentType.PDF, (int)Windows.Graphics.Display.DisplayInformation.GetForCurrentView().LogicalDpi);
List<WriteableBitmap> imageList = new List<WriteableBitmap>();
for (int i = 0; i < pdfDocument.PageCount; i++)
{
var size = pdfDocument.GetPageSize(i);
var width = size.X;
var height = size.Y;
var image = new WriteableBitmap(width, height);
IBuffer buf = new Buffer(image.PixelBuffer.Capacity);
buf.Length = image.PixelBuffer.Length;
pdfDocument.DrawPage(i, buf, 0, 0, width, height, false);
using (var stream = buf.AsStream())
{
await stream.CopyToAsync(image.PixelBuffer.AsStream());
}
imageList.Add(image);
}