#javascript #html #asp.net-mvc #asp.net-core #embed
#javascript #HTML #asp.net-mvc #asp.net-ядро #Внедрить
Вопрос:
Мы пытаемся извлечь PDF-файлы из базы данных в формате массива байтов. когда пользователь нажимает на кнопку display, он должен отображаться в теге embed, который появляется в верхней части экрана. Но когда мы преобразуем массив байтов в base64string, он не появляется в файле embed.
<td>
@Html.DisplayFor(modelItem => item.File)
<a href="#" onclick="OpenPDF();">Display</a>
</td>
Когда пользователь нажимает кнопку отображения, откроется скрипт OpenPDF:
<script type="text/javascript">
function OpenPDF() {
document.getElementById("pdfBack").style.visibility = "visible";
document.getElementById("pdfDialog").style.visibility = "visible";
document.getElementById("pdfFile").setAttribute("src", "data:application/pdf;base64," @Convert.ToBase64String(item.File));
}
</script>
И это тег embed:
<embed id="pdfFile" type="application/pdf" src="" width="100%" height="100%" />
Это не работает! тег embed откроется после нажатия кнопки, но внутри mebed нет файла pdf.
Пожалуйста, помогите нам, как нам справиться с этой проблемой
Ответ №1:
Чтобы правильно отобразить PDF файл непосредственно в браузере, вам необходимо использовать какой-либо просмотрщик PDF, например Google docs, или вы можете использовать такие библиотеки, как PDF.js .
- Использование Google doc ->
<iframe src=" http://docs.google.com/gview?url=http://path.com/to/your/pdf.pdfamp;embedded=true" ></iframe>
Чтобы это сработало, вам нужно разместить свои PDF-файлы где-нибудь в Интернете.
- Вы также можете использовать PDF.js http://mozilla.github.io/pdf.js/examples / проверьте примеры, чтобы это работало на вас.
Чтобы решение для встраивания работало, вам нужно будет разместить свой файл где-то уже и указать этот путь в вашем src.
<script type="text/javascript">
function OpenPDF() {
document.getElementById("pdfBack").style.visibility = "visible";
document.getElementById("pdfDialog").style.visibility = "visible";
document.getElementById("pdfFile").setAttribute("src", "http://yourwebsite.com/" fileName );
}
</script>
<embed src="" width="500" height="375"
type="application/pdf">
Я бы предложил использовать PDF.js если размещение файла является проблемой.
Кроме того, Chrome на Android не поддерживает встраивания с файлами PDF, поэтому, если вы ожидаете, что пользователи Android используют PDF.js или google docs.