Печать темы в формате PDF

:bookmark: В этом руководстве объясняется, как распечатать или скачать любую тему Discourse в формате PDF.

:person_raising_hand: Требуемый уровень доступа: Все пользователи

Discourse позволяет генерировать PDF-файл темы с помощью сочетания клавиш Печать темы. Сочетание клавиш для вашей системы указано в модальном окне справки по сочетаниям клавиш, которое появляется при нажатии клавиши ? во время просмотра сайта Discourse.

  • Большинство операционных систем: ctrl+p
  • MacOS: +p

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

Дополнительная информация

  • Discourse перехватывает сочетание клавиш и отображает печатную версию на стороне сервера, чтобы гарантировать печать всей темы.

  • Аналогичную функциональность можно активировать, добавив /print в конец URL-адреса темы.

  • Технически вы также можете выбрать опцию печати в меню Файл вашего браузера, но, скорее всего, вам придется прокрутить страницу от первого до последнего сообщения темы, чтобы убедиться, что все сообщения загрузились.

  • Существует настройка сайта max prints per hour per user (максимальное количество печатей в час на пользователя), которая позволяет администратору установить максимальное количество показов страницы /print в час на пользователя. По умолчанию значение равно 5, его можно установить в 0, чтобы отключить функцию печати тем в Discourse (печать через меню браузера при этом продолжает работать).

30 лайков

Отлично, что есть возможность выводить всё содержимое в PDF-файл.

Однако я заметил, что при использовании вложенных пунктов форматирование немного меняется.

Например, вывод такого содержимого:

  • Уровень 1
    • Уровень 2
    • Уровень 2
      • Уровень 3
      • Уровень 3

Но при печати в PDF все пункты выравниваются по левому краю, как будто все они относятся к уровню 1.

Есть ли способ что-то настроить, чтобы печать выглядела так же, как в HTML-представлении?

4 лайка

Также возможно ли распечатать только один пост? У меня возникает ошибка, если я пытаюсь открыть https://meta.discourse.org/t/printing-a-topic-as-a-pdf/160061/1/print

Это было бы очень полезно для тем, где есть ценный первый пост и множество менее ценных ответов.

В данный момент — нет. Тобиас сообщил, что команда, возможно, рассмотрит эту возможность в будущем.

5 лайков

Что ж, у меня есть способ решить эту проблему.

Обычно я создаю новую тему для печати.

Затем выбираю несколько постов, размещаю их в новой теме в логической последовательности и печатаю всю эту тему. После этого удаляю её.

Например, я хочу выбрать 1-й, 3-й, 4-й, 5-й, 7-й и 12-й посты, чтобы составить логичную последовательность, которая станет законченной историей, и затем распечатать эту выбранную историю.


Отлично, это, должно быть, лучший способ!
Printing a topic as a PDF - #19 by nathank

1 лайк

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

1 лайк

Нам ещё предстоит оформить документацию по этому, но пока посмотрите на следующие компоненты темы:

10 лайков

Можешь выложить скриншот каждого?

Я нашел кнопку «Печать» в настройках поста, но не могу найти остальные кнопки.

Оба установлены.

У меня есть небольшой значок принтера в правом верхнем углу. Однако он не показывает, активен ли DiscoTOC:

Лично я считаю, что было бы лучше, если бы он также отображался в параметрах темы внизу (или, что ещё лучше, мы могли бы выбирать между двумя вариантами).

6 лайков

Понятно, значит, на мобильном нет кнопки?

По крайней мере, я её не заметил. У меня есть функция печати отдельного поста в меню гаечного ключа поста.

2 лайка

Я обновил свой пост выше, добавив скриншоты и дополнительные детали.

5 лайков

Как вы думаете, эта поддержка станет #официальной? Сегодня, кстати, возник интерес к экспорту/обмену темой :smiley:

4 лайка
  • GitHub - discourse/discourse-topic-print-component 3 (Добавляет кнопку в таймлайн темы для выполнения того же действия, что и сочетание клавиш. Отображается для всех пользователей. Только для настольных версий.)

Есть ли способ добавить поддержку мобильных устройств?

2 лайка

Это полезно, когда вы спешите. Это очень эффективно.

3 лайка

Я тоже хотел бы это узнать.

3 лайка

Поддержка мобильных устройств уже есть, по крайней мере для iPhone (хотя скриншот сделан на iPad/DiscourseHub):

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

Поэтому Discourse не должен предлагать функцию, которую устройство уже предоставляет. И не должен этого делать.

Я не вижу этого на Android

Это немного узколобо: десктоп уже предлагает Ctrl+P. Можно было бы сделать такой же вывод и о том, что прямая кнопка излишня. :wink:

1 лайк

Разве андроиды действительно настолько ограничены :thinking:? Я имею в виду, что это базовый функционал уже много лет.

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

Но если — или, вернее, когда — существуют системы, которые не поддерживают псевдо-печать или сохранение в PDF, то это действительно необходимо.

2 лайка

:sweat_smile: Держитесь, ребята! На данный момент у нас даже нет тем документации для этих двух компонентов! Давайте пока отложим любые дальнейшие отзывы или запросы до того момента, когда мы сможем этим заняться. Тем временем эти компоненты имеют открытый исходный код и лицензию MIT, поэтому вы можете свободно создавать форки и/или отправлять запросы на включение изменений (pull request), если у вас есть особенно срочные потребности.

7 лайков

Я думаю, наконец, я нашел хорошее решение

  • Нам не нужно выводить результат в формате PDF.
    Мы можем сохранить полную веб-страницу как HTML-файл.
    Просто используйте расширение SingleFile из магазина Chrome, оно загрузит и сохранит всю веб-страницу в виде HTML-файла, сохранив её исходный вид.

  • Если вы хотите распечатать в PDF, используйте загруженный HTML-файл для печати — при этом все стили из HTML-файла сохранятся.

2 лайка