Встроенные предпросмотры PDF

У меня возникло 3 проблемы:

  1. Как показать PDF-файл всем пользователям (независимо от того, авторизованы они или нет)?

  2. Можно ли показывать PDF-файлы по внешним URL-адресам?

  3. Почему при клике на ссылку PDF-файл автоматически загружается вместо того, чтобы открываться в браузере?

1 лайк

Может ли кто-нибудь, кто использует этот компонент вместе с лайтбоксами iframe, подтвердить, что над предпросмотром PDF-файла всё ещё отображаются «стрелки для разворачивания на весь экран»?

Для справки: в 2023 году это работало…

1 лайк

Нет. Эта функция недоступна.

2 лайка

Мы были бы очень рады, если бы вы могли это сделать, потому что это было бы чрезвычайно полезно.

3 лайка

Мы используем этот TC на нашем сайте и находим его очень полезным. Сегодня я создал и опубликовал тему, включающую PDF-файл, и это привело к такому чудовищному результату: встроенный PDF, который можно полностью просматривать через превью ссылки.

1 лайк

Можно ли включить это для отдельных категорий? Я создаю тему со списком множества файлов, и неудобно, что PDF-файл разворачивается автоматически. Меня устроит даже ручной способ отключить это, например, вставка специального символа.

1 лайк

Что именно должно предотвращать срабатывание? Как вы хотите, чтобы PDF-файлы отображались в выбранных категориях?

1 лайк

Мне нужен способ блокировать отображение PDF-файлов внутри страницы. В случае блокировки PDF должен выглядеть как любое другое вложение к сообщению.

Как обычная ссылка? Или как Onebox? Или как-то иначе?

1 лайк

Вам достаточно вставить пробел перед именем файла в ссылке на PDF, и всё заработает. Это не очень хорошо задокументировано (я только что исправил это), но мне удалось добавить это в TC по той же причине некоторое время назад.

Мне больше нравилось бы, если бы это делалось так же, как с Oneboxes — то есть пробел в markdown перед ссылкой, но и этот вариант работает вполне хорошо.

7 лайков

Здравствуйте,

У меня возникла эта ошибка с плагином.

Не знаете, в чём может быть причина?

https://forums.ffjdr.org/t/test-dun-pdf-en-visibilite/2691

1 лайк

Это происходит со всеми PDF-файлами или только с этим?

Вы пробовали добавить домен вашего форума в allowed internal hosts?

2 лайка

Да, со всеми PDF-файлами.

Я только что добавил это в «внутренний хост»… без улучшений.

Спасибо за ваш совет :slight_smile:

В противном случае я просто обнаружил это сообщение об ошибке в консоли Chrome:

initialize-for-pdf-preview.js:84 Отказано во встраивании ‘blob:https://forums.ffjdr.org/79cf20bf-65ac-460f-b0b0-73c10bf85890’, так как это нарушает следующую директиву политики безопасности контента: “default-src ‘self’ data: https:”. Обратите внимание, что ‘frame-src’ не был явно установлен, поэтому в качестве резервного варианта используется ‘default-src’.

Загрузка локального ресурса не разрешена: blob:https://forums.ffjdr.org/79cf20bf-65ac-460f-b0b0-73c10bf85890

2 лайка

Проверьте ваш allowed onebox iframes — он должен быть *

3 лайка

Я только что установил этот компонент. Вот шаги, которые я предпринял для его установки. Моя среда: S3 (Digital Ocean Spaces) и CDN (Bunny.net).

Использование панели разработчика в Chrome (F12) значительно поможет в настройке. Перейдите на вкладку «Network» (Сеть), чтобы проверить, блокируются ли PDF-файлы из-за CORS.

Настройка Digital Ocean

  1. Перейдите в настройки Spaces (Spaces Settings) и нажмите «Add CORS Configurations» (Добавить конфигурации CORS).
  2. Настройки:
Origin:   Ваш URL Discourse — используйте полный https://discourse.url
Allowed Methods:  GET и HEAD
Добавьте следующие заголовки:
      Access-Control-Allow-Methods 
      Access-Control-Allow-Origin
      Origin
      Range
Access Control Max Age: 0
  1. Мой экран выглядел так:

  2. Сохраните и проверьте через главный экран.

Настройка CDN (Bunny.net)

Мне пришлось указать CDN отправлять заголовки CORS для файлов типа *.pdf.

  1. Выберите ваш CDN и найдите опцию «Headers» (Заголовки).
  2. Включите опцию «Add CORS Headers» (Добавить заголовки CORS).
  3. Добавьте PDF в список расширений файлов.
  4. Сохраните.

После выполнения этих двух настроек всё заработало отлично.

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

1 лайк

Я имею в виду дополнительную опцию «открыть в новой вкладке» для встроенных PDF-файлов. Похоже, @nathank так и не нашёл на это времени?

Для нас это всё ещё актуальная проблема, так как мы используем Discourse как корпоративную интранет-сеть.

1 лайк

Я был очень занят, а так как я в лучшем случае любитель-самоучка, мне бы это заняло вечность. Да и потом я переключился на другие задачи…

Может быть, стоит сформулировать это в канале #feature или даже рассмотреть возможность оплаты работы разработчика для создания PR по этой задаче.

2 лайка

Я получил уведомление об устаревании для этого отличного компонента темы в консоли разработчика браузера:

[THEME 30 ‘Предварительный просмотр PDF’] Уведомление об устаревании: Доступ к site.mobileView или site.desktopView во время инициализации сайта может привести к ошибкам и несоответствиям при изменении размера окна браузера. Пожалуйста, перенесите эти проверки в компонент, трансформер или обратный вызов API, который выполняется во время рендеринга страницы. [устарело с версии Discourse 3.5.0.beta9-dev] [id устаревания: discourse.static-viewport-initialization] [информация: Designing for Different Devices (Viewport Size, Touch/Hover, etc.)]

3 лайка

Я устранил указанное выше уведомление об устаревании в своём PR в этой просьбе о добавлении функции, которая улучшает поведение ссылок на PDF-файлы, чтобы они всегда открывались в новой вкладке — это решает несколько проблем, поднятых в теме.

По сути, это означает, что на мобильных устройствах теперь есть доступ к содержимому PDF в одно нажатие (ранее требовалось несколько нажатий, ожидание и т. д.), а также в настольных версиях, когда это необходимо.

Чуть не по правилам совмещать исправление и новую функцию, но мне нужно было изменить определение мобильных устройств, чтобы изменить поведение.

5 лайков

Останется ли предпросмотр PDF прямо в интерфейсе на настольных устройствах?