In WinRT è stata introdotta la possibilità di visualizzare documenti PDF direttamente all'interno delle app grazie alla classe PdfDocument presente nel namespace Windows.Data.Pdf.
PdfDocument dispone del metodo LoadFromFileAsync con il quale possiamo creare l'istanza di un oggetto che rappresenta, in memoria, il documento PDF passato come parametro come IStorageFile. Tale oggetto può essere recuperato, ad esempio, attraverso FileOpenPicker.
var pdf = await PdfDocument.LoadFromFileAsync(file); PdfPage firstPage = pdf.GetPage(0); using (var stream = new MemoryStream().AsRandomAccessStream()) { await firstPage.RenderToStreamAsync(stream); var bitmapImage = new BitmapImage(); bitmapImage.SetSource(stream); img.Source = bitmapImage; }
Il metodo GetPage di PdfDocument restituisce un oggetto PdfPage di cui possiamo avere lo stream con il metodo RenderToStreamAsync.
Tale stream può essere usato semplicemente per valorizzare un oggetto BitmapImage da usare come Source per un oggetto Image.
Con il codice dello snippet precedente possiamo vedere come renderizzare a video la prima pagina di un documento PDF.
Con la proprietà PageCount possiamo avere il numero delle pagine totali del documento, da usare come indice nel metodo GetPage.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
La gestione della riconnessione al server di Blazor in .NET 9
Recuperare l'ultima versione di una release di GitHub
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Managed deployment strategy in Azure DevOps
Utilizzare Hybrid Cache in .NET 9
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Cancellare una run di un workflow di GitHub
Utilizzare Container Queries nominali
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Effettuare il refresh dei dati di una QuickGrid di Blazor
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Generare la software bill of material (SBOM) in GitHub