הגדרה ב-.NET Standard / Core
קובץ Startup.cs
בתוך קובץ Startup.cs של פרויקט .NET Core, השורות קוד אלו מגדירות תצורת צינור Middleware באמצעות המתודה MapWhen. הפונקציה המוגדרת בודקת אם נתיב הבקשה הנכנסת מסתיים ב‑DocImage.axd. בתוך בלוק זה, המתודה UseDoconut נקראת עם אובייקט DoconutOptions כפרמטר.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);הוסף מרחבי שמות Doconut
בפרויקט שלך, הוסף את הצהרות 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, ומעבירה את הנתיב של קובץ המסמך הממוקם על השרת ואת האובייקטים PdfConfig ו‑DocOptions שהוגדרו מראש כפרמטרים.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);הוסף את ה‑viewer ב‑HTML שלך
<div id="div_ctlDoc"></div>הוסף קבצי CSS ו‑JavaScript
הוסף את קבצי ה‑CSS וה‑JavaScript הבאים בעמוד. סקריפטים אלה נכללים בקובץ ה‑ZIP עם דוגמאות קוד.
<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>הוסף רישיונות לפרויקט שלך
זיהוי רישיון אוטומטי
כדי לאתחל את ה‑docViewer עם זיהוי רישיון אוטומטי, השתמש בשורה הבאה:
var docViewer = new Viewer(_cache, _accessor);הוסף רישיון ברירת מחדל ידני
אתה יכול לציין ידנית את הנתיב לקובץ רישיון ברירת מחדל יחיד בעת אתחול ה‑viewer.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);הוסף רישיון באמצעות Stream
שיטה זו משתמשת ב‑Viewer.DoconutLicense(Stream licenseStream) overload כדי להוסיף רישיון באמצעות זרם.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}הוסף רישיון באמצעות מסמך XML
שיטה זו משתמשת ב‑Viewer.DoconutLicense(XMLDocument licence) overload כדי להוסיף רישיון באמצעות מסמך XML.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);רישיונות תוסף מרובים ברירת מחדל ידניים
אם אתה צריך לציין רישיונות מרובים, אתה יכול לספק רשימת נתיבי קבצים לאתחול ה‑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);הוסף רישיון תוסף באמצעות Stream
שיטה זו משתמשת ב‑Viewer.SetLicensePlugin(Stream pluginLicence) overload כדי להוסיף רישיון תוסף באמצעות זרם.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}הוסף רישיון תוסף באמצעות מסמך XML
שיטה זו משתמשת ב‑Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) overload כדי להוסיף רישיון תוסף באמצעות מסמך XML.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);חבילות NuGet נדרשות
כדי להבטיח שהפרויקט שלך תואם במלואו ל‑.NET Core Standard, יש לכלול את חבילות NuGet הבאות, מסודרות לפי סדר אלפביתי.
- 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
אפשרויות תצורת רינדור
אתה יכול להגדיר את התנהגות הרינדור באמצעות האפשרויות הבאות:
- 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.
תצורת אפשרויות רינדור
אפשרויות הרינדור מוגדרות באמצעות המאפיין DefaultRender:
- DefaultRender = true : אפשרות זו מציעה רינדור באיכות גבוהה יותר אך משתמשת ביותר זיכרון שרת וזמן עיבוד.
- DefaultRender = false : אפשרות זו מספקת רינדור מהיר יותר על חשבון ירידה קלה באיכות.
איך להוסיף אנוטציה של תמונה
ב‑C#
1. פתח את המסמך וקבל את המימדים של העמוד הראשון. 2. אתחל את AnnotationManager עם מימדי העמוד. 3. צור ImageAnnotation, קבע את נתיב התמונה ב‑imgUrl, וציין את המיקום והגודל בתוך Rectangle. 4. הוסף את האנוטציה למנהל וטען אותה במציג המסמך להצגה.
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());
}ב‑JavaScript
1. ודא שה‑YourController זמין. 2. צור ImageAnnotation חדש, קבע את נתיב התמונה באמצעות SetNote. 3. הוסף וצייר את האנוטציה כדי לרנדר אותה על המסמך.
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();
}
}גופנים מותאמים במסמכי Word
המאפיין FontFolders במחלקה WordConfig מציין תיקיות מותאמות שבהן האפליקציה תחפש גופנים. זה שימושי במיוחד לעיבוד מסמכי Word המתבססים על גופנים שאינם מותקנים בתיקיות הגופנים המוגדרות כברירת מחדל במערכת.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};עדכון חשוב עבור Doconut 25.2.0
חובה לעדכן את חבילת System.Text.Json לגרסה 8.0.5 בכל הפרויקטים שלך. עדכון זה קריטי כדי להבטיח תאימות לתכונות החדשות ולפתור שיפורי אבטחה חשובים.
קידוד אימייל
המאפיין EmailEncoding במחלקה EmailConfig מציין את הקידוד המועדף עבור נושא האימייל והגוף שלו.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};קידוד נושא וגוף
המאפיינים SubjectEncoding ו‑BodyEncoding במחלקה EmailConfig מגדירים את הקידוד המשמש עבור נושא האימייל והגוף שלו, בהתאמה.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};תמיכה בתרבות מציג Word
המאפיין DocumentCulture במחלקה WordConfig מאפשר לך להגדיר במפורש את התרבות לקבצי DOC ו‑DOCX. זה מבטיח שהתוכן המתורגם – כגון תאריכים, מטבעות ומספרים – יוצג בדיוק כפי שהוא במיקרוסופט וורד. זה שימושי במיוחד לשפות עם דרישות עיצוב ספציפיות.
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)