```csharp title="C#"
using Kreuzberg;

var config = new ExtractionConfig
{
    TokenReduction = new TokenReductionOptions
    {
        Mode = "moderate",
        PreserveImportantWords = true,
    },
};

var result = await KreuzbergLib.ExtractFile("verbose_document.pdf", null, config);

var additional = result.Metadata.Additional;
var original = additional.TryGetValue("original_token_count", out var o) ? o : 0;
var reduced = additional.TryGetValue("token_count", out var r) ? r : 0;
var ratio = additional.TryGetValue("token_reduction_ratio", out var rr) ? rr : 0.0;

Console.WriteLine($"Reduced from {original} to {reduced} tokens");
Console.WriteLine($"Reduction: {Convert.ToDouble(ratio) * 100:F1}%");
```
