打印时按需要自动缩放文本尺寸且强制换行

原创 2007年09月24日 23:22:00
Dim mark As Single   
Dim g As Graphics = e.Graphics    
Dim str As String   
Dim i As Integer   
Dim temp() As String   
Dim myfix As Drawing2D.Matrix = New Drawing2D.Matrix    
Dim size As SizeF    
Dim length As Single   
   
str = ttbBuildName.Text.TrimStart(""'所有文本    
size = g.MeasureString(str, myfont3)     
length 
= size.Width '所有文本在myfont3状态下的长度(像素)    
If length > 4082 Then '4082:供打印的文本框的长度(像素)    
    mark = 4082 / length    
Else   
    mark 
= 1    
End If   
myfix.Scale(mark, 
1'按比例压缩宽度    
g.Transform = myfix    
   
Dim j As Integer = 0    
Dim from As Integer = 0    
Dim strtemp As String = " "   
   
'第一行    
   
Do While (g.MeasureString(strtemp, myfont3).Width < 302 * (1 / mark) And 302 * (1 / mark) - g.MeasureString(strtemp, myfont3).Width >= g.MeasureString(str.Substring(from + j, 1), myfont3).Width)    
    j 
= j + 1    
    strtemp 
= str.Substring(from, j)    
    
If (j + from) = str.Length Then Exit Do   
Loop   
from 
= from + j    
g.DrawString(strtemp, myfont3, Brushes.Black, 
New RectangleF((x1 + 679* (1 / mark), y1 + 80, length, 30), formatl)    
= 0    
   
'后9行    
   
If (j + from) <= str.Length - 1 Then   
    
For i = 1 To 9    
        strtemp 
= " "   
        
Do While (g.MeasureString(strtemp, myfont3).Width < 420 * (1 / mark) And 420 * (1 / mark) - g.MeasureString(strtemp, myfont3).Width >= g.MeasureString(str.Substring(from + j, 1), myfont3).Width)    
            j 
= j + 1    
            strtemp 
= str.Substring(from, j)    
            
If (j + from) = str.Length Then Exit Do   
        
Loop   
        from 
= from + j    
        g.DrawString(strtemp, myfont3, Brushes.Black, 
New RectangleF((x1 + 561* (1 / mark), y1 + 130 + 51 * (i - 1), length, 30), formatl)    
        j 
= 0    
        
If (j + from) = str.Length Then Exit For   
    
Next   
End If   
   
myfix.Scale(
1 / mark, 1'恢复原始比例(1:1)    
g.Transform = myfix    

【转】SMARTFORMS 强制换行

今天做了一个表单的打印又多了解了些smartforms。1.window的用处如果一个smartforms要求任何时候都要打印表头表尾可以用table实现,但是table分页的时候根据之前的测试会有点...
  • leechirslcc
  • leechirslcc
  • 2009年08月20日 17:14
  • 3050

html 强制换行

通常我们在编写html页面的时候,我们一般都会在或者里面通过设定样式来控制 table 或者 div 的宽度 例如:       哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈     1231...
  • longxia1987
  • longxia1987
  • 2011年09月07日 10:34
  • 13312

二叉树按层遍历打印换行

我们都知道,广度优先遍历——对二叉树来说就是按层遍历,需要借助队列。代码也很简单,就几行。但是为什么要借助队列呢? 粗鲁分析: 二叉树的按层遍历是这样:从左到右,从上到下访问每个节点。 而二叉树本...
  • u010292561
  • u010292561
  • 2017年08月24日 10:18
  • 161

Html+CSS 文本的强制换行

作为一个成长的菜鸟,总是不断遇到各种问题,今天博主遇到了一个问题。 对于一般的div 自要设置了width; 如果容器里面的文字过多,则文章就会自动换行, 但是如果输入连续的英文字符,则设置的wi...
  • u010003835
  • u010003835
  • 2016年04月01日 15:27
  • 1742

二叉树逐行打印,同时打印每行时需要换行

二叉树逐层遍历 依靠一个队列先进后出的特点进行算法设计如下: void BinaryTreeTraversal(const BinaryTreeNode* head) { if(head=...
  • NicolasYan
  • NicolasYan
  • 2016年02月03日 14:26
  • 391

C#控件——DataGridView单位格文本主动换行

DataGridView是.NET开辟中常用的控件,在开辟中发明大文本数据显示时无法在界面上完全显示,以下是我的解决办法。 (1)起首要包管单位格的为Text类型 (2)在法度中参...
  • yizhiduxiu11
  • yizhiduxiu11
  • 2012年08月23日 01:41
  • 780

python print输出不自动换行

n = int(input()) for j in range(1,n+1): for i in range(1,j+1): print ('*',end=" ") ...
  • sinat_37527191
  • sinat_37527191
  • 2017年02月16日 22:46
  • 1412

pdf的换行转化为不换行的txt

qibaoyuan@ict:~/qibaoyuan/subject/python$ cat pdftype2txttype.py #! /usr/bin/python#coding=utf8impor...
  • QIBAOYUAN
  • QIBAOYUAN
  • 2011年06月03日 10:10
  • 1776

css文本强制换行

word-break: break-all; word-wrap:break-word;
  • qq_28473733
  • qq_28473733
  • 2018年01月30日 14:17
  • 14

css——文本强制两行超出就显示省略号

强制一行的情况很简单overflow:hidden;//超出的隐藏text-overflow:ellipsis;//省略号white-space:nowrap;//强制一行显示如果要强制两行的话,得用...
  • Tracy_frog
  • Tracy_frog
  • 2017年09月07日 15:09
  • 248
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打印时按需要自动缩放文本尺寸且强制换行
举报原因:
原因补充:

(最多只允许输入30个字)