.NET 6 veya üzeri için kurulum

Startup.cs dosyası

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

Doconut Ad Alanlarını 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ıza olanak tanır.

Viewer Nesnesini Oluşturun
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 sunucuda bulunan belge dosyasının yolunu ve daha önce yapılandırılmış PdfConfig ve DocOptions nesnelerini parametre olarak geçirir.

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ına dahil edilmiştir.

CSS ve JavaScript dosyalarını ekleyin
<!-- 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

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şlatmasına 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

.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 - 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 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, kalitede hafif bir düşüş pahasına 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. AnnotationManager'ı sayfa boyutlarıyla 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 belge görüntüleyicide yükleyerek görüntüleyin.

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 render etmek 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 dizinlerinde yüklü olmayan yazı tiplerine dayanan Word belgelerini işlemek için özellikle faydalıdır.

Word Belgelerinde Özel Yazı Tipleri
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 kritiktir.

E-posta Kodlaması

EmailConfig sınıfındaki EmailEncoding özelliği, e-postanın konu ve gövdesi için tercih edilen kodlamayı belirtir.

E-posta Kodlaması
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, sırasıyla bir e-postanın konu ve gövdesi için kullanılan kodlamayı tanımlar.

Konu ve Gövde Kodlaması
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.

Word Görüntüleyici Kültür Desteği
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)