Configuração no .NET Framework

Configuração do Web.config

Registre o HttpHandler no seu arquivo web.config.

Below IIS 7
<httpHandlers>
  <add verb="GET,POST" path="DocImage.axd" type="Doconut.DocImageHandler, Doconut" />
</httpHandlers>
IIS 7 and above
<handlers>
  <add name="DocImage" verb="GET,POST" path="DocImage.axd" type="Doconut.DocImageHandler, Doconut" />
</handlers>

Adicionar Licenças

Doconut detecta licenças automaticamente na pasta raiz, ou você pode adicioná-las manualmente.

Manual License Path
var licenseFilePath = Server.MapPath("~/Doconut.Viewer.lic");
var docViewer = new Viewer(licenseFilePath);

Configuração para web.config

As seguintes entradas de configuração são necessárias no arquivo web.config para garantir compatibilidade com Doconut e o .NET Framework.

web.config
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="8.0.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Drawing.Common" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="MessagePack" publicKeyToken="9c7f9b36b37eaddf" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.5.140.0" newVersion="2.5.140.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.4.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Pacotes NuGet Obrigatórios

Para garantir que seu projeto seja totalmente compatível com Doconut e o .NET Framework, os seguintes pacotes NuGet precisam ser incluídos:

  • MessagePack - Version 2.5.140
  • MessagePack.Annotations - Version 2.5.140
  • Microsoft.Bcl.AsyncInterfaces - Version 8.0.0
  • Microsoft.NET.StringTools - Version 17.6.3
  • System.Collections.Immutable - Version 6.0.0
  • System.Drawing.Common - Version 6.0.0
  • System.Memory - Version 4.5.5
  • System.Reflection.Emit - Version 4.7.0
  • System.Reflection.Emit.Lightweight - Version 4.7.0
  • System.Security.Cryptography.Pkcs - Version 8.0.0
  • System.Text.Encoding.CodePages - Version 8.0.0
  • System.Text.Encodings.Web - Version 8.0.0
  • System.Text.Json - Version 8.0.3

Opções de Configuração de Renderização

Você pode configurar o comportamento de renderização usando as seguintes opções:

  • CadConfig: Usado para arquivos DWG, DXF e DGN.
  • EmailConfig: Usado para arquivos EML, EMLX e MSG.
  • EpubConfig: Usado para arquivos EPUB.
  • ExcelConfig: Usado para arquivos Excel e CSV.
  • MhtConfig: Usado para arquivos MHT.
  • PptConfig: Usado para arquivos PowerPoint.
  • ProjectConfig: Usado para arquivos MPP.
  • PsdConfig: Usado para arquivos PSD.
  • TxtConfig: Usado para arquivos TXT.
  • TiffConfig: Usado para arquivos TIFF.
Example usage
var config = new CadConfig { DefaultRender = false }; // or true

Fontes Personalizadas em documentos Word

A propriedade FontFolders na classe WordConfig especifica diretórios personalizados onde a aplicação buscará fontes.

Usage
var config = new WordConfig
{
    FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};

Atualização Sobre AjaxControlToolkit no Pacote NuGet

Fizemos alterações em nosso pacote NuGet para melhorar a compatibilidade. AjaxControlToolkit não será mais incluído. Recomenda-se que os usuários instalem manualmente a versão 4.1.50508 do AjaxControlToolkit em seus projetos.

Atualização Importante para Doconut 25.2.0

É essencial atualizar o pacote System.Text.Json para a versão 8.0.5 em todos os seus projetos.

Codificação de Email

A propriedade EmailEncoding na classe EmailConfig especifica a codificação preferida tanto para o assunto quanto para o corpo do email.

Usage
var emailConfig = new EmailConfig {
    EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};

Codificação de Assunto & Corpo

As propriedades SubjectEncoding e BodyEncoding na classe EmailConfig definem a codificação usada para o assunto e o corpo de um email, respectivamente.

Usage
var emailConfig = new EmailConfig {
    SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
    BodyEncoding = Encoding.UTF8     // Set encoding for the body
};

Suporte de Cultura no Visualizador de Word

A propriedade DocumentCulture na classe WordConfig permite definir explicitamente a cultura para arquivos DOC e DOCX. Isso garante que o conteúdo localizado — como datas, moedas e números — seja renderizado exatamente como no Microsoft Word. Isso é particularmente útil para idiomas com requisitos de formatação específicos.

Usage
var config = new WordConfig { DocumentCulture = "he-IL" }; // Hebrew (Israel)
var config = new WordConfig { DocumentCulture = "ar-SA" }; // Arabic (Saudi Arabia)
var config = new WordConfig { DocumentCulture = "th-TH" }; // Thai (Thailand)
var config = new WordConfig { DocumentCulture = "ja-JP" }; // Japanese (Japan)