This commit is contained in:
48
docs/snippets/csharp/config/ElementBasedOutput.md
Normal file
48
docs/snippets/csharp/config/ElementBasedOutput.md
Normal file
@@ -0,0 +1,48 @@
|
||||
```csharp title="Element-Based Output (C#)"
|
||||
using Kreuzberg;
|
||||
|
||||
// Configure element-based output
|
||||
var config = new ExtractionConfig
|
||||
{
|
||||
OutputFormat = OutputFormat.ElementBased
|
||||
};
|
||||
|
||||
// Extract document
|
||||
var result = Kreuzberg.ExtractFileSync("document.pdf", config);
|
||||
|
||||
// Access elements
|
||||
foreach (var element in result.Elements)
|
||||
{
|
||||
Console.WriteLine($"Type: {element.ElementType}");
|
||||
|
||||
var text = element.Text.Length > 100
|
||||
? element.Text.Substring(0, 100)
|
||||
: element.Text;
|
||||
Console.WriteLine($"Text: {text}");
|
||||
|
||||
if (element.Metadata.PageNumber.HasValue)
|
||||
{
|
||||
Console.WriteLine($"Page: {element.Metadata.PageNumber}");
|
||||
}
|
||||
|
||||
if (element.Metadata.Coordinates != null)
|
||||
{
|
||||
var coords = element.Metadata.Coordinates;
|
||||
Console.WriteLine($"Coords: ({coords.Left}, {coords.Top}) - ({coords.Right}, {coords.Bottom})");
|
||||
}
|
||||
|
||||
Console.WriteLine("---");
|
||||
}
|
||||
|
||||
// Filter by element type
|
||||
var titles = result.Elements
|
||||
.Where(e => e.ElementType == "title");
|
||||
|
||||
foreach (var title in titles)
|
||||
{
|
||||
var level = title.Metadata.Additional.TryGetValue("level", out var levelValue)
|
||||
? levelValue.ToString()
|
||||
: "unknown";
|
||||
Console.WriteLine($"[{level}] {title.Text}");
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user