Ρύθμιση σε .NET 6 ή newer
Αρχείο Startup.cs
Στο αρχείο Startup.cs ενός .NET Core project, αυτά είναι τα γραμμές κώδικα που ορίζουν μια διαδρομή middleware με τη μέθοδο MapWhen. Η παρεχόμενη συνθήκη ελέγχει εάν το αίτημα‑path τελειώνει με DocImage.axd. Μέσα σε αυτό το block, η μέθοδος UseDoconut καλεί έναν DoconutOptions αντικείμενο.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);Προσθήκη Doconut Namespaces
Στο project σας, προσθέστε τις ακόλουθες δηλώσεις using:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;Δημιουργία αντικειμένου Viewer
Αυτή η γραμμή δημιουργεί ένα νέο στιγμιότυπο της κλάσης Viewer, επιτρέποντάς σας να δημιουργήσετε ένα αντικείμενο viewer στον κώδικά σας.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Διαμόρφωση αντικειμένου DocOptions
Παράδειγμα αρχικοποίησης ενός αντικειμένου DocOptions με συγκεκριμένες ρυθμίσεις:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Διαμόρφωση αντικειμένου config
Αρχικοποιήστε ένα νέο PdfConfig με συγκεκριμένες ρυθμίσεις για την επεξεργασία PDF εγγράφων:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Άνοιγμα του εγγράφου σας
Αυτή η γραμμή καλεί τη μέθοδο OpenDocument του viewer, περνώντας το μονοπάτι του αρχείου εγγράφου στον server και τα αντικείμενα PdfConfig και DocOptions ως παραμέτρους.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Προσθήκη του viewer στο HTML
<div id="div_ctlDoc"></div>Προσθήκη CSS και JavaScript
Προσθέστε τα παρακάτω αρχεία CSS και JavaScript στη σελίδα. Τα σενάρια περιλαμβάνονται στο ZIP αρχείο με τα παραδείγματα κώδικα.
<!-- 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>Προσθήκη Αδειών στο Project σας
Αυτόματη Εντοπισμός Άδειας
Για να αρχικοποιήσετε το docViewer με αυτόματη εντόπιση άδειας, χρησιμοποιήστε τη γραμμή:
var docViewer = new Viewer(_cache, _accessor);Προσθήκη Προεπιλεγμένης Άδειας Manual
Μπορείτε να καθορίσετε το μονοπάτι σε ένα προεπιλεγμένο αρχείο άδειας κατά την αρχικοποίηση του viewer.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Προσθήκη Άδειας με Stream
Αυτή η μέθοδος χρησιμοποιεί το overload Viewer.DoconutLicense(Stream licenseStream) για να προσθέσει άδεια μέσω ροής.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}Προσθήκη Άδειας με XML Document
Αυτή η μέθοδος χρησιμοποιεί το overload Viewer.DoconutLicense(XMLDocument licence) για να προσθέσει άδεια μέσω XML εγγράφου.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);Προεπιλεγμένες Πολλαπλές Άδειες Plugin
Αν χρειάζεται να καθορίσετε πολλαπλές άδειες, μπορείτε να δώσετε μια λίστα με διαδρομές αρχείων κατά την αρχικοποίηση του viewer.
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 με Stream
Αυτή η μέθοδος χρησιμοποιεί το overload Viewer.SetLicensePlugin(Stream pluginLicence) για να προσθέσει άδεια plugin μέσω ροής.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}Προσθήκη Άδειας Plugin με XML Document
Αυτή η μέθοδος χρησιμοποιεί το overload Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) για να προσθέσει άδεια plugin μέσω XML εγγράφου.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);Απαιτούμενα NuGet Packages
Για να είναι το project σας πλήρως συμβατό με .NET Core Standard, χρειάζεται να συμπεριλάβετε τα ακόλουθα NuGet packages, αλφαβητικά:
- 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 Configuration Options
Μπορείτε να διαμορφώσετε τη συμπεριφορά rendering χρησιμοποιώντας τις παρακάτω επιλογές:
- CadConfig: Χρησιμοποιείται για αρχεία DWG, DXF και DGN.
- EmailConfig: Χρησιμοποιείται για αρχεία EML, EMLX και MSG.
- EpubConfig: Χρησιμοποιείται για αρχεία EPUB.
- ExcelConfig: Χρησιμοποιείται για αρχεία Excel και CSV.
- MhtConfig: Χρησιμοποιείται για αρχεία MHT.
- PptConfig: Χρησιμοποιείται για αρχεία PowerPoint.
- ProjectConfig: Χρησιμοποιείται για αρχεία MPP.
- PsdConfig: Χρησιμοποιείται για αρχεία PSD.
- TxtConfig: Χρησιμοποιείται για αρχεία TXT.
- TiffConfig: Χρησιμοποιείται για αρχεία TIFF.
Render Options Configuration
Οι επιλογές rendering διαμορφώνονται μέσω της ιδιότητας DefaultRender:
- DefaultRender = true : Προσφέρει υψηλότερη ποιότητα rendering αλλά απαιτεί περισσότερη μνήμη και χρόνο επεξεργασίας στον server.
- DefaultRender = false : Παρέχει γρηγορότερο rendering με μικρή μείωση της ποιότητας.
How To Add An Image Annotation
In C#
1. Ανοίξτε το έγγραφο και λάβετε τις διαστάσεις της πρώτης σελίδας. 2. Αρχικοποιήστε το AnnotationManager με τις διαστάσεις της σελίδας. 3. Δημιουργήστε ένα ImageAnnotation, ορίζοντας το imgUrl με τη διαδρομή της εικόνας, και καθορίστε θέση και μέγεθος μέσα σε Rectangle. 4. Προσθέστε το annotation στον manager και φορτώστε το στον document viewer για εμφάνιση.
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. Βεβαιωθείτε ότι το YourController είναι διαθέσιμο. 2. Δημιουργήστε ένα νέο ImageAnnotation, ορίζοντας τη διαδρομή της εικόνας με SetNote. 3. Προσθέστε και σχεδιάστε το annotation για να εμφανιστεί στο έγγραφο.
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();
}
}Custom Fonts in Word documents
Η ιδιότητα FontFolders της κλάσης WordConfig καθορίζει προσαρμοσμένους καταλόγους όπου η εφαρμογή θα αναζητήσει γραμματοσειρές. Αυτό είναι ιδιαίτερα χρήσιμο για επεξεργασία Word εγγράφων που απαιτούν γραμματοσειρές μη εγκατεστημένες στο σύστημα.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};Important Update for Doconut 25.2.0
Είναι απαραίτητο να ενημερώσετε το πακέτο System.Text.Json στην έκδοση 8.0.5 σε όλα τα projects σας. Η ενημέρωση αυτή είναι κρίσιμη για τη συμβατότητα με τις τελευταίες λειτουργίες και για βελτιώσεις ασφαλείας.
Email Encoding
Η ιδιότητα EmailEncoding στην κλάση EmailConfig καθορίζει την προτιμώμενη κωδικοποίηση για το θέμα και το σώμα του email.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Subject & Body Encoding
Οι ιδιότητες SubjectEncoding και BodyEncoding στην κλάση EmailConfig ορίζουν τη κωδικοποίηση που θα χρησιμοποιηθεί για το θέμα και το σώμα του email, αντίστοιχα.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Word Viewer Culture Support
Η ιδιότητα DocumentCulture στην κλάση WordConfig επιτρέπει τον ορισμό της κουλτούρας (culture) για αρχεία DOC και DOCX. Έτσι εξασφαλίζεται η σωστή εμφάνιση τοπικοποιημένων στοιχείων όπως ημερομηνίες, νομίσματα και αριθμοί, όπως εμφανίζονται στο Microsoft Word.
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)Download Required CSS and JS Files
Για να λειτουργήσει σωστά το Doconut, πρέπει να συμπεριλάβετε συγκεκριμένα αρχεία CSS και JS στο project σας. Μπορείτε να κατεβάσετε ένα ZIP αρχείο με όλα τα απαραίτητα αρχεία χρησιμοποιώντας το παρακάτω κουμπί: