Задать вопрос

Как заставить работать Yii2Assets/yii2-pdfjs?

Здравствуйте. Кто нибудь пользовался Yii2Assets/yii2-pdfjs в Advanced версии Yii2? Как заставить его работать? И вообще как использовать библиотеку pdfjs на Yii2? Он выдаёт ошибку в консоле браузера, что не может загрузить /assets/1b17959a/yii2-pdfjs.js

Делал всё как по доке. Установил расширение через композер, подключил модуль в common/config/main.php и затем вызвал виджет во вьюхе
<?= \yii2assets\pdfjs\PdfJs::widget([
  'url'=> 'domain.ru/files/doc/test_pdf.pdf'
]); ?>


Во фрейме ничего нету кроме темно-голубого фона и судя по консоли он пустой.

Данная расширение работает в basic версии yii2, но в advanced отказывается.
  • Вопрос задан
  • 351 просмотр
Подписаться 1 Средний 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Он выдаёт ошибку в консоле браузера, что не может загрузить /assets/1b17959a/yii2-pdfjs.js

А это уже относится к AssetBundle.
прочитайте документацию и измените этот параметр на правильный
'url'=> 'domain.ru/files/doc/test_pdf.pdf'

P.S.
Вообще-то можно обойтись и без плагина. Это в том случае, если нужен только просмотр и возможность скачать pdf файл.
Для этого загрузите файл в директорию web, можно в специально созданную директорию.
На странице, с которой надо открывать файл создаёте такую ссылку:
Html::a('Скачать файл', 'download', ['target' => '_blank'])

В контролере, например в SiteController создаёте действие:
public function actionDownload()
    {
        $path = Yii::getAlias('@webroot') . '/pdf/'; // путь к директории web/pdf в которую загружен файл.
        $file = 'download.pdf';

        return Yii::$app->response->sendFile($path . $file, $file, ['inline' => true]);
    }

Всё, можно открывать файл в новой вкладке, читать и скачивать.
Возможно надо будет подправить правила urlManager.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы