.NET 6 veya Üstü Kurulumu
Startup.cs dosyası
Bir .NET Core projesinin Startup.cs dosyasında, bu kod satırları MapWhen yöntemi kullanarak bir ara katman (middleware) boru hattı yapılandırmasını tanımlar. Sağlanan koşul, gelen istek yolunun DocImage.axd ile bitip bitmediğini kontrol eder. Bu blok içinde, UseDoconut yöntemi bir DoconutOptions nesnesi argüman olarak çağırılır.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);Doconut Ad Alanlarını Ekleyin
Projenizde aşağıdaki using ifadelerini ekleyin:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;Viewer Nesnesini Oluşturun
Bu satır, Viewer sınıfının yeni bir örneğini oluşturur ve kodunuz içinde bir viewer nesnesi yaratmanızı sağlar.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);DocOptions Nesnesi Oluşturun
Belirli yapılandırmalarla bir DocOptions nesnesinin örnek başlatılması:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Bir config Nesnesi Oluşturun
PDF belgelerini işlemek için belirli yapılandırmalarla yeni bir PdfConfig nesnesi başlatın:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };Belgenizi Açın
Bu satır, viewer nesnesinin OpenDocument metodunu çağırır ve sunucudaki belge dosyasının yolunu, ayrıca önceden yapılandırılmış PdfConfig ve DocOptions nesnelerini parametre olarak iletir.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);HTML'nize viewer ekleyin
<div id="div_ctlDoc"></div>CSS ve JavaScript Dosyalarını Ekleyin
Sayfaya aşağıdaki CSS ve JavaScript dosyalarını ekleyin. Bu betikler, kod örnekleriyle birlikte ZIP dosyasında bulunur.
<!-- 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>Projenize Lisanslar Ekleyin
Otomatik Lisans Algılama
Otomatik lisans algılamasıyla docViewer'ı başlatmak için aşağıdaki satırı kullanın:
var docViewer = new Viewer(_cache, _accessor);Manuel Varsayılan Lisans Ekle
Viewer'ı başlatırken tek bir varsayılan lisans dosyasının yolunu manuel olarak belirtebilirsiniz.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Akışla Lisans Ekle
Bu yöntem, bir akış kullanarak lisans eklemek için Viewer.DoconutLicense(Stream licenseStream) aşırı yüklemesini kullanır.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}XML Belgesiyle Lisans Ekle
Bu yöntem, bir XML belgesi kullanarak lisans eklemek için Viewer.DoconutLicense(XMLDocument licence) aşırı yüklemesini kullanır.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);Manuel Varsayılan Çoklu Eklenti Lisansları
Birden fazla lisans belirtmeniz gerekiyorsa, viewer başlatmasına dosya yolları listesini sağlayabilirsiniz.
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);Akışla Eklenti Lisansı Ekle
Bu yöntem, bir akış kullanarak eklenti lisansı eklemek için Viewer.SetLicensePlugin(Stream pluginLicence) aşırı yüklemesini kullanır.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}XML Belgesiyle Eklenti Lisansı Ekle
Bu yöntem, bir XML belgesi kullanarak eklenti lisansı eklemek için Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) aşırı yüklemesini kullanır.
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);Gerekli NuGet Paketleri
.NET Core Standard ile tam uyumlu olmasını sağlamak için aşağıdaki NuGet paketlerinin alfabetik sırayla eklenmesi gerekir.
- 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 (Çıktı) Yapılandırma Seçenekleri
Aşağıdaki seçenekleri kullanarak render (çıkış) davranışını yapılandırabilirsiniz:
- CadConfig: DWG, DXF ve DGN dosyaları için kullanılır.
- EmailConfig: EML, EMLX ve MSG dosyaları için kullanılır.
- EpubConfig: EPUB dosyaları için kullanılır.
- ExcelConfig: Excel ve CSV dosyaları için kullanılır.
- MhtConfig: MHT dosyaları için kullanılır.
- PptConfig: PowerPoint dosyaları için kullanılır.
- ProjectConfig: MPP dosyaları için kullanılır.
- PsdConfig: PSD dosyaları için kullanılır.
- TxtConfig: TXT dosyaları için kullanılır.
- TiffConfig: TIFF dosyaları için kullanılır.
Render (Çıktı) Seçenekleri Yapılandırması
Render seçenekleri DefaultRender özelliği kullanılarak yapılandırılır:
- DefaultRender = true : Bu seçenek daha yüksek kalite render sağlar, fakat daha fazla sunucu belleği ve işlem süresi kullanır.
- DefaultRender = false : Bu seçenek, biraz düşük kalite karşılığında daha hızlı render sağlar.
Bir Görüntü Açıklaması (Annotation) Nasıl Eklenir
C#'da
1. Belgeyi açın ve ilk sayfanın boyutlarını alın. 2. AnnotationManager'ı sayfa boyutlarıyla başlatın. 3. imgUrl içinde görüntü yolunu ayarlayarak bir ImageAnnotation oluşturun ve Rectangle içinde konum ve boyutu belirtin. 4. Açıklamayı yöneticiye ekleyin ve belge görüntüleyicide yükleyerek gösterin.
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'te
1. YourController'ın mevcut olduğundan emin olun. 2. SetNote ile görüntü yolunu ayarlayarak yeni bir ImageAnnotation oluşturun. 3. Açıklamayı ekleyin ve paint edin, böylece belge üzerinde render olur.
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 Belgelerinde Özel Yazı Tipleri
WordConfig sınıfındaki FontFolders özelliği, uygulamanın yazı tiplerini arayacağı özel dizinleri belirtir. Bu, sistemin varsayılan yazı tipi dizinlerinde yüklü olmayan yazı tiplerine dayanan Word belgelerini işlerken özellikle faydalıdır.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};Doconut 25.2.0 için Önemli Güncelleme
Tüm projelerinizde System.Text.Json paketini 8.0.5 sürümüne güncellemek önemlidir. Bu güncelleme, en yeni özelliklerle uyumluluğu sağlamak ve önemli güvenlik iyileştirmelerini ele almak için kritiktir.
Email Kodlaması
EmailConfig sınıfındaki EmailEncoding özelliği, e-postanın konu ve gövdesi için tercih edilen kodlamayı belirtir.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Konu ve Gövde Kodlaması
EmailConfig sınıfındaki SubjectEncoding ve BodyEncoding özellikleri, e-postanın konu ve gövde kısmında kullanılan kodlamayı sırasıyla tanımlar.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Gerekli CSS ve JS Dosyalarını İndirin
Doconut'un düzgün çalışmasını sağlamak için projenize belirli CSS ve JS dosyalarını eklemeniz gerekir. Aşağıdaki bağlantıyı kullanarak gerekli tüm dosyaları içeren bir ZIP dosyasını indirebilirsiniz: