カスタムハイフネーションをPDF生成に追加する方法 in C
C#のPDF生成におけるカスタムハイフネーションは、狭い列、請求書、契約書、多言語レポートでの不必要なスペース、文字のオーバーフロー、そして貧弱なテキストの折返しを修正するのに役立ちます。 PDFレンダラが適切なハイフネーションパターンを適用しない場合、均等割付されたテキストは大きなギャップを残したり、行を渡って無理に分割されたりする可能性があります。
IronPDFでは、HTMLからPDFへのレンダリング中にChromiumエンジンを介してハイフネーションが処理され、Wordスタイルの文書オブジェクトモデルでは処理されません。 CSSのhyphens: autoプロパティは、レンダラーが単語を有効な音節の境界で分割できるようにし、IronPDFはPDF生成時にその動作を適用します。 ChromePdfRenderOptionsでどのハイフネーションパターンを使用するかを制御します。
パターンファイルはTeX形式を使用し、ローカルファイルパスまたはリモートURLからロード可能です。 これにより、最終的なPDFでの単語の区切りについて、さまざまな言語と文書レイアウトにカスタムのハイフネーションルールを定義することが可能となり、より多くの制御が可能になります。
このガイドは、ローカルおよびリモートパターンの読み込み、フォールバック動作、制限、エラーハンドリング、キャッシングを含め、C#でCustomHyphenationDefinitions APIを使用する方法を説明します。
クイックスタート
-
IronPDF をNuGetパッケージマネージャでインストール
PM > Install-Package IronPdf -
このコード スニペットをコピーして実行します。
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"); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー
- IronPDF NuGetパッケージをインストールする
ChromePdfRendererインスタンスを作成しますPatternSourceパスまたはURLを設定します- HTMLコンテンツのCSSに
hyphens: autoを含めます RenderHtmlAsPdfを呼び出し、結果を保存します
PDFレンダリングでカスタムハイフネーションはどのように機能するのか?
CustomHyphenationDefinitionsクラスは、IronPDFがレンダリングプロセス中にハイフネーションルールを読み込む場所を定義します。 Chromiumエンジンはこれらのパターンを読み込み、HTML要素にCSS hyphens: auto ルールが存在する場合にそれらを適用します。
CustomHyphenationDefinitionsクラスとは何か?
このクラスは2つのプロパティを公開します:
| プロパティ | タイプ | 必須 | 翻訳内容 |
|---|---|---|---|
PatternSource | 文字列 | はい | ハイフネーションパターンファイルのパスまたはURL (例: hyph-en-us.pat.txt) |
ExceptionSource | 文字列 | なし | ハイフネーション例外ファイルのパスまたはURL (例: hyph-en-us.hyp.txt) |
パターンファイルは、GitHubのtex-hyphenプロジェクトによって維持されるTeXハイフネーションフォーマットに従います。 各言語にはレポジトリに2つのファイルがあります: パターンルール用のhttps://raw.githubusercontent.com/で始まる生のコンテンツURLが必要です - 標準のGitHubページURLはHTMLを返し、パターンテキストではありません。
カスタムハイフネーションはデフォルトの言語設定をどのように上書きするのか?
- CustomHyphenation — 有効なPatternSourceと共に設定されている場合、カスタムパターンが使用されます
- HyphenationLanguage — カスタムパターンが設定されていない場合、組み込み言語プリセットが適用されます
- なしne — 両方が設定されていない場合、ハイフネーションは行われません
カスタムパターンの読み込みが失敗した場合はどうなるか?
パターン読み込み中のエラーはログに記録されますが、例外をスローしません。レンダー操作は失敗することなく、ハイフネーションなしで続行します。 ハイフネーション言語の値も設定されている場合、レンダラはその組み込みプリセットにフォールバックします。
このサイレントフェイルの動作は、製品環境のための意図的な設計選択です。 リモートパターンファイルの取得中のネットワークタイムアウト、無効なファイルパス、DNS解決失敗、または不正なパターンコンテンツは、レンダリングパイプラインをクラッシュさせません。PDFはまだ生成されます - ただし、ハイフネーションされた単語区切りは欠如します。
トレードオフは可視性です。 最初のロード時に不良のパターンファイルまたは到達不能なURLは、それらが同じソース値を使用するすべての後続のレンダーに静かに影響を与えます(キャッシュも失敗状態を保存するためです)。 推奨事項は、パターンファイルを検証し、アプリケーションのスタートアップやCI/CDのデプロイチェック時にリモートURLへのネットワークアクセスを確認することです - レンダー時ではなく。
バッチレンダリングにおけるキャッシングはパフォーマンスにどのように影響しますか?
カスタムハイフネーションパターンは、最初のロード後にPatternSourceとExceptionSourceの値でキー付きでメモリにキャッシュされます。 同じソースパスまたはURLを参照する後続のレンダリングは、キャッシュされたパターンを再ダウンロードまたは再読み込みせずに再利用します。
この動作は高ボリュームPDFレンダリングワークフローにおいて2つの実用的な意味を持ちます。
パフォーマンス: 最初のレンダリングはI/Oコスト(ネットワークリクエストまたはディスク読み込み)を伴います。 その後のレンダリングは、パターン読み込みの観点から実質的に無料です。同じハイフネーション構成で数百のPDFを生成するバッチジョブの場合、オーバーヘッドはごくわずかです。
サイレントフェイルの持続: パターン読み込み中のエラーは例外を投げず、レンダラはハイフネーションなしで続行するため、最初のロードでの悪いパターンファイルやネットワークの失敗はバッチ全体を通じてサイレントに持続します。 その後のすべてのレンダリングもハイフネーションが不足し、追加のエラー信号はありません。 アプリケーションの起動時またはデプロイメント時にパターンファイルを検証し、URLのアクセス可能性を確認してください——レンダリング時ではなく。
キャッシュキーの一貫性: キャッシュキーはPatternSource(および設定されている場合はExceptionSource)の正確な文字列値です。 同じURLまたはファイルパスを指す2つのレンダラインスタンスは、同じキャッシュされたパターンを共有します。 URLを変更すると、同じファイルの異なるバージョンであっても、新たにロードされます。
本番デプロイメント前にファイル内容を事前に検証してください。 パターンファイルには有効なハイフネーションテキストのみを含める必要があります。 コメント、TeXディレクティブ、エンコーディング宣言、または非パターンコンテンツが存在すると、統合が失敗します。 tex-hyphenリポジトリは、数十の言語のための事前構築されたクリーンなパターンファイルを提供します。
リモートパターンソースにはHTTPSを推奨します。 HTTPはサポートされていますが、ファイルコンテンツのトランスポートレイヤー保護を提供しません。
次のステップは何ですか?
ChromePdfRenderOptions上のCustomHyphenationプロパティは、TeXパターンファイルがサポートする任意の言語の単語分割動作を直接制御可能にします — PdfHyphenationLanguageで利用できる3つの組み込みプリセットを超えて拡張します。 パターンファイルはリモートURLまたはローカルパスから読み込まれ、初回使用後にメモリにキャッシュされ、ロードに失敗するとHyphenationLanguage設定にフォールバックします。 エラーはログに記録されますが、スローされることはないため、パターン検証はレンダリング時ではなくデプロイメント時に行うべきです。
関連するIronPDFレンダリング構成については、以下を参照してください:
ChromePdfRenderOptionsAPIリファレンスで利用可能なすべてのレンダリングオプションを調べるPdfHyphenationLanguage列挙型で組み込みの言語プリセットを確認- 完全なHTMLレンダリングパイプラインについては、HTMLからPDFへのレンダリングチュートリアルをご覧ください
- ChromePdfRenderOptions構成の他の手法については、レンダリングオプションのハウツーをご覧ください
- PDF生成と操作の全機能セットについては、IronPDF機能の概要をご覧ください
無料の30日間トライアルのIronPDFを入手して、ライブプロジェクトでカスタムハイフネーションを試し、または製品導入用のライセンスオプションを表示してください。

