Installation dans .NET Standard / Core

Fichier Startup.cs

Dans le fichier Startup.cs d’un projet .NET Core, ces lignes de code définissent la configuration d’une pipeline middleware à l’aide de la méthode MapWhen. Le prédicat fourni vérifie si le chemin de la requête entrante se termine par DocImage.axd. À l’intérieur de ce bloc, la méthode UseDoconut est appelée avec un objet DoconutOptions comme argument.

Startup.cs
app.MapWhen(
    context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
    appBranch =>
    {
        appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
    }
);

Ajouter les espaces de noms Doconut

Dans votre projet, ajoutez les instructions using suivantes :

Usings
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;

Instancier l’objet Viewer

Cette ligne crée une nouvelle instance de la classe Viewer, vous permettant de créer un objet viewer dans votre code.

Instantiation
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);

Configurer un objet DocOptions

Exemple d’initialisation d’un objet DocOptions avec des configurations spécifiques :

DocOptions
var documentOptions = new DocOptions
{
    Password = "",
    ImageResolution = 200,
    TimeOut = 30
};

Configurer un objet de configuration

Initialisez un nouvel objet PdfConfig avec des configurations spécifiques pour le traitement des documents PDF :

PdfConfig
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };

Ouvrir votre document

Cette ligne invoque la méthode OpenDocument de l’objet viewer, en passant le chemin du fichier du document situé sur le serveur ainsi que les objets PdfConfig et DocOptions préalablement configurés comme paramètres.

OpenDocument
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);

Ajouter le viewer dans votre HTML

HTML
<div id="div_ctlDoc"></div>

Ajouter les fichiers CSS et JavaScript

Ajoutez les fichiers CSS et JavaScript suivants dans la page. Ces scripts sont inclus dans le fichier ZIP avec les exemples de code.

HTML Headers
<link rel="stylesheet" href="css/viewer.css" />

<!-- Main Viewer Related Scripts -->
<script src="scripts/jquery.min.js"></script>
<script src="scripts/docViewer.js"></script>
<script src="scripts/splitter.js"></script>
<script src="scripts/search.js"></script>
<script src="scripts/documentLinks.js"></script>

<!-- Viewer functions -->
<script src="scripts/docViewer.UI.js?v=1"></script>

Ajouter les licences à votre projet

Détection automatique des licences

Pour initialiser le docViewer avec la détection automatique des licences, utilisez la ligne suivante :

C#
var docViewer = new Viewer(_cache, _accessor);

Ajouter une licence par défaut manuelle

Vous pouvez spécifier manuellement le chemin vers un seul fichier de licence par défaut lors de l’initialisation du viewer.

C#
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);

Ajouter une licence par flux

Cette méthode utilise la surcharge Viewer.DoconutLicense(Stream licenseStream) pour ajouter une licence à l’aide d’un flux.

C#
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
    Viewer.DoconutLicense(licenseStream);
}

Ajouter une licence par document XML

Cette méthode utilise la surcharge Viewer.DoconutLicense(XMLDocument licence) pour ajouter une licence à l’aide d’un document XML.

C#
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);

Multiples licences de plugins par défaut manuelles

Si vous devez spécifier plusieurs licences, vous pouvez fournir une liste de chemins de fichiers à l’initialisation du viewer.

C#
List<string> licenseFilePaths = new List<string>
{
    Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.lic"),
    Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.Annotation.lic"),
    Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.Search.lic")
};
var docViewer = new Viewer(_cache, _accessor, licenseFilePaths);

Ajouter une licence de plugin par flux

Cette méthode utilise la surcharge Viewer.SetLicensePlugin(Stream pluginLicence) pour ajouter une licence de plugin à l’aide d’un flux.

C#
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
    Viewer.SetLicensePlugin(pluginLicenseStream);
}

Ajouter une licence de plugin par document XML

Cette méthode utilise la surcharge Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) pour ajouter une licence de plugin à l’aide d’un document XML.

C#
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);

Packages NuGet requis

Pour garantir que votre projet est pleinement compatible avec .NET Core Standard, les packages NuGet suivants doivent être inclus, listés par ordre alphabétique.

  • MessagePack - Version 2.5.140
  • Microsoft.Bcl.AsyncInterfaces - Version 8.0.0
  • Microsoft.Extensions.Caching.Abstractions - Version 8.0.0
  • Microsoft.Extensions.Configuration - Version 8.0.0
  • Microsoft.Extensions.Configuration.Abstractions - Version 8.0.0
  • Microsoft.Extensions.Configuration.FileExtensions - Version 8.0.0
  • Microsoft.Extensions.Configuration.Json - Version 8.0.0
  • Microsoft.Extensions.FileProviders.Abstractions - Version 8.0.0
  • Microsoft.Extensions.FileProviders.Physical - Version 8.0.0
  • Microsoft.Extensions.FileSystemGlobbing - Version 8.0.0
  • Microsoft.Extensions.Primitives - Version 8.0.0
  • System.Buffers - Version 4.5.1
  • System.Formats.Asn1 - Version 8.0.0
  • System.Numerics.Vectors - Version 4.5.0
  • System.Security.Cryptography.Cng - Version 5.0.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
  • System.Threading.Tasks.Extensions - Version 4.5.4

Options de configuration du rendu

Vous pouvez configurer le comportement du rendu à l’aide des options suivantes :

  • CadConfig : utilisé pour les fichiers DWG, DXF et DGN.
  • EmailConfig : utilisé pour les fichiers EML, EMLX et MSG.
  • EpubConfig : utilisé pour les fichiers EPUB.
  • ExcelConfig : utilisé pour les fichiers Excel et CSV.
  • MhtConfig : utilisé pour les fichiers MHT.
  • PptConfig : utilisé pour les fichiers PowerPoint.
  • ProjectConfig : utilisé pour les fichiers MPP.
  • PsdConfig : utilisé pour les fichiers PSD.
  • TxtConfig : utilisé pour les fichiers TXT.
  • TiffConfig : utilisé pour les fichiers TIFF.

Configuration des options de rendu

Les options de rendu sont configurées à l’aide de la propriété DefaultRender :

  • DefaultRender = true : cette option offre un rendu de meilleure qualité mais utilise davantage de mémoire serveur et de temps de traitement.
  • DefaultRender = false : cette option offre un rendu plus rapide au prix d’une qualité légèrement réduite.

Comment ajouter une annotation d’image

En C#

1. Ouvrez le document et obtenez les dimensions de la première page. 2. Initialise l’AnnotationManager avec les dimensions de la page. 3. Créez une ImageAnnotation, en définissant le chemin de l’image dans imgUrl, et spécifiez la position et la taille dans Rectangle. 4. Ajoutez l’annotation au gestionnaire et chargez‑la dans le visualiseur de documents pour l’afficher.

C#
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);

var firstPage = docViewer.GetThumbnailDimensions(1, 0, 100, false);
var pageWidth = firstPage.Width;
var pageHeight = firstPage.Height;

using (var annMgr = docViewer.GetAnnotationManager(pageWidth, pageHeight))
{
    string imgUrl = "img/sample.png";
    var imgAnn = new ImageAnnotation(
        1,
        new Rectangle(600, 700, 750, 300),
        imgUrl
    );

    annMgr.Add(imgAnn);
    docViewer.LoadAnnotationXML(annMgr.GetAnnotationXml());
}

En JavaScript

1. Assurez‑vous que YourController est disponible. 2. Créez une nouvelle ImageAnnotation, en définissant le chemin de l’image avec SetNote. 3. Ajoutez et peignez l’annotation pour la rendre visible dans le document.

JavaScript
function ImageStamp() {
    if (null != objctlDoc.YourController()) {
        var objStampImage = new ImageAnnotation({ left: 200, top: 200, width: 260, height: 55 });
        objctlDoc.YourController().AddAnnotation(null, objStampImage, null);

        objStampImage.SetNote('/images/Approved_Stamp.png');
        objStampImage.Paint();
    }
}

Polices personnalisées dans les documents Word

La propriété FontFolders dans la classe WordConfig spécifie les répertoires personnalisés où l’application recherchera les polices. Cela est particulièrement utile pour le traitement des documents Word qui s’appuient sur des polices non installées dans les répertoires de polices système par défaut.

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

Mise à jour importante pour Doconut 25.2.0

Il est essentiel de mettre à jour le package System.Text.Json à la version 8.0.5 dans tous vos projets. Cette mise à jour est cruciale pour assurer la compatibilité avec les dernières fonctionnalités et pour répondre à d’importantes améliorations de sécurité.

Encodage des e‑mails

La propriété EmailEncoding dans la classe EmailConfig spécifie l’encodage préféré tant pour l’objet que pour le corps du courriel.

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

Encodage de l’objet et du corps

Les propriétés SubjectEncoding et BodyEncoding dans la classe EmailConfig définissent l’encodage utilisé respectivement pour l’objet et le corps d’un e‑mail.

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

Télécharger les fichiers CSS et JS requis

Pour que Doconut fonctionne correctement, vous devez inclure des fichiers CSS et JS spécifiques dans votre projet. Vous pouvez télécharger un fichier ZIP contenant tous les fichiers nécessaires en utilisant le lien ci‑dessous :