.NET Standard / Core'da Kurulum
Startup.cs dosyası
Bir .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.
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.Clouds;
// TODO: implement licence loading, viewer registration, document opening, conversion using current APIViewer nesnesini örnekleyin
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 is injected; no explicit construction required in Doconut.NETStandard 26.9.0DocOptions nesnesi ayarlayın
Belirli yapılandırmalarla bir DocOptions nesnesinin örnek başlatılması:
var documentOptions = new DocOptions
{
Password = "",
// ImageResolution is obsolete; omitted.
TimeOut = 30
};Bir config nesnesi ayarlayın
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 yöntemini çağırır ve sunucuda bulunan belge dosyasının yolunu, ayrıca daha önce yapılandırılmış PdfConfig ve DocOptions nesnelerini parametre olarak geçirir.
dynamic viewer = null;
var token = viewer.LoadDocument(path, null, null);Viewer'ı HTML'nize 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ına dahil edilmiştir.
<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 Algılama
docViewer'ı otomatik lisans algılamasıyla başlatmak için aşağıdaki satırı kullanın:
```csharp
// Create a Viewer instance using the current API (no constructor arguments required).
var docViewer = new Viewer();
```Manuel Varsayılan Lisans Ekle
Viewer'ı başlatırken tek bir varsayılan lisans dosyasının yolunu manuel olarak belirtebilirsiniz.
using System.IO;
using Microsoft.Extensions.DependencyInjection;
using Doconut;
var licenseFilePath = Path.Combine(builder.Environment.WebRootPath, "path/to/your/license");
var docViewer = app.Services.GetRequiredService<Viewer>();Akış ile Lisans Ekle
Bu yöntem, bir akış kullanarak lisans eklemek için Viewer.DoconutLicense(Stream licenseStream) aşırı yüklemesini kullanır.
using System.IO;
using Doconut.Infrastructure.Licensing;
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open, FileAccess.Read))
{
var license = new DoconutLicense { DocBytes = new BinaryReader(licenseStream).ReadBytes((int)licenseStream.Length) };
}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.
using System.Xml;
using Doconut.Infrastructure.Licensing;
var xmlDoc = new XmlDocument(); // load the license XML
xmlDoc.Load("path/to/your/license.xml");
var license = new DoconutLicense(); // instantiate license object (populate properties as needed)Manuel Varsayılan Çoklu Eklenti Lisansları
Birden fazla lisans belirtmeniz gerekiyorsa, viewer başlatmasına dosya yolu listesi sağlayabilirsiniz.
```csharp
// Prepare the paths to the viewer licence files (kept for reference; the current API loads them automatically)
var 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")
};
// The Viewer class no longer requires the licences in its constructor.
// Create an instance with the default constructor.
var docViewer = new Viewer();
// Open a document (e.g., a PDF) and obtain a token that represents the opened file.
string token = await docViewer.OpenDocumentAsync(
filePath: Path.Combine(_hostingEnvironment.WebRootPath, "sample.pdf"),
options: new DocOptions(),
ct: CancellationToken.None);
```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.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
// In Doconut.NETStandard 26.9.0 the license is supplied via the configuration
// passed to OpenDocumentAsync (BaseConfig), so the explicit SetLicensePlugin call
// is no longer required. Keep the license file accessible to the viewer or
// include it in your BaseConfig as shown in other samples.
}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.
// The license XML is discovered automatically by the viewer in Doconut.NETStandard 26.9.0.
// No explicit API call is required to register it.
string token = await Viewer.OpenDocumentAsync(
"path/to/your/document.pdf",
null, // DocOptions – use default settings
CancellationToken.None);Gerekli NuGet Paketleri
Projenizin .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 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, biraz daha düşük kalite pahasına daha hızlı render sağlar.
Bir Görüntü Açıklaması Nasıl Eklenir
C#'ta
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österin.
using Doconut.Annotations;
using System.Drawing;
// Placeholder: open the document and obtain page dimensions using the current Doconut.NETStandard API.
// Placeholder: create an annotation manager for the page size.
string imgUrl = "img/sample.png";
var imgAnn = new ImageAnnotation(
1,
new Rectangle(600, 700, 750, 300),
imgUrl
);
// Placeholder: add the annotation to the manager and load the annotation XML back into the viewer using the current API.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.
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.
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.
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.
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ı 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 yararlıdır.
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)