DamithSL Ответов: 1

Отображение PDF-документа в приложении android


У меня есть.net web service который возвращает PDF файл как byte[]

[WebMethod]
    public byte[] GetFile(string filename)

{
        BinaryReader binReader = new BinaryReader(File.Open(Server.MapPath(filename), FileMode.Open, FileAccess.Read));
        binReader.BaseStream.Position = 0;
        byte[] binFile = binReader.ReadBytes(Convert.ToInt32(binReader.BaseStream.Length));
        binReader.Close();
        return binFile;
}



Я знаю, как вызвать веб-сервис с android. мой вопрос заключается в том, как отобразить этот байт[] в формате PDF в приложении android?

1 Ответов

Рейтинг:
6

cigwork

Самое простое решение, которое я знаю, если уже установлен просмотрщик PDF, - это сохранить ваш байтовый массив в файл и запросить отображение файла.

Что-то вроде этого...

// Java. If you're working with a C# 'droid tool you may need to tinker with the
//       syntax.

// filePath the name and directory where the byte array was saved.
File pdfFile = new File(filePath);

if (pdfFile.exists()) {
  Uri path = Uri.fromFile(pdfFile);
  Intent intent = new Intent(Intent.ACTION_VIEW);
  intent.setDataAndType(path, "application/pdf");
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  // If requesting from a fragment...
  getActivity().startActivity(intent);
  // If requesting from an activity...
  // this.startActivity(intent);
}


Конечно, затем вам нужно будет убрать файл, когда действие просмотра PDF-файлов будет завершено. Возможно, это можно сделать с помощью startActivityForResult вместо startActivity.