Tutorial: Controle de Acesso à Impressão com Doconut
8/21/2026

Tutorial: Controle de Acesso à Impressão com Doconut

Um guia passo a passo para impressão com Doconut, autorização controlada pela aplicação, controles do visualizador e testes sem depender de trechos de API inventados.

O catálogo de recursos do Doconut lista impressão pelo navegador e exportação para PDF como capacidades do visualizador. Controlar o acesso a eles ainda requer duas decisões separadas: se o Doconut apresenta a ação relevante e se a aplicação host autoriza essa operação para o usuário e documento atuais.

Um caminho de impressão de documento terminando em um ponto de autorização controlado
Um caminho de impressão de documento terminando em um ponto de autorização controlado

Para os controles exatos suportados pela sua versão instalada, comece com a documentação do Doconut e os exemplos empacotados disponíveis na página de download oficial do Doconut. Não copie chaves de configuração ou código-fonte de uma versão não relacionada ou de um artigo não verificado.


1. Defina a Política de Impressão Primeiro

Anote quem pode imprimir e sob quais condições antes de alterar a barra de ferramentas. Uma política útil responde a perguntas como:

  • A impressão é permitida para todos os visualizadores, apenas para certas funções ou documentos específicos?
  • A decisão depende do locatário, status do caso, classificação do documento ou validade?
  • É necessário uma marca d'água na saída imprimível?
  • Os eventos de impressão devem ser auditados?
  • Um usuário pode imprimir uma revisão mais antiga do documento?
  • O que deve acontecer quando a permissão mudar enquanto a visualização está aberta?

Evite um único Boolean global quando a regra real é contextual. Modele a impressão como sua própria operação para que possa ser autorizada independentemente da visualização e do download.

2. Separe o Estado da UI da Autorização

A página host pode decidir se apresenta um controle de impressão após receber um resultado de permissão controlada pela aplicação. Isso melhora a clareza para usuários que não podem imprimir.

No entanto, ocultar um controle não constitui um limite de autorização. Um usuário ainda pode chamar diretamente um endpoint conhecido, reproduzir uma solicitação anterior ou invocar a impressão do navegador sobre o conteúdo visível. Cada rota do servidor que produz saída imprimível deve aplicar a mesma política.

Use estados distintos na UI:

EstadoComportamento do visualizadorComportamento do servidor
Impressão permitidaMostrar a ação de impressão suportadaAutorizar e criar a saída solicitada
Impressão negadaOcultar ou desativar a ação com uma explicação claraRetornar uma resposta de proibido
Política desconhecidaManter a ação indisponível enquanto a permissão carregaNão criar saída
Sessão expiradaSolicitar que o usuário se reautentiqueRejeitar a solicitação obsoleta

3. Proteja o Endpoint de Impressão

Proteja a operação da aplicação que invoca a impressão ou devolve saída imprimível. A decisão de autorização deve levar em conta a associação ao locatário, propriedade, classificação, estado do fluxo de trabalho e revisão do documento. Resolva o documento no servidor em vez de aceitar um caminho ou URL de armazenamento fornecido pelo cliente.

Se sua aplicação imprime por meio de uma rota específica do visualizador em vez de criar um PDF, aplique a mesma autorização antes de invocar essa rota.

4. Configure a Versão do Visualizador Instalado

Uma vez que a regra do servidor exista, configure a UI do Doconut usando a opção exata documentada para o pacote e os arquivos de exemplo enviados com sua versão. As demonstrações ao vivo do Doconut permitem observar o comportamento do visualizador suportado antes de se comprometer com uma integração específica. Verifique:

  1. Onde a opção é definida: configuração do servidor, modelo de visualização ou inicialização do cliente.
  2. Se ela oculta um item da barra de ferramentas, desativa uma ação ou afeta a saída gerada.
  3. Se o valor se aplica por instância do visualizador ou globalmente.
  4. Se impressão e exportação são operações separadas.
  5. Se uma atualização alterou o nome da opção ou o padrão.

Trate o exemplo oficial como a fonte da verdade. Um nome de propriedade aparentemente plausível não é evidência suficiente de que o visualizador instalado o reconheça.

5. Lide com a Impressão do Navegador de Forma Honesta

Uma configuração do visualizador não pode garantir que informações visíveis nunca sejam impressas ou capturadas. O navegador pode imprimir a página host, e usuários podem fazer capturas de tela ou fotografias. Interceptação de teclado e CSS específico para impressão podem melhorar a experiência esperada, mas são medidas contornáveis do lado do cliente.

Se a página host não deve produzir uma cópia em papel útil, sua aplicação pode usar sua própria apresentação específica para impressão para substituir a visualização por uma mensagem explicativa. Mantenha esse comportamento da página host separado dos controles documentados do visualizador do Doconut.

Não descreva isso como proteção de documento. Use renderização no lado do servidor, autorização, exportações controladas e marcas d'água visíveis quando sua avaliação de risco exigir dissuasão mais forte.

6. Mantenha Download, Exportação e Impressão Separados

Usuários e desenvolvedores costumam tratar esses como um único interruptor “somente leitura”, mas eles representam fluxos de dados diferentes:

  • Visualizar exibe o conteúdo renderizado.
  • Download devolve a fonte ou outro arquivo armazenado.
  • Exportar cria um formato derivado.
  • Imprimir produz uma representação imprimível ou invoca a impressão do navegador.

Autorize cada operação explicitamente. Um usuário que não pode imprimir ainda pode ser autorizado a fazer download, ou o inverso. Sua barra de ferramentas deve refletir as decisões do servidor em vez de defini-las.

7. Adicione Eventos de Auditoria Úteis

Se a impressão for sensível, registre a decisão sem registrar o próprio documento. Um evento pode incluir o usuário, locatário, identificador do documento, revisão, resultado da política, carimbo de data/hora e ID de correlação.

Registre tanto tentativas bem‑sucedidas quanto negadas. Se o serviço de impressão criar um arquivo temporário, registre também se sua limpeza foi concluída. Mantenha caminhos de arquivos, tokens, títulos de documentos contendo dados pessoais e conteúdo imprimível fora dos logs rotineiros.

8. Teste Além do Botão Ausente

A barra de ferramentas é apenas a primeira asserção. Adicione testes para toda a operação:

Usuário autorizado

  • A ação de impressão pretendida está visível.
  • A solicitação de impressão tem sucesso para um documento permitido.
  • A revisão correta é usada.
  • Marcas necessárias aparecem na saída gerada.
  • O evento de auditoria registra o sucesso.

Usuário não autorizado

  • A ação está ausente ou desativada.
  • Uma solicitação direta ao endpoint de impressão retorna uma resposta de proibido.
  • Alterar o ID do documento não contorna a regra.
  • Um URL copiado de uma sessão autorizada não pode ser reutilizado indevidamente.
  • A negação não revela se outro locatário possui o documento.

Mudanças de estado

  • Permissão revogada durante uma sessão é aplicada na próxima solicitação de impressão.
  • Uma sessão expirada não pode imprimir.
  • Um documento excluído ou substituído produz um erro controlado.
  • A saída de impressão temporária segue a regra de retenção configurada.

A automação de navegador pode verificar o estado visível e o código de resposta. Testes de integração devem validar a avaliação da política e a autorização ao nível do documento de forma independente.

Perguntas Frequentes

Ocultar o botão de impressão impede o atalho de impressão do navegador?
Não. Ele remove apenas a ação prevista do visualizador, caso o visualizador instalado implemente esse comportamento. A impressão pelo navegador e a captura de tela exigem considerações separadas e não podem ser totalmente evitadas por código do lado do cliente.

A permissão de impressão deve ser incluída na URL de visualização?
Prefira uma decisão de autorização no lado do servidor vinculada ao usuário autenticado, ao documento e à operação. Se uma referência temporária carregar permissões, delimite-a estritamente, proteja-a de logs e referenciadores e revalide ações sensíveis.

Desativar a impressão é suficiente para documentos confidenciais?
Não. É apenas um controle de usabilidade ou dissuasão. Fluxos confidenciais também precisam de proteção de armazenamento, autorização ao nível de objeto, exportações controladas, regras de retenção, monitoramento e um modelo de risco residual aceito.

Conclusão

Uma implementação confiável de controle de impressão do Doconut começa no servidor e termina na interface. Defina a política, proteja a operação, configure apenas a opção documentada para o visualizador instalado, explique o resultado aos usuários e teste solicitações diretas assim como a visibilidade da barra de ferramentas. Use a página oficial de recursos, documentação, downloads e demonstrações como fontes de implementação, em vez de recriar o código do produto no artigo.