.NET 6 veya Üstünde Kurulum

Startup.cs dosyası

.NET Core projesinin Startup.cs dosyası içinde, bu kod satırları MapWhen yöntemi kullanılarak 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ı Ekle

Projenizde, aşağıdaki using ifadelerini ekleyin:

Usings
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;

Viewer nesnesini örnekle

Bu satır, Viewer sınıfının yeni bir örneğini oluşturur ve kodunuz içinde bir viewer nesnesi yaratmanıza olanak tanır.

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 yapılandırma nesnesi kurun

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, görüntüleyici nesnesinin OpenDocument metodunu çağırır ve sunucuda bulunan belge dosyasının yolunu ve önceden yapılandırılmış PdfConfig ve DocOptions nesnelerini parametre olarak geçirir.

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

HTML'nize görüntüleyiciyi ekleyin

HTML
<div id="div_ctlDoc"></div>

CSS ve JavaScript dosyalarını ekle

Sayfaya aşağıdaki CSS ve JavaScript dosyalarını ekleyin. Bu betikler, kod örnekleriyle birlikte ZIP dosyasına dahil edilmiştir.

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 Lisans Ekleyin

Otomatik Lisans Algılama

docViewer'ı otomatik lisans algılamasıyla 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ış ile 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 Belgesi ile 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şlatma işlemine dosya yollarının bir 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ış ile 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 Belgesi ile 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

Projenizin .NET Core Standard ile tam uyumlu olmasını sağlamak için, aşağıdaki NuGet paketlerinin eklenmesi gerekir, alfabetik sırayla listelenmiştir.

  • MessagePack - Sürüm 2.5.140
  • Microsoft.Bcl.AsyncInterfaces - Sürüm 8.0.0
  • Microsoft.Extensions.Caching.Abstractions - Sürüm 8.0.0
  • Microsoft.Extensions.Configuration - Sürüm 8.0.0
  • Microsoft.Extensions.Configuration.Abstractions - Sürüm 8.0.0
  • Microsoft.Extensions.Configuration.FileExtensions - Sürüm 8.0.0
  • Microsoft.Extensions.Configuration.Json - Sürüm 8.0.0
  • Microsoft.Extensions.FileProviders.Abstractions - Sürüm 8.0.0
  • Microsoft.Extensions.FileProviders.Physical - Sürüm 8.0.0
  • Microsoft.Extensions.FileSystemGlobbing - Sürüm 8.0.0
  • Microsoft.Extensions.Primitives - Sürüm 8.0.0
  • System.Buffers - Sürüm 4.5.1
  • System.Formats.Asn1 - Sürüm 8.0.0
  • System.Numerics.Vectors - Sürüm 4.5.0
  • System.Security.Cryptography.Cng - Sürüm 5.0.0
  • System.Security.Cryptography.Pkcs - Sürüm 8.0.0
  • System.Text.Encoding.CodePages - Sürüm 8.0.0
  • System.Text.Encodings.Web - Sürüm 8.0.0
  • System.Text.Json - Sürüm 8.0.3
  • System.Threading.Tasks.Extensions - Sürüm 4.5.4

Render Yapılandırma Seçenekleri

Aşağıdaki seçenekleri kullanarak render 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 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 ancak daha fazla sunucu belleği ve işlem süresi kullanır.
  • DefaultRender = false : Bu seçenek, kalite biraz azalırken daha hızlı render sağlar.

Bir Görüntü Açıklaması Nasıl Eklenir

C#'da

1. Belgeyi açın ve ilk sayfanın boyutlarını alın. 2. Sayfa boyutlarıyla AnnotationManager'ı başlatın. 3. imgUrl içinde görüntü yolunu ayarlayarak bir ImageAnnotation oluşturun ve konum ve boyutu Rectangle içinde belirtin. 4. Açıklamayı yöneticiye ekleyin ve görüntülemek için belge görüntüleyicide yükleyin.

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 belge üzerinde renderlamak için çizin.

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 dizinlerine yüklü olmayan yazı tiplerine dayanan Word belgelerini işlemek için özellikle yararlı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 çok önemlidir. Bu güncelleme, en yeni özelliklerle uyumluluğu sağlamak ve önemli güvenlik iyileştirmelerini ele almak için kritik öneme sahiptir.

E-posta 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, bir e-postanın konu ve gövdesi için 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
};

Word Görüntüleyici Kültür Desteği

WordConfig sınıfındaki DocumentCulture özelliği, DOC ve DOCX dosyaları için kültürü açıkça tanımlamanıza olanak tanır. Bu, tarih, para birimi ve sayılar gibi yerelleştirilmiş içeriğin Microsoft Word'de olduğu gibi tam olarak görüntülenmesini sağlar. Bu, belirli biçimlendirme gereksinimlerine sahip diller için özellikle faydalıdır.

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