如何使用c#将字节数组转换为xamarin android中的pdf?

时间:2016-10-20 06:04:46

标签: c# xamarin xamarin.android

我正在尝试使用c#在xamarin android应用程序中将字节转换为pdf。 其中的字节来自webservice。我使用简单的webservice(asmx)来提供数据。

 appLoginService = new EgrasAndroid.AppLoginService();
 byte[] grnbytedata= appLoginService.GetGRNPdf(UserId.ToString(), GRN.ToString());
 string directory = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads);
 string file = Path.Combine(directory, "temp.pdf");
 System.IO.File.WriteAllBytes(file, grnbytedata);

我搜索了很多解决方案,但它们主要用于Web应用程序或java应用程序。

它没有显示任何错误。我在模拟器上运行它,但有下载文件夹中显示的文件。而它采取的路径" / storage / sdcard / Download"下载文件。

有200mb的空白空间,我已经在模拟器中使用了sdcard。

2 个答案:

答案 0 :(得分:2)

问题是: 模拟器本身没有pdf阅读器。所以它无法读取pdf文件。 在模拟器中,您必须下载PDF阅读器。否则它在真实设备中工作正常。

如果设备或仿真器中没有外部存储器,那么我们可以使用以下方式进行内部存储:

  var directory = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
  directory= Path.Combine(directory ,Android.OS.Environment.DirectoryDownloads);
  string file = Path.Combine(directory.ToString(), "temp.pdf");
  System.IO.File.WriteAllBytes(file, grnbytedata);

答案 1 :(得分:0)

检查你的路径。来自Marshmallow的访问文件的方式发生了变化。下面的代码可以解决问题

BSGMetricsService