как я могу показать содержимое файла PDF внутри из файла razor

#asp.net-core #pdf #blazor-server-side

#asp.net-ядро #PDF #blazor-на стороне сервера

Вопрос:

Я создал файл документа из Word и экспортировал его в формате pdf. я хочу показать содержимое pdf внутри элемента Div на странице razor. Как я могу показать содержимое pdf со страницы razor. Пожалуйста, не могли бы вы предоставить пример кода, как показать на стороне сервера blazor

Комментарии:

1. Blazor все еще работает в браузере на HTML-странице, которая может использовать JavaScript. Вы можете использовать object embed тег or для отображения файла PDF с URL-адреса, который может быть конечной точкой веб-API. Если вы хотите что-то более интересное, вы можете использовать любую из библиотек JavaScript для просмотра PDF, например pdf.js

2. Для встраивания тега @PanagiotisKanavos требуется установить какую-либо сборку?

Ответ №1:

Если вы сохранили свой PDF-файл непосредственно в своих документах, например, в папке wwwroot / pdf.
wwwroot/pdf/test.pdf

Вы можете отобразить этот PDF-файл с помощью следующей строки html :
< embed src="pdf/test.pdf" style="width=100%; height=2100px;" />
Это предоставит вам средство отображения pdf с параметрами печати!

Если вы хотите пойти дальше, загрузите свой файл, а затем отобразите его, я рекомендую вам проверить это объяснение :
https://www.learmoreseekmore.com/2020/10/blazor-webassembly-fileupload.html
Загрузка файлов PDF работает так же, как и файл Img, вам нужно проверить документацию IBrowserFile.
Вы увидите, что он имеет размер obj и функцию OpenReadStream (), которая поможет вам получить отображаемый URL-адрес для вашего файла (изображения или pdf)

Если приведенный выше сайт закрывается, на нем отображается код загрузки :

 @code{
    List<string> imgUrls = new List<string>();
    private async Task OnFileSelection(InputFileChangeEventArgs e)
    {
        foreach (IBrowserFile imgFile in e.GetMultipleFiles(5))
        {
            var buffers = new byte[imgFile.Size];
            await imgFile.OpenReadStream().ReadAsync(buffers);
            string imageType = imgFile.ContentType;
            string imgUrl = $"data:{imageType};base64,{Convert.ToBase64String(buffers)}";
            imgUrls.Add(imgUrl);
        }
    }
}
  

Этот код был написан Навином Боммиди, автором блога, в котором я нашел этот полезный код

Если вы хотите, как я уже сказал, загрузите PDF-файл, а затем отобразите его.
Вы можете использовать ту же строку html :
< embed src="@imgUrl" style="width=100%; height=2100px;" />
И ваши загруженные файлы будут отображаться.

Пример

Комментарии:

1. встраивание из HTML5? не требуется устанавливать какую-либо сборку?

2. Да, @Kiquenet, ссылка для вставки из HTML5 для получения дополнительной информации о теге «embed»: w3schools.com/tags/tag_embed.asp Мне не нужна была никакая установка, просто добавил строку в свой html и добавил свой PDF-файл в папку «wwwroot».