Imprimindo um tópico como PDF

:bookmark: This guide explains how to print/download any Discourse topic to PDF.

:person_raising_hand: Required user level: All users

Discourse allows you to generate a PDF of a topic by using the Print topic keyboard shortcut. The shortcut for your system is noted in the keyboard shortcut reference modal that pops up when you press the ? key while browsing a Discourse site.

  • Most operating systems: ctrl+p
  • MacOS: +p

Using the shortcut will open a new browser window where you can optionally choose to print the topic as a PDF. The interface will vary by browser, but it will look something like the example below:

Additional Information

  • Discourse intercepts the keyboard shortcut and renders the print view server-side to ensure the entire topic is printed.

  • The same functionality can be triggered by appending /print to the end of a topic’s URL.

  • You can technically select the print option in your browser’s File menu as well, but you will likely need to scroll from the first post to the last post of the topic to ensure all of the posts have loaded into view.

  • There is a max prints per hour per user site setting that allows an admin to set a maximum number of /print page impressions per hour per user. It defaults to 5 and can be set to 0 to disable Discourse’s topic printing functionality (printing from the browser menu still works).

Last edited by @tshenry 2024-08-01T01:14:43Z

Last checked by @hugh 2024-07-02T05:14:01Z

Check documentPerform check on document:
30 curtidas

É muito bom exportar todo o conteúdo para um arquivo PDF.

Embora eu tenha achado que o formato do conteúdo muda ligeiramente ao usar subitens.

Como a saída deste conteúdo

  • Nível1
    • Nível2
    • Nível2
      • Nível3
      • Nível3

Mas ao imprimir em um arquivo PDF, todos os itens serão alinhados à esquerda, como se todos fossem itens de nível 1.

Há algo que possamos fazer, como definir algo, para imprimir exatamente como está na visualização HTML?

4 curtidas

Além disso, é possível imprimir apenas uma única postagem? Recebo um erro se eu tentar https://meta.discourse.org/t/printing-a-topic-as-a-pdf/160061/1/print

Isso seria muito útil para Tópicos que têm um OP valioso e um monte de respostas menos valiosas.

Atualmente não. Tobias compartilhou que a equipe pode analisar isso em algum momento.

5 curtidas

Bem, eu tenho uma maneira de resolver isso.

Eu costumo fazer uma nova postagem para imprimir.

Em seguida, seleciono várias postagens e as escrevo em um novo tópico em uma sequência lógica, e então imprimo este tópico completo. Depois, excluo o tópico completo.

Como eu quero escolher a 1ª, 3ª, 4ª, 5ª, 7ª, 12ª postagem, para formar um tópico de sequência lógica, que será uma história completa, e então imprimir esta história selecionada.


Ótimo, esta deve ser a melhor maneira!

1 curtida

Isso parece eficaz, mas um pouco destrutivo. Acho que não é muito difícil remontar Tópicos hoje em dia, devido a este recurso:

1 curtida

Ainda precisamos documentar isso, mas, por enquanto, dê uma olhada nos seguintes componentes de tema:

10 curtidas

Você pode postar um ss de cada?

Encontrei a postagem de impressão na chave inglesa. Mas não consigo encontrar outro botão

Instalei ambos.

Recebo um pequeno ícone de impressora no canto superior direito. No entanto, ele não mostra se o DiscoTOC está ativo:

Pessoalmente, eu acharia melhor se estivesse também nas opções do tópico na parte inferior (ou, melhor ainda, poderíamos escolher entre os dois sites).

5 curtidas

Então, sem botão no celular?

Pelo menos não que eu tenha notado. Eu tenho a opção de imprimir postagem única no menu de ferramentas da postagem.

2 curtidas

Atualizei minha postagem acima com capturas de tela e alguns detalhes extras.

5 curtidas

Você acha que este suporte se tornaria #oficial? Coincidentemente, hoje houve interesse em exportar/compartilhar um tópico :smiley:

3 curtidas
  • GitHub - discourse/discourse-topic-print-component 3 (Adiciona um botão na linha do tempo do tópico para realizar a mesma ação do atalho de teclado. Exibe para todos os usuários. Apenas para desktop.)

Existe uma maneira de adicionar suporte para dispositivos móveis?

2 curtidas

Isso é útil quando você está com pressa. É muito eficiente.

3 curtidas

Eu também gostaria de saber

3 curtidas

Já existe suporte para celulares, para iPhones de qualquer forma (a captura de tela é do iPad/DiscourseHub, embora)

Não deixe que linguagens estranhas assustem você. Mas a mesma funcionalidade é encontrada em todos os sistemas móveis, tenho certeza.

Portanto, o Discourse não precisa oferecer uma funcionalidade que um dispositivo já oferece. E não deveria fazer isso.

Não vejo isso no Android

Um pouco de mente fechada, já que o desktop já oferece Ctrl+P. Poder-se-ia chegar à mesma conclusão de que adicionar um botão direto é desnecessário. :wink:

1 curtida

Será que os androides são realmente tão limitados :thinking: Quer dizer, isso tem sido funcionalidade básica há eras.

Pode ser de mente fechada, mas não vejo absolutamente nenhum sentido em ter menus sobrepostos. Porque então o Discourse também deveria oferecer corte, cópia e colagem puros.

Mas se, ou devo dizer quando, houver sistemas que não ofereçam pseudo-impressão/salvamento como PDF, então isso é necessário.

2 curtidas

:sweat_smile: Aguardem, pessoal, ainda nem temos tópicos de documentação para esses dois componentes neste momento! Vamos guardar qualquer outro feedback/solicitação para quando pudermos cuidar disso. Enquanto isso, eles são de código aberto e licenciados sob a licença MIT, então sinta-se à vontade para fazer um fork e/ou enviar um pull request se tiver necessidades particularmente urgentes.

7 curtidas

Acho que finalmente encontrei uma boa solução

  • Não precisamos gerar em PDF.
    Podemos gerar a página da web completa como um arquivo HTML.
    Basta usar o SingleFile na Chrome Webstore, ele fará o download e comprimirá a página da web completa como está e a salvará em um arquivo HTML.

  • Se você quiser imprimir em PDF, use o arquivo HTML baixado para imprimir, e ele manterá todos os formatos do arquivo HTML.

2 curtidas