Einrichtung in .NET 6 oder höher
Startup.cs-Datei
Im Startup.cs‑File eines .NET‑Core‑Projekts definieren diese Codezeilen eine Middleware‑Pipeline‑Konfiguration mithilfe der MapWhen‑Methode. Das bereitgestellte Prädikat prüft, ob der eingehende Anforderungspfad mit DocImage.axd endet. Innerhalb dieses Blocks wird die Methode UseDoconut mit einem DoconutOptions‑Objekt als Argument aufgerufen.
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:
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 erzeugen können.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);DocOptions‑Objekt einrichten
Beispielhafte Initialisierung eines DocOptions‑Objekts mit spezifischen Konfigurationen:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Konfigurationsobjekt einrichten
Initialisieren Sie ein neues PdfConfig‑Objekt mit spezifischen Konfigurationen für die Verarbeitung von PDF‑Dokumenten:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Dokument öffnen
Diese Zeile ruft die Methode OpenDocument des Viewer‑Objekts auf und übergibt den Pfad der Dokumentdatei auf dem Server sowie die zuvor konfigurierten PdfConfig‑ und DocOptions‑Objekte als Parameter.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Viewer in Ihr HTML einfügen
<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 Code‑Beispielen enthalten.
<!-- Main Viewer Related Scripts -->
<script src="scripts/splitter.js"></script>
<script src="scripts/docViewer.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:
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.
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.
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.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);Manuelle Standard‑Mehrfach‑Plugin‑Lizenzen
Wenn Sie mehrere Lizenzen angeben müssen, können Sie dem Viewer‑Initialisierungsvorgang eine Liste von Dateipfaden bereitstellen.
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.
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.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);Erforderliche NuGet‑Pakete
Damit Ihr Projekt vollständig mit .NET Core Standard kompatibel ist, müssen die folgenden NuGet‑Pakete (alphabetisch sortiert) eingebunden werden.
- 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 Render‑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 ein Rendering von höherer Qualität, verbraucht jedoch mehr Server‑Speicher und Verarbeitungszeit.
- DefaultRender = false : Diese Option ermöglicht schnelleres Rendering, jedoch zulasten einer leicht reduzierten Qualität.
Wie man eine Bildannotation hinzufügt
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 die Position sowie Größe im Rectangle an. 4. Fügen Sie die Annotation dem Manager hinzu und laden Sie sie im Document‑Viewer, um sie anzuzeigen.
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 rendern Sie sie, um sie im Dokument anzuzeigen.
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 Eigenschaft FontFolders 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 Schriftarten verwenden, die nicht in den standardmäßigen Schriftartenverzeichnissen des Systems installiert sind.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};Wichtige Aktualisierung für Doconut 25.2.0
Es ist zwingend erforderlich, 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‑Kodierung
Die Eigenschaft EmailEncoding in der EmailConfig‑Klasse gibt die bevorzugte Kodierung für Betreff und Body der E‑Mail an.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Betreff‑ und Body‑Kodierung
Die Eigenschaften SubjectEncoding und BodyEncoding in der EmailConfig‑Klasse definieren jeweils die für Betreff bzw. Body einer E‑Mail verwendete Kodierung.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Kulturunterstützung im Word‑Viewer
Die Eigenschaft DocumentCulture in der WordConfig‑Klasse ermöglicht es, die Kultur für DOC‑ und DOCX‑Dateien explizit festzulegen. Dadurch wird gewährleistet, dass lokalisierte Inhalte – wie Datum, Währungen und Zahlen – exakt so gerendert werden wie in Microsoft Word. Dies ist besonders nützlich für Sprachen mit spezifischen Formatierungsanforderungen.
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 ordnungsgemäß funktioniert, müssen Sie bestimmte CSS‑ und JS‑Dateien in Ihr Projekt einbinden. Sie können eine ZIP‑Datei mit allen benötigten Dateien über den unten stehenden Link herunterladen: