PDF в Windows Phone 8.1

Поскольку класс PdfDocument доступен только в Windows 8.1, есть ли что-то, что можно использовать в Windows phone 8.1 (среда выполнения Windows) для рендеринга файла PDF внутри моего приложения?

Изменить

MuPDF отлично работает! Но чтобы заставить его работать в проекте Windows Phone, мне пришлось вручную редактировать .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);
}

person frenk91    schedule 17.11.2015    source источник


Ответы (1)


Вы можете попробовать MuPDF: https://github.com/MishaUliutin/MuPDF.WinRT.

MuPDF.WinRT — это облегченная программа для просмотра PDF, XPS и CBZ, а также компонент WinRT для синтаксического анализа/рендеринга.

Если это не работает... см. также эту библиотеку: http://www.xfiniumpdf.com/xfinium-pdf-downloads.html

person Nasser AlNasser    schedule 17.11.2015