2010-06-10 20 views
1

我有一些字符串打印PrintDocument使用其图形对象使用下面的代码,我期待,如果矩形区域在小,以适应整个字符串它显示修剪与椭圆,但修剪是不应用于绘制的字符串,代码中是否有任何错误? (如果在窗体上绘制字符串,它会起作用)无法修剪打印文档中的字符串

 PrintDocument printDocument; 
     void print_PrintPage(object sender, PrintPageEventArgs e) 
     { 
      var g = e.Graphics; 

      var rect = new Rectangle(10, 10, 50, 50); 
      g.DrawRectangle(Pens.Red, rect); 
      g.DrawString("Draws the specified text string at the specified position", 
       Font, Brushes.Red, 
       rect, 
       new StringFormat { Trimming = StringTrimming.EllipsisCharacter }); 

     } 

     private void printPreviewControl_Click(object sender, EventArgs e) 
     { 
      printPreviewControl.Document = printDocument; 
      printPreviewControl.Show(); 
     } 

回答

1

我无法检测到PrintPreview和使用相同代码绘制到面板之间的区别。

为了让你将不得不虽然指定NoWrap的省略号:

new StringFormat { 
     Trimming = StringTrimming.EllipsisCharacter , 
     FormatFlags = StringFormatFlags.NoWrap} 
+0

我需要绘制多行字符串,也需要省略号。我通过将'StringFormat'设置为'LineLimit'找到了解决方案 – 2010-06-10 09:30:01