Einrichtung in .NET Standard / Core

Startup.cs Datei

Im Startup.cs der .NET Core Projektdatei definieren diese Codezeilen eine Middleware-Pipeline-Konfiguration mittels der MapWhen-Methode. Die bereitgestellte Prädikate prüft, ob der eingehende Anforderungspfad mit DocImage.axd endet. Innerhalb dieses Blocks wird die UseDoconut-Methode mit einem DoconutOptions-Objekt als Argument aufgerufen.

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

Doconut Namespaces hinzufügen

Fügen Sie in Ihrem Projekt die folgenden using-Anweisungen hinzu:

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

Viewer-Objekt instanziieren

Diese Zeile erstellt eine neue Instanz der Viewer-Klasse, sodass Sie ein Viewer-Objekt in Ihrem Code erstellen können.

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

Ein DocOptions-Objekt einrichten

Beispiel für die Initialisierung eines DocOptions-Objekts mit spezifischen Konfigurationen:

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

Ein Config-Objekt einrichten

Initialisieren Sie ein neues PdfConfig-Objekt mit spezifischen Konfigurationen zur Verarbeitung von PDF-Dokumenten:

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

Öffnen Sie Ihr Dokument

Diese Zeile ruft die OpenDocument-Methode des Viewer-Objekts auf und übergibt den Pfad der auf dem Server befindlichen Dokumentdatei sowie die zuvor konfigurierten PdfConfig- und DocOptions-Objekte als Parameter.

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

Viewer in Ihrem HTML hinzufügen

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

CSS- und JavaScript-Dateien hinzufügen

Fügen Sie der Seite die folgenden CSS- und JavaScript-Dateien hinzu. Diese Skripte sind in der ZIP-Datei mit Codebeispielen enthalten.

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>

Lizenzen zu Ihrem Projekt hinzufügen

Automatische Lizenz-Erkennung

Um den docViewer mit automatischer Lizenz-Erkennung zu initialisieren, verwenden Sie die folgende Zeile:

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

Manuelle Standardlizenz hinzufügen

Sie können beim Initialisieren des Viewers den Pfad zu einer einzelnen Standardlizenzdatei manuell angeben.

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

Lizenz per Stream hinzufügen

Diese Methode verwendet die Überladung Viewer.DoconutLicense(Stream licenseStream), um eine Lizenz über einen Stream hinzuzufügen.

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

Lizenz per XML-Dokument hinzufügen

Diese Methode verwendet die Überladung Viewer.DoconutLicense(XMLDocument licence), um eine Lizenz über ein XML-Dokument hinzuzufügen.

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

Mehrere Plugin-Lizenzen manuell als Standard hinzufügen

Falls Sie mehrere Lizenzen angeben müssen, können Sie der Viewer-Initialisierung eine Liste von Dateipfaden übergeben.

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);

Plugin-Lizenz per Stream hinzufügen

Diese Methode verwendet die Überladung Viewer.SetLicensePlugin(Stream pluginLicence), um eine Plugin-Lizenz über einen Stream hinzuzufügen.

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

Plugin-Lizenz per XML-Dokument hinzufügen

Diese Methode verwendet die Überladung Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence), um eine Plugin-Lizenz über ein XML-Dokument hinzuzufügen.

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

Erforderliche NuGet-Pakete

Damit Ihr Projekt vollständig kompatibel mit .NET Core Standard ist, müssen die folgenden NuGet-Pakete einbezogen werden, alphabetisch sortiert.

  • 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

Render-Konfigurationsoptionen

Sie können das Rendering-Verhalten mit den folgenden Optionen konfigurieren:

  • CadConfig: Wird für DWG-, DXF- und DGN-Dateien verwendet.
  • EmailConfig: Wird für EML-, EMLX- und MSG-Dateien verwendet.
  • EpubConfig: Wird für EPUB-Dateien verwendet.
  • ExcelConfig: Wird für Excel- und CSV-Dateien verwendet.
  • MhtConfig: Wird für MHT-Dateien verwendet.
  • PptConfig: Wird für PowerPoint-Dateien verwendet.
  • ProjectConfig: Wird für MPP-Dateien verwendet.
  • PsdConfig: Wird für PSD-Dateien verwendet.
  • TxtConfig: Wird für TXT-Dateien verwendet.
  • TiffConfig: Wird für TIFF-Dateien verwendet.

Render-Optionen-Konfiguration

Die Render-Optionen werden über die Eigenschaft DefaultRender konfiguriert:

  • DefaultRender = true : Diese Option bietet eine höhere Rendering-Qualität, verbraucht jedoch mehr Serverspeicher und Verarbeitungszeit.
  • DefaultRender = false : Diese Option ermöglicht schnelleres Rendering auf Kosten einer leicht reduzierten Qualität.

So fügen Sie eine Bildannotation hinzu

In C#

1. Öffnen Sie das Dokument und ermitteln Sie die Abmessungen der ersten Seite. 2. Initialisieren Sie den AnnotationManager mit den Seitenabmessungen. 3. Erstellen Sie eine ImageAnnotation, setzen Sie den Bildpfad in imgUrl und geben Sie Position und Größe im Rectangle an. 4. Fügen Sie die Annotation dem Manager hinzu und laden Sie sie im Dokument-Viewer, um sie anzuzeigen.

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());
}

In JavaScript

1. Stellen Sie sicher, dass YourController verfügbar ist. 2. Erstellen Sie eine neue ImageAnnotation und setzen Sie den Bildpfad mit SetNote. 3. Fügen Sie die Annotation hinzu und malen Sie sie, um sie im Dokument darzustellen.

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();
    }
}

Benutzerdefinierte Schriftarten in Word-Dokumenten

Die FontFolders-Eigenschaft in der WordConfig-Klasse gibt benutzerdefinierte Verzeichnisse an, in denen die Anwendung nach Schriftarten sucht. Dies ist besonders nützlich für die Verarbeitung von Word-Dokumenten, die auf Schriftarten angewiesen sind, die nicht im Standardschriftartenverzeichnis des Systems installiert sind.

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

Wichtige Aktualisierung für Doconut 25.2.0

Es ist unerlässlich, das System.Text.Json-Paket in allen Ihren Projekten auf Version 8.0.5 zu aktualisieren. Dieses Update ist entscheidend, um die Kompatibilität mit den neuesten Funktionen zu gewährleisten und wichtige Sicherheitsverbesserungen zu berücksichtigen.

E-Mail-Codierung

Die EmailEncoding-Eigenschaft in der EmailConfig-Klasse gibt die bevorzugte Codierung für Betreff und Text der E‑Mail an.

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

Betreff‑ und Text‑Codierung

Die Eigenschaften SubjectEncoding und BodyEncoding in der EmailConfig-Klasse definieren die für Betreff bzw. Text einer E‑Mail verwendete Codierung.

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

Word Viewer Culture Support

Die DocumentCulture-Eigenschaft in der WordConfig-Klasse ermöglicht es Ihnen, die Kultur für DOC- und DOCX-Dateien explizit festzulegen. Dies stellt sicher, dass lokalisierte Inhalte — wie Datumsangaben, Währungen und Zahlen — genau so gerendert werden wie in Microsoft Word. Dies ist besonders nützlich für Sprachen mit spezifischen Formatierungsanforderungen.

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)

Erforderliche CSS- und JS-Dateien herunterladen

Damit Doconut korrekt funktioniert, müssen Sie bestimmte CSS- und JS-Dateien in Ihr Projekt einbinden. Sie können eine ZIP-Datei mit allen erforderlichen Dateien über den untenstehenden Link herunterladen: