我正在使用Xamarin.Forms-UWP。 我想將存儲在數據庫中的字節數組轉換爲Windows手機的pdf。 我知道如何轉換 var base64Binarystr =「ABCDS」 byte [] bytes = Convert.FromBase64String(base64Binarystr);將字節數組轉換爲用於UWP的pdf
任何人都可以幫助如何顯示PDF?只是一個指針 - 我有多個PDF文件,所以我不能將所有文件添加到應用程序或存儲在磁盤上。
欣賞任何關於此的指針。 謝謝!
我正在使用Xamarin.Forms-UWP。 我想將存儲在數據庫中的字節數組轉換爲Windows手機的pdf。 我知道如何轉換 var base64Binarystr =「ABCDS」 byte [] bytes = Convert.FromBase64String(base64Binarystr);將字節數組轉換爲用於UWP的pdf
任何人都可以幫助如何顯示PDF?只是一個指針 - 我有多個PDF文件,所以我不能將所有文件添加到應用程序或存儲在磁盤上。
欣賞任何關於此的指針。 謝謝!
每個收到的文件都可以用相同的名稱存儲(我使用「my.pdf」),那麼存儲的文件太多沒有風險。如果你需要緩存文件,那麼你可以給出不同的名字。雖然我試過ms-appdata,但pdf查看器並不想顯示來自Local,Temp或Downloads文件夾的文件,所以我必須將文件從Local文件夾移動到Assets,以便通過ms- APPX-網絡。 Downloads文件夾在CreationCollisionOption.ReplaceExisting方面也存在問題,如果文件已經存在而不是替換它,但是Local和Temporary文件夾的行爲正確,則它表示無效的參數。
/////////////// store pdf file from internet, move it to Assets folder and display ////////////////////
//bytes received from Internet. Simulated that by reading existing file from Assets folder
var pdfBytes = File.ReadAllBytes(@"Assets\Content\samplepdf.pdf");
try
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder; //or ApplicationData.Current.TemporaryFolder
StorageFile pdfFile = await storageFolder.CreateFileAsync("my.pdf", CreationCollisionOption.ReplaceExisting);
//write data to created file
await FileIO.WriteBytesAsync(pdfFile, pdfBytes);
//get asets folder
StorageFolder appInstalledFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder assetsFolder = await appInstalledFolder.GetFolderAsync("Assets");
//move file from local folder to assets
await pdfFile.MoveAsync(assetsFolder, "my.pdf", NameCollisionOption.ReplaceExisting);
}
catch (Exception ex)
{
}
Control.Source = new Uri(string.Format("ms-appx-web:///Assets/pdfjs/web/viewer.html?file={0}", "ms-appx-web:///Assets/my.pdf")); //local pdf
再次感謝您的幫助!它像冠軍一樣工作! – XamDev
沒問題。祝好運與其餘 –
這個問題是https://stackoverflow.com/questions/44705923/display-local-pdf-file-in-webview-control-displays-blank-pdf-file/ –
只寫字節相關[]臨時文件,並使用您昨天詢問的相同方法顯示它 – Jason
@Jason不幸的是,它不適用於臨時文件。它必須被移到資產或觀衆否認顯示它。不知道爲什麼。沒有時間挖掘它的javascript代碼 –