2011-10-20 17 views
2

ユーザーがテキストを入力したかどうかを事前に定義されたレポートレイアウトのある印刷ページの境界内に収めるかどうかを判断できる必要があります。セクションA:2x3インチの矩形がテキストを含むためのスペースですが、戦争と平和のすべてのテキストを含むことができます。テキストが特定の四角形に収まらない場合は、別のページを印刷して、以前に印刷されたページのセクションをオーバーフローさせたテキストを印刷する必要があります。.NET印刷 - 指定された矩形内にテキストが収まるかどうかを判断する方法

アプリケーションはVB 2010 Expressで書かれていますが、C#の例は大歓迎です。

TIA

+0

そして、これはGDI +(のPrintDocument)ベースの印刷ですか? –

答えて

2

GraphicsクラスのMeasureStringとMeasureCharacterRanges機能を見てみてください。

+0

これを達成するためにMeasureStringを使うことができます。ここに例があります: –

+0

いいえ、出発点が聞こえます。 Intellisenseがその方法の使用を完全に明白にしない場合、半分の秒のGoogle検索が行われます。あなた自身の仕事をしてください。 –

0

は、ここで私は他の人が所与の領域内に収まるテキスト の量を決定するために有用見つけることを願っています方法です:

Public Function GetTextThatFitsLength(_ 
     ByVal e As PrintPageEventArgs, _ 
     Text As String, _ 
     ByVal Width As Integer, _ 
     ByVal Height As Integer, _ 
     ByVal Font As Font, _ 
     Optional ByRef LinesFilled As Integer = 0) As Integer 
     ' returns the number of charaters that fit into the specified area 
     ' optionally returns the number of lines that fit into the area 
     Dim LayoutArea As New SizeF 
     With LayoutArea 
      .Width = Width 
      .Height = Height 
     End With 
     Dim StringFormat As New StringFormat(StringFormat.GenericDefault) 
     With StringFormat 
      .Alignment = StringAlignment.Near 
      .Trimming = StringTrimming.Word 
     End With 
     Dim CharactersFitted As Integer 
     e.Graphics.MeasureString(Text, Font, LayoutArea, StringFormat, CharactersFitted, LinesFilled) 
     Return CharactersFitted 
    End Function 
関連する問題