Как отобразить PDF из URL, используя pdfjs xamarin формы - PullRequest
0 голосов
/ 03 мая 2018

Я работал с pdfjs и он нормально работает с локальным хранилищем pdf, но у меня есть еще одна проблема: мне нужно отобразить pdf из WEB API, так как я сохранил двоичные данные pdf, которые мне нужно отобразить ?? это мой код

public pdfjsPage(string url)
{
    InitializeComponent();

    var localPath = string.Empty;

    if (Device.RuntimePlatform == Device.Android)
    {
        var dependency = DependencyService.Get<ILocalFileProvider>();

        if (dependency == null)
        {
            DisplayAlert("Error loading PDF", "Computer says no", "OK");
            return;
        }

        var fileName = Guid.NewGuid().ToString();

        // Download PDF locally for viewing
        using (var httpClient = new HttpClient())
        {
            var pdfStream = Task.Run(() => httpClient.GetStreamAsync(url)).Result;

            localPath =
                Task.Run(() => dependency.SaveFileToDisk(pdfStream, $"{fileName}.pdf")).Result;
        }

        if (string.IsNullOrWhiteSpace(localPath))
        {
            DisplayAlert("Error loading PDF", "Computer says no", "OK");
            return;
        }
    }

    if (Device.RuntimePlatform == Device.Android)
        PdfView.Source = $"file:///android_asset/pdfjs/web/viewer.html?file={WebUtility.UrlEncode(localPath)}";
    else
        PdfView.Source = url;
}

Это работает с локальным pdf, но у меня есть WEB API URL, и мне нужно получить pdf оттуда онлайн.

Это ссылка, откуда я ее получаю: http://veezo2007pkk.somee.com/api/DiagnosticDetail/RetrieveFile/1

1 Ответ

0 голосов
/ 04 мая 2018

После сохранения файла PDF на устройстве укажите путь к намерению.

//Example
var fileName = "/storage/emulated/0/yourPDF.pdf"
Uri pdfPath = Uri.FromFile(new File(fileName));
Intent intent = new Intent(Intent.ActionView);
intent.SetDataAndType(pdfPath, "application/pdf");
intent.SetFlags(ActivityFlags.NewTask);                    
Android.App.Application.Context.StartActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...