.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.

Startup.cs
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:

Usings
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.

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

DocOptions Nesnesi Oluşturun

Belirli yapılandırmalarla bir DocOptions nesnesinin örnek başlatılması:

DocOptions
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:

PdfConfig
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.

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

HTML'nize viewer ekleyin

HTML
<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.

HTML Headers
<!-- 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:

C#
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.

C#
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.

C#
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.

C#
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.

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

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.

C#
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.

C#
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.

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

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.

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

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.

Usage
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.

Usage
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.

Usage
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: