XTextFormatterを使用するかどうかにかかわらず、LayoutRectangleの高さを0にするなど、同じエラーが発生します。PdfSharp:テキストの高さ/配置の問題
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は型System.Drawing.FontStyleのforeColour 私はオリエンテーション=風景、サイズとPdfPageから_gfx既に事前定義されたを有するタイプのSystem.Drawing.Color あります=レター XPOSは、double型のパラメータ、XLIと同様であるとYPOS mitおよびyLimit。
私は矩形が高さを有することを意図している定義パー
... LayoutRectangleは ゼロ(0)の高さを持たなければならないことをランタイムエラーを取得しますそうでなければ、それをラインと呼んでください!私はそれを得ることはありません!...
私はXGraphics.DrawString()メソッドで直接試してみましたが、同じエラーが発生します。私はLayoutRectangleを使用することはできませんが、テキストを手動で目的の領域に収まるように管理する必要があるようです。
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));
yPosの変数の値はまったく同じ値ですが、
* YPOS = Page.Height * 0.4093、いずれかのページの高さの40,93%*
私がやろう何の同封例:。
の「Hello World ! " "こんにちは ワールド!"
そして、ここで私が得るものです:
"Hello World!"
の "Hello World!"
とが異なるため、印字領域の制限やフォントと異なるフォントスタイルのサイズの
、私はちょうどスペースの正確な数を含む1つの単文にこれらを記述することはできません。
XLineAlignmentプロパティは、実際には** Graphics **サンプルでのみ表示され、TextLayoutサンプルでは表示されません。おそらくTextLayoutサンプルにあるはずですが、ちょっとね! – noelicus
@noelicus:TextLayoutサンプルは、XLineAlignmentを使わないでテキストをレイアウトする方法を示しています。質問はテキストレイアウトに関するものでした。 Graphicsサンプルは、XLineAlignmentを使ったテキストレイアウトの方法も示しています。 –