PdfSharp: Text Höhe/Positionierung problem

Ob ich XTextFormatter oder nicht, bekomme ich die gleiche Fehlermeldung über die LayoutRectangle haben eine Höhe von 0 oder sowas.

new PdfSharp.Drawing.Layout.XTextFormatter(_gfx).DrawString(text 
    , new PdfSharp.Drawing.XFont(fontName, fontSize, (PdfSharp.Drawing.XFontStyle)fontStyle) 
    , new PdfSharp.Drawing.XSolidBrush(PdfSharp.Drawing.XColor.FromArgb(foreColour)) 
    , new PdfSharp.Drawing.XRect(new PdfSharp.Drawing.XPoint(xPos, yPos), new PdfSharp.Drawing.XPoint(xLimit, yLimit)) 
    , PdfSharp.Drawing.XStringFormats.Default);

fontStyle ist vom Typ System.Zeichnung.FontStyle
foreColour ist vom Typ System.Zeichnung.Farbe
Ich habe bereits vordefinierte _gfx von einem PdfPage mit Orientierung = Querformat, Größe = Letter
xPos und yPos sind Parameter vom Typ double, das gleiche mit xLimit und yLimit.


Bekomme ich den Laufzeitfehler, dass die
LayoutRectangle muss eine Höhe von
null (0)...


Per definition ein Rechteck ist gedacht, um eine Höhe, sonst nennen Sie es eine Zeile! Ich verstehe es nicht!...

Habe ich versucht mit dem XGraphics.DrawString () - Methode direkt, und ich bekomme den gleichen Fehler. Es scheint, dass ich nicht verwenden können, die LayoutRectangle aber zu bewältigen haben, dass der text passen in den gewünschten Bereich manuell.

var textFont = new PdfSharp.Drawing.XFont(fontName, fontSize, (PdfSharp.Drawing.XFontStyle)fontStyle);

while (xPos + _gfx.MeasureString(text, textFont).Width > xLimit)
    textFont = new PdfSharp.Drawing.XFont(fontName, --fontSize, (PdfSharp.Drawing.XFontStyle)fontStyle);

while (yPos + _gfx.MeasureString(text, textFont).Height > yLimit && fontSize > 0)
    textFont = new PdfSharp.Drawing.XFont(fontName, --fontSize, (PdfSharp.Drawing.XFontStyle)fontStyle);

_gfx.DrawString(text
    , textFont
    , new PdfSharp.Drawing.XSolidBrush(PdfSharp.Drawing.XColor.FromArgb(foreColour))
    , new PdfSharp.Drawing.XPoint(xPos, yPos));

Obwohl die yPos variable Wert ist der exakt gleiche Wert!

*yPos = Seite.Höhe * .4093, entweder 40,93% die Höhe der Seite.*

Hiermit ein Beispiel, was ich versuche zu tun:

"Hallo Welt!" "Hallo
Welt!"

Und hier ist, was ich bekomme:

                      "Hello World!" 

"Hallo Welt!"

Und wegen der unterschiedlichen Druck-Bereich Grenzen und die Größe der schriftart und die Schrift-Stil, ich kann nicht nur schreiben, diese in einem einfachen Satz darunter die richtige Anzahl von Leerzeichen.

InformationsquelleAutor Will Marcouiller | 2009-08-27

Schreibe einen Kommentar