IRONSOFTWAREHOME

PDF Oluşturmada C#'da Özel Tireleme Nasıl Eklenir?

Curtis Chau
Curtis Chau
Updated: 31 Mart 2026

C# PDF oluşturma sırasında özel tireleme, dar sütunlarda, faturalar, sözleşmeler ve çok dilli raporlarda garip boşluk, kelime taşması ve zayıf metin kaydırmayı düzeltmeye yardımcı olur. Bir PDF render bileşeni doğru tireleme desenlerini uygulamadığında, hizalanmış metinlerde büyük boşluklar oluşabilir veya satırlar arasında kötü kırılabilir.

IronPDF'de, tireleme, Word tarzı bir belge nesne modeli yerine HTML'den PDF'e geçiş sırasında Chrome motoru üzerinden işlenir. CSS hyphens: auto özelliği, işleyiciye kelimeleri geçerli hece sınırlarında kırma imkanı verir ve IronPDF bu davranışı PDF oluşturma sırasında uygular. ChromePdfRenderOptions içindeki CustomHyphenation özelliği, hangi heceleme kalıplarının kullanılacağını kontrol eder.

Pattern dosyaları TeX formatını kullanır ve yerel bir dosya yolundan veya uzaktan bir URL'den yüklenebilir. Bu, farklı diller ve belge düzenleri için özel tireleme kuralları tanımlanmasını ve nihai PDF'de kelime kırmalar üzerinde daha fazla kontrol sağlanmasını mümkün kılar.

Bu kılavuz, C#'ta CustomHyphenationDefinitions API'sini nasıl kullanacağınızı açıklar; yerel ve uzak kalıp yükleme, geri dönüş davranışı, sınırlamalar, hata işleme ve önbellekleme dahil.


NuGetNuGet ile yükleyin

PM > Install-Package IronPdf

Install IronPDF by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.
Hızlı Başlangıç
  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    using IronPdf;
    
    // Create renderer and assign custom hyphenation patterns from a remote URL
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CustomHyphenation = new CustomHyphenationDefinitions
    {
        PatternSource = "https://raw.githubusercontent.com/hyphenation/tex-hyphen/master/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-en-us.pat.txt",
        ExceptionSource = "https://raw.githubusercontent.com/hyphenation/tex-hyphen/master/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-en-us.hyp.txt"
    };
    
    // Render HTML with CSS hyphens:auto to trigger word breaking
    var pdf = renderer.RenderHtmlAsPdf("<div style='text-align:justify; hyphens:auto; width:120px;'>Supercalifragilisticexpialidocious</div>");
    pdf.SaveAs("hyphenated.pdf");
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
    arrow pointer

Minimal İş Akışı

  1. IronPDF NuGet paketini yükleyin
  2. Bir renderer örneği oluşturun
  3. renderer.CustomHyphenation'yi PatternSource yolu veya URL'si ile yeni bir CustomHyphenationDefinitions olarak ayarlayın
  4. HTML içeriğinin CSS'sine hyphens dahil edin
  5. renderer.RenderHtmlAsPdf() çağırın ve sonucu kaydedin

PDF Rederinglemede Özel Tireleme Nasıl Çalışır?

CustomHyphenationDefinitions sınıfı, IronPDF'nin işlem sırasında heceleme kurallarını nereden yükleyeceğini tanımlar. Chromium motoru bu kalıpları okur ve CSS hyphens kuralı bir HTML elemanında mevcut olduğunda uygular.

CustomHyphenationDefinitions Sınıfı Nedir?

Bu sınıf iki özellik sunar:

Tablo 1: CustomHyphenationDefinitions Özellikleri
ÖzellikTürGerekliAçıklama
PatternSourcestringEvetTireleme desen dosyasının yolu veya URL'si (örn., hyph-en-us.pat.txt)
ExceptionSourcestringHayırTireleme istisna dosyasının yolu veya URL'si (örn., hyph-en-us.hyp.txt)

Desen dosyaları, GitHub'daki tex-hyphen projesi tarafından sürdürülen TeX tireleme formatını takip eder. Her dilin depoda iki dosyası vardır: hyph-{lang}.pat.txt kalıp kuralları için ve hyph-{lang}.hyp.txt istisna listesi için. GitHub'da barındırılan dosyalara referans verildiğinde, ham içerik URL'si (https://raw.githubusercontent.com/ ile başlayan) gereklidir — standart bir GitHub sayfası URL'si HTML döndürür, kalıp metni değil.

Özel Heceleme Yerleşik Dil Ayarını Ne Zaman Geçersiz Kılar?

PdfHyphenationLanguage numarası ve ChromePdfRenderOptions üzerindeki HyphenationLanguage, İngilizce (US), İngilizce (British) ve Rusça için yerleşik ön ayarlar sağlar. CustomHyphenation özelliği, her ikisi de ayarlandığında bu numara üzerinden öncelik alır, bu net bir öncelik zincirini takip eder:

  1. CustomHyphenation — geçerli bir PatternSource ile ayarlandığında, özel kalıplar kullanılır
  2. HyphenationLanguage — özel desenler yapılandırılmamışsa, yerleşik dil ön ayarı uygulanır
  3. Hiçbiri — hiçbiri ayarlanmamışsa, tireleme gerçekleşmez

Özel Desen Yükleme Başarısız Olduğunda Ne Olur?

Desen yükleme sırasında meydana gelen hatalar kaydedilir ancak istisnalar atılmaz. Render işlemi, başarısız olmaktan ziyade tirsiz devam eder. HyphenationLanguage değeri de yapılandırılmışsa, işleyici bu yerleşik ön ayara geri döner.

Bu sessiz başarısızlık davranışı, üretim ortamları için kasıtlı bir tasarım tercihi. Uzaktaki bir desen dosyasını fetch ederken ağ zaman aşımı, geçersiz dosya yolu, DNS çözümleme hatası veya hatalı desen içeriği, render hattını çökertecek değil. PDF yine üretilir - sadece tiressiz kelime bölmeleri yoktur.

Takas güdümü, görünürlüktür. Kötü bir desen dosyası veya ulaşılmaz bir URL, her iki kaynak değeri de kullanarak yapılacak sonraki her render üzerinde sessizce etki gösterecek (çünkü önbelleğe alma da başarısızlık durumunu saklar). Öneri, desen dosyalarını doğrulamak ve uzaktan erişime sahip URL'lerin erişilebilirliğini test etmektir - uygulama başlatma veya CI/CD dağıtım kontrolleri sırasında - render zamanı değil.


Desen Dosyaları Uzaktan URL'den Nasıl Yüklenir?

PatternSource'i uzak bir URL'ye yönlendirmek, dosyaları projeye dahil etmeden özel hecelemeyi uygulamanın en hızlı yoludur. Aşağıdaki örnek ABD Tex-hyphen havuzundan İngilizce desenleri yükler ve hizalanmış bir metin bloğu oluşturur:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Load custom patterns from a remote TeX hyphenation repository
renderer.RenderingOptions.CustomHyphenation = new CustomHyphenationDefinitions
{
    PatternSource = "https://raw.githubusercontent.com/hyphenation/tex-hyphen/master/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-en-us.pat.txt",
    ExceptionSource = "https://raw.githubusercontent.com/hyphenation/tex-hyphen/master/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-en-us.hyp.txt"
};

string html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; }
        .narrow-column {
            width: 150px;
            text-align: justify;
            hyphens: auto;
            -webkit-hyphens: auto;
            border: 1px solid #ccc;
            padding: 10px;
        }
    </style>
</head>
<body>
    <div class='narrow-column'>
        The extraordinarily sophisticated implementation demonstrates
        how hyphenation significantly improves the typographical quality
        of justified text in constrained column widths.
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("remote-hyphenation.pdf");

Çıktı

Oluşturulan PDF, kelime sonları hece sınırlarında kesilmiş şekilde hizalı paragrafı gösterir. Tireleme olmadan, aynı metin büyük kelime arası boşluklar oluşturur veya sütunu taşır.

Chromium uyumluluğu için hem hyphens hem de hyphenate-limit-chars CSS bildirimleri gereklidir. hyphens kuralı, hecelemeyi en görünür hale getirir. Hedef HTML elemanları üzerinde CSS bildirimi yoksa, özel desenler yüklenir ancak asla uygulanmaz.

Lütfen dikkate alın: URL ham metin içeriğini işaret etmelidir. https://github.com/hyphenation/tex-hyphen/blob/master/... gibi standart bir GitHub URL'si, kalıp doğrulamasını başarısız kılacak bir HTML sayfa sarıcı döndürür. https://raw.githubusercontent.com/... formunu kullanın veya doğru URL'yi edinmek için GitHub'da 'Ham' düğmesini tıklayın.

Uzak Kaynak Sınırlamaları Nelerdir?

Tablo 2: Uzaktan URL Kısıtlamaları
KısıtlamaDeğer
ProtokollerHTTP ve HTTPS (HTTPS önerilir)
İzin verilen içerik türleritext/plain, application/octet-stream
Maksimum yanıt boyutu5 MB
İstek zaman aşımı10 saniye
GüvenlikÖzel/yerel IP'lere yapılacak istekler (10.x.x.x, 192.168.x.x, localhost), SSRF saldırıları önlemek için engellidir
Reddedilen içerikİkili dosyalar, null byte içeren dosyalar, <script> etiketleri içeren dosyalar

Konteyner ve bulut ortamları (Docker, Azure, AWS), desen dosya barındırıcısına uzak yükleme başarılı olması için dışa HTTPS erişimine sahip olmalıdır.


Bu türden favori kütüphanem IronPDF'dir. PDF dosyalarının hızlı ve verimli bir şekilde işlenmesine olanak tanır. Ayrıca, PDF/A formatına dışa aktarma ve dijital imzalama gibi birçok değerli özelliğe sahiptir.

Milan Jovanovic

Microsoft MVP

Vaka çalışmasını görüntüle

IronOCR, manuel işleme maliyetinden yıllık 40.000 USD tasarruf etmemizi sağlıyor, üretkenliği artırıyor ve yüksek etkili görevler için kaynakları serbest bırakıyor. Kesinlikle tavsiye ederim.

Brent Matzelle

Teknoloji Müdürü, OPYN

Vaka çalışmasını görüntüle

IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.

David Jones

Baş Yazılım Mühendisi, Agorus Build

Vaka çalışmasını görüntüle

Yerel Dosyalardan Desen Dosyaları Nasıl Yüklenir?

Harici ağ erişiminin kısıtlı olduğu ortamlar veya derleme zamanında dosya eklemeyi tercih edenler için, PatternSource yerel dosya sistemi yolunu da kabul eder:

Lütfen dikkate alın: Desen dosyaları çalıştırmadan önce diskte mevcut olmalıdır. hyph-en-us.pat.txt and hyph-en-us.hyp.txt'i tex-hyphen deposu'ndan indirin ve kodunuzun referans verdiği yola yerleştirin.
using IronPdf;

var renderer = new ChromePdfRenderer();

// Load English hyphenation patterns from local files
renderer.RenderingOptions.CustomHyphenation = new CustomHyphenationDefinitions
{
    PatternSource = @"C:\patterns\hyph-en-us.pat.txt",
    ExceptionSource = @"C:\patterns\hyph-en-us.hyp.txt"
};

string html = @"
<html>
<head>
    <style>
        .invoice-container {
            width: 220px;
            text-align: justify;
            hyphens: auto;
            -webkit-hyphens: auto;
            font-family: Georgia, serif;
            font-size: 11px;
            line-height: 1.5;
            border: 1px solid #ddd;
            padding: 12px;
        }
        h3 { font-size: 13px; margin-top: 0; }
        .terms { color: #555; margin-top: 10px; font-size: 9px; }
    </style>
</head>
<body>
    <div class='invoice-container'>
        <h3>Invoice #20260331</h3>
        <p>Nondiscrimination acknowledgement: The undersigned 
        representative hereby confirms that all pharmaceutical 
        reimbursement documentation has been independently 
        verified and cross-referenced against the applicable 
        regulatory framework established by the appropriate 
        governmental oversight authority.</p>
        <p class='terms'>Notwithstanding any indemnification 
        provisions, the counterparty's disproportionate 
        liability shall not exceed the predetermined 
        recharacterization threshold established under the 
        intergovernmental cooperation agreement.</p>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("local-hyphenation.pdf");

Çıktı

Aşağıda görüldüğü gibi, aksi takdirde taşacak veya aşırı boşluk yaratacak uzun kelimeler, hece sınırlarında otomatik olarak bölünür. Motor sadece ihtiyaç duyulduğunda tireleme yapar — bir satıra temiz şekilde sığan kelimeler bütün bırakılır.

Başka bir dile geçmek, sadece dosya yollarının değiştirilmesini gerektirir:

// Switch to French hyphenation — just change the file paths
renderer.RenderingOptions.CustomHyphenation = new CustomHyphenationDefinitions
{
    PatternSource = @"C:\patterns\hyph-fr.pat.txt",
    ExceptionSource = @"C:\patterns\hyph-fr.hyp.txt"
};

Bu, yerleşik PdfHyphenationLanguage numarası tarafından kapsanmayan diller için CustomHyphenation'i özellikle faydalı hale getirir, bu şu anda yalnızca İngilizce (US), İngilizce (British), ve Rusça destekler.

Yerel Dosya Kısıtlamaları Nelerdir?

Tablo 3: Yerel Dosya Kısıtlamaları
KısıtlamaDeğer
İzin verilen uzantılar.txt, .pat
Maksimum dosya boyutu5 MB
KodlamaUTF-8
İçerik kurallarıYalnızca geçerli tireleme desenleri — yorumlar, meta veriler, başlıklar, TeX yönergeleri veya kodlama notları yok
Reddedilen içerikİkili dosyalar, null byte içeren dosyalar, <script> etiketleri içeren dosyalar

Önbellekleme, Toplu Redering Performansını Nasıl Etkiler?

Özel heceleme kalıpları, ilk yüklemeden sonra bellekte PatternSource ve ExceptionSource değerleri ile anahtarlandıktan sonra önbelleğe alınır. Aynı kaynak yollarını veya URL'lerini referans eden sonraki renderlar, dosyaları yeniden indirmeden veya yeniden okumadan önbelleğe alınmış desenleri yeniden kullanır.

Bu davranış yüksek hacimli PDF render workflow'ları için iki pratik sonucu vardır:

Performans: İlk render, G/I maliyetini (ağ isteği ya da disk okuma) karşılar. Bunun ardından gelen her render, bir desen yükleme perspektifinden etkili bir şekilde ücretsizdir. Aynı tireleme yapılandırmasıyla yüzlerce PDF üreten toplu işler için genel gider ihmal edilebilir düzeydedir.

Sessiz başarısızlık kalıcılığı: Desen yükleme sırasında meydana gelen hatalar istisnalar atmamakta ve render, tiressiz devam etmekte olduğundan, ilk yüklemede kötü bir desen dosyası veya ağ hatası tüm parti boyunca sessizce varlığını sürdürür. Sonraki her render da tireleme olmayacak, ek hata sinyali olmadan. Desen dosyalarını doğrulayın ve URL erişilebilirliğini uygulama başlatma veya dağıtım sırasında doğrulayın — render zamanı değil.

Önbellek anahtar kimliği: Önbellek anahtarı, PatternSource'nin (ve ayarlanmışsa ExceptionSource) tam dizi değeridir. Aynı URL veya dosya yoluna işaret eden iki renderer örneği, aynı önbelleğe alınmış desenleri paylaşır. URL'yi değiştirmek — hatta aynı dosyanın başka bir sürümüne — yeni bir yükleme zorlar.

Üretim dağıtımından önce dosya içeriğini önceden doğrulayın. Desen dosyaları sadece geçerli tireleme metni içermelidir. Yorumların, TeX yönergelerinin, kodlama deklarasyonlarının veya herhangi bir desen dışı içeriğin varlığı entegrasyonun başarısız olmasına neden olur. tex-hyphen havuzu, birçok dil için önceden hazırlanmış temiz desen dosyaları sağlar.

Uzak desen kaynakları için HTTPS önerilir. HTTP desteklenir ancak dosya içeriği için taşıma katmanı koruması sunmaz.


Bir Sonraki Adımlar Nelerdir?

CustomHyphenation özelliği, ChromePdfRenderOptions üzerindeki sözcük kırma davranışı üzerinde doğrudan kontrol sağlar — PdfHyphenationLanguage aracılığıyla kullanılabilen üç yerleşik ön ayarın ötesine geçer. Kalıp dosyaları uzak URL'lerden veya yerel yollardan yüklenir, ilk kullanımdan sonra bellekte önbelleğe alınır ve yükleme başarısız olursa HyphenationLanguage ayarına geri döner. Hatalar kaydedilir ancak asla atılmaz, bu yüzden desen doğrulamasının dağıtım sırasında gerçekleşmesi gerekir, render zamanı değil.

İlgili IronPDF render yapılandırmaları için bkz:

Canlı bir projede özel tirelemeyi test etmek için IronPDF'nin ücretsiz 30 günlük denemesini alın veya üretim dağıtımı için lisanslama seçeneklerine göz atın.

ChromePdfRendererPatternSourceCustomHyphenationDefinitionsstringhyphens: auto``RenderHtmlAsPdfCustomHyphenationDefinitionshyphens: autoHyphenationLanguageChromePdfRenderOptionshyph-en-us.pat.txt-webkit-hyphens: auto``text-align: justifyPdfHyphenationLanguageChromePdfRenderOptions

Sıkça Sorulan Sorular

C# kullanarak PDF oluşturma sırasında özel hecelemeyi nasıl uygulayabilirim?

IronPDF kullanarak C#'ta PDF oluştururken, URL'lerden veya yerel dosyalardan TeX heceleme kalıplarını yükleyerek özel hecelemeyi uygulayabilirsiniz. Bu, PDF oluştururken kelime kırmayı kontrol etmenizi sağlar.

TeX heceleme kalıpları nedir ve IronPDF'te nasıl kullanılır?

TeX heceleme kalıpları, kelimelerin uygun heceleme noktalarında kırılması için kurallar setidir. IronPDF, bu kalıpları yükleyerek oluşturduğunuz PDF'lerde kelimelerin nasıl hecelendiğini yönetmenizi sağlar.

IronPDF'te URL'den heceleme kalıpları yükleyebilir miyim?

Evet, IronPDF URL'lerden doğrudan heceleme kalıplarının yüklenmesini destekler, bu sayede C# PDF projeleriniz için dinamik ve esnek kelime kırma yapılandırmaları sağlar.

IronPDF ile heceleme kalıpları için yerel dosyalar kullanmak mümkün mü?

Kesinlikle, IronPDF, özel heceleme kalıplarını yerel dosyalardan yüklemenizi sağlar, bu sayede PDF'lerinizde kelime hecelemesi üzerinde hassas kontrol elde edersiniz.

IronPDF'te özel hecelemeyi kullanırken kısıtlamalar nelerdir?

IronPDF'te özel hecelemeyi kullanırken, kalıpların doğru biçimlendirildiğinden ve hedeflenen dil ve belge düzeni gereksinimleriyle uyumlu olduğundan emin olmalısınız.

PDF belgelerimde neden özel hecelemeye ihtiyaç duyabilirim?

Özel heceleme, PDF belgelerinin okunabilirliğini artırmak ve biçimlendirmeyi tutarlı hale getirmek için yararlıdır, özellikle karmaşık dil-spesifik kelime kırılmalarıyla başa çıkarken.

IronPDF, özel hecelemenin uygulanması için kod örnekleri sağlar mı?

Evet, IronPDF, PDF oluşturma sürecinize bu özelliği entegre etmeyi kolaylaştırarak, C# projelerinizde özel tireleme uygulamanıza yardımcı olacak kod örnekleri sağlar.

Özel tireleme, PDF oluşturmayı nasıl iyileştirir?

Özel tireleme, kelime kesme üzerinde hassas kontrol sağlayarak, farklı diller ve formatlar arasında belge görünümünü ve okunabilirliğini geliştirir.

Can custom hyphenation be used with local files in IronPDF?

Yes, IronPDF supports using local file paths for hyphenation patterns, allowing environments without network access to apply custom word-breaking rules using the `CustomHyphenationDefinitions` property.

Why might one use custom hyphenation over built-in settings in IronPDF?

Custom hyphenation provides flexibility for languages not covered by IronPDF's built-in presets or when specific documents require tailored hyphenation rules to optimize layout and readability.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 20,756,830Sürüm:2026.7yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Tarayıcıya tıklayın ve "IronPdf" arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.7

veya Windows Yükleyiciyi şuradan buradan indirin.

  1. IronPDF'i, ~/Libs gibi bir yere, Solution dizininiz içinde indirin ve açın.
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Tarayıcı sekmesini seçin, "IronPdf.dll"

Lisanslar $999

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez