Wir verwenden Migradoc, um PDFs zu generieren, die Header-Abschnitte enthalten, so dass die Header auf jeder Seite angezeigt werden.Dynamische Headerhöhe von PDF erhalten
Die Höhe des Inhalts in der Kopfzeile kann jedoch variieren. Ich stelle die Position des Körperinhaltes unter Verwendung document.DefaultPageSetup.TopMargin
ein. Dies ist jedoch derzeit ein festgelegter "Best Rate" -Wert. Manchmal ist der Inhalt größer und verursacht eine Überlappung.
Ich brauche eine Möglichkeit, die Höhe des Headers zu berechnen, so dass ich den document.DefaultPageSetup.TopMargin
Wert entsprechend einstellen kann.
Ich gehe davon aus, ich muss es in zwei Durchgängen tun - z. Generieren Sie die PDF-Datei, überprüfen Sie die Höhe der gerenderten Kopfzeile und erstellen Sie die PDF-Datei erneut, indem Sie document.DefaultPageSetup.TopMargin
eingeben.
Ich sehe keine Möglichkeit, die Höhe der Kopfzeile zu überprüfen, sobald ich das PDF zum ersten Mal gerendert habe. Ich bemerke, dass es eine Methode namens GetRenderInfoFromPage()
in der DocumentRenderer
gibt. Das sieht so aus, wie ich es will, außer dass es die Headerdaten nicht zu enthalten scheint. Wenn ich in der ersten PDF-Generierung nur den Header auf der ersten Seite rendere und keinen Inhalt, dann gibt GetRenderInfoFromPage(1)
ein leeres Array zurück. Wenn ich es auf einer anderen Seite als 1 anrufe, gibt es null
zurück.
Wir verwenden auch PdfSharp
als letzten Durchgang, um ein Wasserzeichen hinzuzufügen. Also möglicherweise, wenn ich die Headerhöhe mit diesem abfragen kann - das könnte auch funktionieren? Ich kann aber auch keinen Weg finden, dies zu tun.
Weiß jemand, ob es möglich ist, die gerenderte Headerhöhe abzufragen?