Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Laravel
Войти
Регистрация
Восстановить пароль
 
progervova
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 25
1

Отобразить pdf на странице

13.05.2019, 16:37. Просмотров 348. Ответов 0
Метки нет (Все метки)

В контроллере сделал метод:
PHP
1
2
3
4
5
6
public function getPdf(Request $request)
{
  $file = public_path() . "/e.pdf";
  $headers = ['Content-Type' => 'application/pdf'];
  return response()->download($file, 'test.pdf', $headers);
}
Во вьюхе разместил код:
Javascript
1
2
3
4
5
window.axios.get('api/get_pdf').then((resp) => {
  let file = new Blob([resp.data], {type: 'application/pdf'});
  let fileURL = URL.createObjectURL(file);
  window.open(fileURL);
}
Страница отображается, с нужным количеством листов, но совершенно пустых. При сохранении в файл, кодировка - utf-8, (изначальный файл ANSI, и в браузере отображается нормально) но символы перекодированы некорректно, отображаются в виде квадратиков. Пробовал, добавлял ;charset=windows-1252 и ;charset=utf-8 и на сервер и в браузер, в разных комбинациях, но ничего не изменилось. Что я делаю не так?

Добавлено через 3 часа 9 минут
Нашел на просторах интернета рекомендацию, как поступать в данном случае:
Javascript
1
2
3
4
5
                    let uint8 = new Uint8Array(resp.data.length);
                    for (let i = 0; i < uint8.length; i++) {
                        uint8[i] = resp.data.charCodeAt(i);
                    }
                    let file = new Blob([uint8], {type: 'application/pdf'});
Стало немного лучше, корректно отображается заголовок, большая часть квадратиков заменилась на требуемые символы, скачанный файл отображается в ANSI кодировке, но часть символов все равно некорректна, и странички по прежнему пустые.

Добавлено через 2 часа 7 минут
Ещё делают таким образом:
Javascript
1
2
3
                    let uint8array = new TextEncoder().encode(resp.data);
                    let string = new TextDecoder('ascii').decode(uint8array);
                    let file = new Blob([string], {type: 'application/pdf'});
Но тоже без требуемого результата.

Добавлено через 1 час 40 минут
Ура!!! Нашел!!!! целый день рыскал по интернетам.... Вот так РАБОТАЕТ:
Javascript
1
window.axios.get('api/get_pdf', {responseType: 'arraybuffer'})
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2019, 16:37
Ответы с готовыми решениями:

С помощью таймера отобразить на странице текущее время, день недели и дату на странице
Здравствуйте. Я начинающий помогите пожалуйста с заданием. Буду признателен. С помощью таймера...

Отобразить картинку из pdf
День добрый. Есть картинка, сохраненная в виде пдф файла (на мой взгляд, дикое извращение, но...

В каком компоненте отобразить PDF
Вопрос: возможно ли в какой-то компонент Delphi считать *.pdf файл???

Как в диалоге отобразить только .pdf файлы?
OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog; openFileDialog1-&gt;ShowDialog();...

Отобразить PDF документ внутри приложения на fragment
Доброго дня :senor: Я знаю абсолютный путь до документа pdf (локальное хранилище), его нужно по...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2019, 16:37

Открыть pdf на нужной странице
Ребята, есть вопрос. У меня открываются несколько pdf(журналы) в программе. Есть форма, где в...

Открыть pdf на заданной странице
Здравствуйте. Как открыть pdf на определенной странице? Вот допустим я открываю так:...

Отобразить url на странице
Здравствуйте многоуважаемые формумчане! У меня есть ссылка на сайт, выглядит она примерно так:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru