2015-11-17 3 views
0

Поскольку класс 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); 
} 

ответ

1

Вы можете попробовать MuPDF: .

MuPDF.WinRT представляет собой легкий PDF, XPS и зритель CBZ и анализатор/рендеринга компонент WinRT.

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