主要代码如下:

StringFormat fmt = new StringFormat();
fmt.LineAlignment = StringAlignment.Near;//左对齐
fmt.FormatFlags = StringFormatFlags.LineLimit;//自动换行 //设定文本打印区域 b是左上角坐标,Size是打印区域(矩形) float mmtopt = 2.835f; 单位换算,毫米*2.835=Point单位
Rectangle r = new Rectangle(b, new Size(Convert.ToInt32( * mmtopt), Convert.ToInt32( * mmtopt))); g.DrawString(tb.Text, titleFont, new SolidBrush(Color.Black), r, fmt);

主要原理就是先定义文本绘图格式为自动换行,之后再制定文本绘图区域为矩形而不仅仅是左上角坐标点。


下面是我做的一个自动套印固定表格的软件的相关代码:

if (tb.Text.Trim().Length < )//标题
{
g.DrawString(tb.Text, textFont, new SolidBrush(Color.Black), b);
}
else
{
StringFormat fmt = new StringFormat();
fmt.LineAlignment = StringAlignment.Near;//左对齐
fmt.FormatFlags = StringFormatFlags.LineLimit;//自动换行 //设定文本打印区域 b是左上角坐标,Size是打印区域(矩形) float mmtopt = 2.835f;
Rectangle r = new Rectangle(b, new Size(Convert.ToInt32( * mmtopt), Convert.ToInt32( * mmtopt)));
r.Y = r.Y - Convert.ToInt32( * mmtopt); Font titleFont = new Font(new FontFamily("仿宋"), , GraphicsUnit.Point);
g.DrawString(tb.Text, titleFont, new SolidBrush(Color.Black), r, fmt);
}

功能就是如果少于28子,使用默认字体打印内容,如果字数过多,则缩小字体,稍微向上修改下打印坐标,自动换行打印。

还是会出现之要一行但是用小字体的情况,但是只要缩小字体这个情况就不可能避免。

C# 打印 长字符串自动换行的更多相关文章

  1. cocos2dx Mac平台 打印长字符串,游戏卡死

    1,打开了输出控制台,输出卡死的解决方案: 打开控制台: game -console enable 关闭控制台: game -console false 修改文件 ConsoleWindowContr ...

  2. html表单样式, table隔行高亮, 长字符串自动换行

    2016年1月14日 11:16:54 星期四 效果图: html: <!DOCTYPE html> <html lang="en"> <head&g ...

  3. python-原始字符串,长字符串

    一  长字符串 在python中要表示跨行多行的字符串,可以使用较为简单粗暴的表达-----三引号.例如: str = ”’那时我们有梦, 关于文学, 关于爱情, 关于穿越世界的旅行. 如今我们深夜饮 ...

  4. TSQL:判断某较短字符串在较长字符串中出现的次数。

    给定一个较短字符串shortStr='ab',和一个较长字符串longStr='adkdabkwelabwkereabrsdweo2342ablk234lksdfsdf1abe': 判断shortSt ...

  5. Python基础语法——(引号、字符串、长字符串、原始字符串、Unicode)

    一.单引号字符串和转义引号 当字符串中出现单引号'时,我们可以用双引号""将该字符串引起来:"Let's go!" 而当字符串中出现双引号时,我们可以用单引号' ...

  6. 使用List把一个长字符串分解成若干个短字符串

    把一个长字符串分解成若干个固定长度的短字符串,由于事先不知道长字符串的长度,以及短字符串的数量,只能使用List. public static void get_list_sbody(String s ...

  7. eclipse处理长字符串拼接快捷方法类

    情景: 你在后台写sql文访问数据库时是不是要这样写 String sql="select a," +"b," +"c " +"f ...

  8. JSP-简单的练习省略显示长字符串

    <%@ page contentType="text/html; charset=gb2312" %> <!-- JSP指令标签 --> <%@ pa ...

  9. Java & PHP & Javascript 通用 RSA 加密 解密 (长字符串)

    系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...

随机推荐

  1. innobackupex一些常用备份选项

    指定数据库备份[root@node1]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=password ...

  2. VS2015 IIS Express 无法启动 解决办法

    VS2015启动调试时,总是提示“IIS Web Express 无法启动”的错误, 因为其他项目都可以,就这么一个不行,基本就是配置问题,网上的办法都试了,试了都没用,试试以下解决方案: 用记事本或 ...

  3. ubuntu设置 SSH 通过密钥对登录

    1. 制作密钥对 首先在服务器上制作密钥对.登录到打算使用密钥登录的账户,然后执行以下命令: [root@host ~]$ ssh-keygen <== 建立密钥对 Generating pub ...

  4. 【json】与【枚举】的序列化和反序列化

    参考:Jackson – Deserialization from json to Java enums 问题描述 java中使用枚举时,如果涉及到restful调用,不可避免会涉及到枚举的序列化和反 ...

  5. Indent Guides插件格式代码

    vs开发工具实用性插件 一.   在开发遇到过很多括号缩近的,很是头疼,于是上网收了一下,希望对大家有所帮助. 第一款插件:Indent Guides 这款插件是给代码块增长对齐线,以标识匹配的花括号 ...

  6. spring从服务器磁盘读取图片,然后显示于前端页面上

    需求是,前台通过传参,确定唯一图片,然后后台在服务器磁盘中读取该图片,然后显示于前台页面上. 后台代码: @RequestMapping("unit/bill/showeinvoice&qu ...

  7. 对象名 'dbo.__MigrationHistory' 无效 错误解决

    // 在数据库上下文的构造方法里 public GewPeAppContext() : base(ConnectionStrings.GewPeAppConnectionString) { // 添加 ...

  8. ubuntu16.04上安装ros-kinetic

    1.设置安装源 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" ...

  9. CSS3之实现光润效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. related_name

    定义表Apple: class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel) new_level = model ...