# Seitenorientierung und -rotation in PDFs
Beim Arbeiten mit PDFs bedeutet dies oft, zwei Dinge über eine Seite zu wissen: ihre Orientierung (Hoch- oder Querformat) und ob der Inhalt gedreht ist. Es gibt zwei Möglichkeiten, dies herauszufinden, und sie beantworten leicht unterschiedliche Fragen.
- `PdfDocument.Pages[i].PageRotation` liest die Drehung aus den PDF-Metadaten.
- `OcrInput.DetectPageOrientation()` erkennt die Ausrichtung visuell mit OCR.
## Orientierung vs. Drehung
Diese sind nicht dieselbe Eigenschaft:
- **Seitenorientierung:** das Seitenlayout. **Hochformat** bedeutet, dass die Höhe größer als die Breite ist; **Querformat** bedeutet, dass die Breite größer als die Höhe ist.
- **Drehwinkel:** wie der Inhalt im Vergleich zur natürlichen Lesedirection steht, z.B. `90`, `180`, usw.
## Option 1: Rotation aus Metadaten lesen
`PageRotation` gibt den im PDF eingebetteten Drehwert zurück und zeigt damit, wie der Inhalt programmgesteuert gedreht wird. Für gut formierte PDFs ist dies zuverlässig und konsistent.
```csharp
var pdf = PdfDocument.FromFile("sample.pdf");
for (int i = 0; i < pdf.PageCount; i++)
{
var page = pdf.Pages[i];
var orientation = page.Width > page.Height ? "Landscape" : "Portrait";
var rotation = page.PageRotation;
Console.WriteLine($"Page {i + 1}: {orientation}, Rotation: {rotation} degrees");
}
```
Sie erhalten beide Fakten in einem Durchgang: Orientierung durch den Breiten-Höhen-Vergleich und den Rotationswinkel direkt aus den Metadaten.
**Am besten geeignet für:** Strukturierte PDFs mit konsistenten, gültigen Metadaten.
## Option 2: Orientierung mit OCR erkennen
Wenn die Metadaten fehlen oder nicht vertrauenswürdig sind, analysieren Sie die Seite stattdessen visuell. `DetectPageOrientation()` untersucht das Layout jeder Seite und ermittelt die wahrscheinlichste Lesedirection, ohne sich auf Metadaten zu verlassen.
```csharp
using var input = new OcrInput();
input.LoadPdf("sample.pdf");
var results = input.DetectPageOrientation();
foreach (var result in results)
{
Console.WriteLine($"Page {result.PageNumber + 1}: Rotation: {result.RotationAngle} degrees");
}
```
Dies ist die richtige Wahl für gescannte Dokumente, bildbasierte PDFs und jede Datei, die richtige Metadaten fehlt.
Die Genauigkeit hierbei verfolgt Texterdichte und Klarheit. Sparsamer oder falsch ausgerichteter Text kann ein falsches Ergebnis erzeugen. Daher beschränken Sie OCR auf einen `Rectangle` über eine dichtere Textregion, um die Erkennung zu stabilisieren.
## Empfehlung
- **Digitale PDFs:** bevorzugen Sie `PdfDocument.PageRotation`, wenn die Metadaten korrekt sind.
- **Gescannt oder bildbasierte PDFs:** verwenden Sie `OcrInput.DetectPageOrientation()`, wenn Metadaten fehlen oder unzuverlässig sind.
Für kritische Workflows führen Sie beide Methoden aus und wenden Ihre eigene Logik an, um etwaige Diskrepanzen auszugleichen. Wenn Sie inkonsistente Rotationsanziegen sehen, überprüfen Sie das spezifische Seitenlayout und validieren Sie eine Methode gegen die andere.
Beim Arbeiten mit PDFs bedeutet dies oft, zwei Dinge über eine Seite zu wissen: ihre Orientierung (Hoch- oder Querformat) und ob der Inhalt gedreht ist. Es gibt zwei Möglichkeiten, dies herauszufinden, und sie beantworten leicht unterschiedliche Fragen.
PdfDocument.Pages[i].PageRotation liest die Drehung aus den PDF-Metadaten.
OcrInput.DetectPageOrientation() erkennt die Ausrichtung visuell mit OCR.
Orientierung vs. Drehung
Diese sind nicht dieselbe Eigenschaft:
Seitenorientierung: das Seitenlayout. Hochformat bedeutet, dass die Höhe größer als die Breite ist; Querformat bedeutet, dass die Breite größer als die Höhe ist.
Drehwinkel: wie der Inhalt im Vergleich zur natürlichen Lesedirection steht, z.B. 90, 180, usw.
Option 1: Rotation aus Metadaten lesen
PageRotation gibt den im PDF eingebetteten Drehwert zurück und zeigt damit, wie der Inhalt programmgesteuert gedreht wird. Für gut formierte PDFs ist dies zuverlässig und konsistent.
var pdf = PdfDocument.FromFile("sample.pdf");for (int i = 0; i < pdf.PageCount; i++){ var page = pdf.Pages[i]; var orientation = page.Width > page.Height ? "Landscape" : "Portrait"; var rotation = page.PageRotation;Console.WriteLine($"Page {i + 1}: {orientation}, Rotation: {rotation} degrees");}
var pdf = PdfDocument.FromFile("sample.pdf");
for (int i = 0; i < pdf.PageCount; i++)
{
var page = pdf.Pages[i];
var orientation = page.Width > page.Height ? "Landscape" : "Portrait";
var rotation = page.PageRotation;
Console.WriteLine($"Page {i + 1}: {orientation}, Rotation: {rotation} degrees");
}
C#
Sie erhalten beide Fakten in einem Durchgang: Orientierung durch den Breiten-Höhen-Vergleich und den Rotationswinkel direkt aus den Metadaten.
Am besten geeignet für: Strukturierte PDFs mit konsistenten, gültigen Metadaten.
Option 2: Orientierung mit OCR erkennen
Wenn die Metadaten fehlen oder nicht vertrauenswürdig sind, analysieren Sie die Seite stattdessen visuell. DetectPageOrientation() untersucht das Layout jeder Seite und ermittelt die wahrscheinlichste Lesedirection, ohne sich auf Metadaten zu verlassen.
using var input = new OcrInput();input.LoadPdf("sample.pdf");var results = input.DetectPageOrientation();foreach (var result in results){Console.WriteLine($"Page {result.PageNumber + 1}: Rotation: {result.RotationAngle} degrees");}
using var input = new OcrInput();
input.LoadPdf("sample.pdf");
var results = input.DetectPageOrientation();
foreach (var result in results)
{
Console.WriteLine($"Page {result.PageNumber + 1}: Rotation: {result.RotationAngle} degrees");
}
C#
Dies ist die richtige Wahl für gescannte Dokumente, bildbasierte PDFs und jede Datei, die richtige Metadaten fehlt.
Die Genauigkeit hierbei verfolgt Texterdichte und Klarheit. Sparsamer oder falsch ausgerichteter Text kann ein falsches Ergebnis erzeugen. Daher beschränken Sie OCR auf einen Rectangle über eine dichtere Textregion, um die Erkennung zu stabilisieren.
Empfehlung
Digitale PDFs: bevorzugen Sie PdfDocument.PageRotation, wenn die Metadaten korrekt sind.
Gescannt oder bildbasierte PDFs: verwenden Sie OcrInput.DetectPageOrientation(), wenn Metadaten fehlen oder unzuverlässig sind.
Für kritische Workflows führen Sie beide Methoden aus und wenden Ihre eigene Logik an, um etwaige Diskrepanzen auszugleichen. Wenn Sie inkonsistente Rotationsanziegen sehen, überprüfen Sie das spezifische Seitenlayout und validieren Sie eine Methode gegen die andere.
Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.