.NET Standard / Core için Kurulum

Startup.cs dosyası

.NET Core projesinin Startup.cs dosyasında, 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 bloğun 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:

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

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

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

DocOptions nesnesi oluşturun

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

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, sunucuda bulunan belge dosyasının yolunu ve daha önce yapılandırılmış PdfConfig ve DocOptions nesnelerini parametre olarak geçerek viewer nesnesinin OpenDocument metodunu çağırır.

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 scriptler kod örnekleri içeren ZIP dosyasına dahildir.

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

Projenize Lisanslar Ekleyin

Otomatik Lisans Tespiti

docViewer'ı otomatik lisans tespiti ile 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 Çeşitli 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 projenizin 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 Konfigürasyon 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, biraz daha düşük kalite 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 boyayın.

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 bağlı Word belgelerini işlemek için ö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 esastır. 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.

Usage
var emailConfig = new EmailConfig {
    EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};

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

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: