Instalação

Adicione Doconut ao seu projeto .NET Standard 2.1

O visualizador base Doconut para .NET Standard é distribuído como um único pacote NuGet que se integra a qualquer aplicação ASP.NET Core. Plugins opcionais utilizam pacotes separados. Esta página instala o pacote base, confirma que seu host pode consumi‑lo e registra o middleware — o mínimo necessário antes da sua primeira renderização.

Verifique o framework do host primeiro

A biblioteca tem como alvo netstandard2.1. Esse é um contrato mais restrito que a compilação netstandard2.0 anterior, e é a primeira coisa a ser verificada:

HostSuportado
.NET Core 3.0 ou posterior, incluindo .NET 5/6/7/8Sim
.NET Framework (qualquer versão)Não — netstandard2.1 não pode ser consumido pelo .NET Framework

Se a aplicação for executada no .NET Framework, este não é o pacote correto. Use Doconut.NETFramework em vez disso; a partir da versão 26.9.0 ele requer .NET Framework 4.7.2. As aplicações de referência enviadas com esta versão têm como alvo net8.0.

Instalar o pacote

bash
dotnet add package Doconut.NETStandard

O comando sem versão instala a última versão estável. Para reproduzir exatamente a versão 26.8.0 atual, passe a versão como uma opção separada:

bash
dotnet add package Doconut.NETStandard --version 26.8.0

Doconut.NETStandard é o ID do pacote. O sufixo .26.8.0 pertence ao nome de arquivo Doconut.NETStandard.26.8.0.nupkg baixado e não faz parte do ID.

O número da versão é a geração

Isso importa mais aqui do que o nome do pacote. Ambas as gerações da biblioteca .NET Standard são publicadas sob o mesmo ID de pacote, e somente a versão as diferencia:

VersãoAlvoAPI
26.7.0 e anterioresnetstandard2.0a integração anterior
26.8.0 e posterioresnetstandard2.1a integração documentada aqui

Não há shim de compatibilidade nem pacote lado a lado. Atualizar a versão é a atualização, e o compilador reportará imediatamente as diferenças de API.

Não selecione a documentação apenas pelo nome do pacote:

  • new Viewer(_cache, _accessor, …), UnSafeMode, OpenDocument(...) síncrono, viewer.InitCache(), UseDoconutWebFarm e scripts do visualizador copiados manualmente identificam a integração anterior;
  • AddDoconut(), UseDoconutResources(), um Viewer injetado e OpenDocumentAsync(...) identificam a integração atual documentada aqui.

O manual de configuração anterior traduzido continua disponível. Use o guia de migração para mudar de geração; uma atualização de pacote não converte automaticamente a inicialização, o tempo de vida do visualizador ou os recursos do navegador.

Registrar Doconut

AddDoconut() é o único ponto de entrada de registro — há uma única sobrecarga, e ele conecta o serviço Viewer, o serviço de licença e a infraestrutura de renderização ao contêiner DI.

Duas chamadas de middleware completam a configuração, e sua ordem importa: UseDoconutResources() deve ser executado antes de UseDoconut(). UseDoconut() é um middleware terminal, portanto chamá‑lo primeiro faz com que toda solicitação a um recurso /doconut-res nunca alcance o manipulador de recursos e resulte em 404. A ligação da sessão também é necessária — a segurança de documentos padrão do Doconut valida cada solicitação de página contra o estado de sessão ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // o estado de sessão precisa de um cache (MVC/Razor Pages já adicionam um)
builder.Services.AddSession(); // a segurança de documentos Doconut depende do estado de sessão ASP.NET

app.UseSession();          // chame UseSession() antes de UseDoconut()
app.UseDoconutResources(); // deve ser registrado antes de UseDoconut()
app.UseDoconut();

Namespaces

Os tipos de configuração não estão mais distribuídos em quatro namespaces. Nesta versão, quase tudo reside no namespace raiz Doconut:

csharp
using Doconut;                       // Viewer, DoconutOptions, DocOptions, todas as configurações de formato
using Doconut.Middleware;            // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds;                // configurações de nuvem e compartilhamento de arquivos
using Doconut.Configs.Conversion;    // ConversionTarget

Os nomes dos tipos em si não mudaram — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig e os demais ainda estão presentes. Se você estiver migrando uma aplicação existente, a maioria dos arquivos precisa apenas de duas linhas using removidas; veja o guia de migração.

Todas as opções

DoconutOptions aceita as seguintes propriedades configuráveis. Cada uma é opcional — os padrões abaixo se aplicam quando uma propriedade não é definida.

PropriedadePadrãoDescrição
ShowDoconutInfofalseQuando true, uma solicitação sem token retorna um banner de versão em vez de um 404. Útil como verificação rápida; desative em produção.
UnsafeModefalseQuando true, ignora a verificação de segurança da sessão ASP.NET nas solicitações de página. Desative em produção. Observe a grafia — a biblioteca anterior chamava isso de UnSafeMode.
MiddlewarePath"/doconut"Valor de coordenação para o endpoint de página‑imagem. É validado, mas não monta um ramo por si só; mantenha alinhado com o mapeamento real de UseDoconut() e o BasePath do cliente.
ResourcesPath"/doconut-res"De onde os recursos incorporados de JS/CSS/imagem são servidos.
LicensePath"" (string vazia)Caminho para o arquivo de licença. Vazio significa passar para a próxima fonte, então pesquisa automática.
LicenseContent"" (string vazia)Conteúdo bruto da licença — proveniente de uma variável de ambiente, de um gerenciador de segredos ou de um banco de dados.
LicenseStreamnullLicença como um stream, lida uma vez na inicialização.
ResetLicensefalseFlag de compatibilidade reservada. A licença é lida durante AddDoconut(); reinicie o aplicativo após substituir uma licença.

Prioridade de licença quando mais de uma fonte está definida: LicenseStream tem precedência sobre LicenseContent, que tem precedência sobre LicensePath, que tem precedência sobre a pesquisa automática — veja Configuração de Licença.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordenar com o mapeamento do aplicativo e o BasePath do cliente
    options.ResourcesPath   = "/doconut-res"; // onde os JS/CSS/imagens do visualizador são servidos
    options.UnsafeMode      = false;          // manter a segurança da sessão ativada
    options.ShowDoconutInfo = false;
});

Próximos passos

Esta página foi útil?