GroupDocs.Conversion for .NET v26.6 が利用可能になりました。このリリースでは、変換イベントのサポートが強化され、PDF‑to‑Markdown のカスタム画像処理、DOCX の RTL 自動検出、そして多数の安定性向上が追加されています。
このリリースの新機能
| キー | カテゴリ | 概要 |
|---|---|---|
| CONVERSIONNET-7934 | Feature | PDF to Markdown: カスタム画像抽出とプレースホルダー挿入を許可 |
| CONVERSIONNET-8286 | Feature | ConversionEvents アグリゲータを導入し、呼び出しごと/グローバルハンドラの優先順位を設定可能に |
| CONVERSIONNET-8314 | Feature | OnFontSubstituted 変換イベントを追加 |
| CONVERSIONNET-8263 | Improvement | NuGet パッケージ分割 |
| CONVERSIONNET-8280 | Improvement | バイディレクショナルマークアップが欠如または不正な DOCX の RTL 方向を自動検出 |
| CONVERSIONNET-8325 | Improvement | フォームコントロールを含むシートで、SkipEmptyRowsAndColumns が重複テキストを回避できないスプレッドシート → PDF 変換 |
| CONVERSIONNET-7912 | Bug | JPEG/TIFF 出力で文字化けが発生 |
| CONVERSIONNET-8281 | Bug | 特定の XFA PDF を画像に変換するとハングし、結果が生成されない |
| CONVERSIONNET-8321 | Bug | Publisher 変換時の問題 – Aspose.PDF のロードに失敗 |
パブリック API の変更
⚠️ 破壊的変更
- イベント名が変更され、イベント集約モデルが変更されました。既存の結果ごとのイベントプロパティおよびフルエントチェーンメソッドは obsolete とみなされ、v26.9 で削除されます。
ConverterSettings.ListenerとIConverterListenerインターフェイスは obsolete となり、ConversionEventsのライフサイクルイベントに置き換えられました。- 旧
OnConversionCompleted(ドキュメントごとのイベント)はOnDocumentConvertedに名称変更されました。同名は変換実行の最後に一度だけ発火するパイプライン・ライフサイクルイベントとしても使用されます。
1. 新しいフォント置換イベント
| API | 説明 |
|---|---|
ConversionEvents.OnFontSubstituted |
ソースドキュメントで必要なフォントが欠如しており、代替フォントが使用されたときに発火します(自動またはユーザー定義ルールによる)。 |
FontSubstitutionContext |
置換に関する詳細情報を提供します:SourceFileName、OriginalFontName、SubstituteFontName、Reason。 |
FontSubstitute |
ユーザーが提供する置換ルールを表します(例:FontSubstitute.Create("MissingFont", "Arial"))。 |
参照:
クラシック API の例
using GroupDocs.Conversion;
using GroupDocs.Conversion.Contracts;
using GroupDocs.Conversion.Options.Convert;
var events = new ConversionEvents
{
OnFontSubstituted = ctx =>
{
var detail = ctx.OriginalFontName != null
? $"{ctx.OriginalFontName} -> {ctx.SubstituteFontName}"
: ctx.Reason;
Console.WriteLine($"Font substituted in '{ctx.SourceFileName}': {detail}");
}
};
using var converter = new Converter(
"source.docx",
() => new ConverterSettings(),
() => events);
converter.Convert("output.pdf", new PdfConvertOptions());
フルエント API の例
FluentConverter
.WithEvents(e => e.OnFontSubstituted = ctx =>
Console.WriteLine($"Font substituted: {ctx.Reason ?? ctx.OriginalFontName}"))
.Load("source.docx")
.ConvertTo("output.pdf")
.WithOptions(new PdfConvertOptions())
.Convert();
置換ルールの例(Word 処理 / スプレッドシート / PDF)
using GroupDocs.Conversion.Options.Load;
using var converter = new Converter(
"source.docx",
_ => new WordProcessingLoadOptions
{
FontSubstitutes = new List<FontSubstitute>
{
FontSubstitute.Create("MissingFont", "Arial")
}
},
() => new ConverterSettings(),
() => events);
converter.Convert("output.pdf", new PdfConvertOptions());