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
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
C# 12: Cosa c'è di nuovo e interessante
Reactive form tipizzati con modellazione del FormBuilder in Angular
Implementare il throttling in ASP.NET Core
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Criptare la comunicazione con mTLS in Azure Container Apps
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Utilizzare Model as a Service su Microsoft Azure
Sfruttare al massimo i topic space di Event Grid MQTT
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Gestire domini wildcard in Azure Container Apps
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
I più letti di oggi
- annunciato #netstandard 2.1. .NET Core lo supporterà a partire da #netcore3, così come le prossime versione di #xamarin, #mono e #unity.il supporto per #netfx 4.8, invece, non ci sarà. https://aspit.co/bq2
- Steel Style CheckBox per Silverlight 4.0
- Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
- Utilizzare Docker Compose con Azure App Service