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
Gestire il colore CSS con HWB
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Sostituire la GitHub Action di login su private registry
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Creare gruppi di client per Event Grid MQTT
Utilizzare gRPC su App Service di Azure
Creare una libreria CSS universale: Cards
Disabilitare automaticamente un workflow di GitHub
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Migliorare la scalabilità delle Azure Function con il Flex Consumption
I più letti di oggi
- Creare un adorner personalizzato per le trading cards di PivotViewer in Silverlight 5.0
- Copiare uno Stream con il .NET Framework 4.0
- Supporto alla validazione client-side in una data annotation su ASP.NET MVC 3
- Disabilitare automaticamente un workflow di GitHub (parte 2)
- Dependency injection con Minimal API di ASP.NET Core
- Migliorare l'organizzazione delle risorse con Azure Policy
- Sfruttare una CDN con i bundle di ASP.NET
- Creare applicazioni in real-time con ASP.NET SignalR
- Memorizzare posizione e dimensioni della finestra di una applicazione OOB Silverlight 4.0
- Web Camp - HTML5 per il web di oggi