C# 打印 长字符串自动换行

主要代码如下:

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(160 * mmtopt), Convert.ToInt32(100 * mmtopt)));

g.DrawString(tb.Text, titleFont, new SolidBrush(Color.Black), r, fmt);


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

if (tb.Text.Trim().Length < 28)//标题
{
    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(160 * mmtopt), Convert.ToInt32(100 * mmtopt)));
    r.Y = r.Y - Convert.ToInt32(2 * mmtopt);

    Font titleFont = new Font(new FontFamily("仿宋"), 13, GraphicsUnit.Point);
    g.DrawString(tb.Text, titleFont, new SolidBrush(Color.Black), r, fmt);
}

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

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

时间: 2024-08-06 07:08:40

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

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

<%@ page contentType="text/html; charset=gb2312" %> <!-- JSP指令标签 --> <%@ page import="java.util.*" %> <!-- JSP指令标签 --> <html> <head> <title>长字符串截取示例</title> </head> <body> <

C语言 &#183; 最长字符串

算法训练 最长字符串 时间限制:1.0s   内存限制:512.0MB 求出5个字符串中最长的字符串.每个字符串长度在100以内,且全为小写字母. 样例输入 one two three four five 样例输出 three 作者注释: 有一个疑问:代码第九行,为何 若str定义为一维数组就会报错? 1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char str[5][100]; 5 int max=0;//记录

Jquery-截取过长字符串

页面获取的字符串数据过长,导致显示的表格排列不整齐,这是就要对表格中过长的字符串进行处理之后显示. 方法一:(别的博客看到的方法) js方法: <script type="text/javascript"> jQuery.fn.limit=function(){ var self = $(".table tr td"); self.each(function(){ var objString = $(this).text(); var objLength

【Py】变量、字符串、原始字符串、长字符串

变量: python中变量不需要事先声明,但在使用之前需要赋值,和其他编程语言一样由字母.数字.下划线组成,且首位不能是数字 字符串: python中是用双引号或单引号括起来的内容,但单双引号不能混用,如过在字符串中本身又包含字符串,可以使用转义字符 Let's go!的两种写法: 1 >>> 'Let\'s go!' 2 "Let's go!" 1 >>> "Let's go!" 2 "Let's go!"

启动程序实现很简单的功能在屏幕中央 ;打印一行字符串(汇编+c+red hat linux实现)

编程:启动程序实现很简单的功能在屏幕中央 ;打印一行字符串(汇编+c+red hat linux实现) 汇编语言编写: boot.asm启动程序代码: ;我们的启动程序实现很简单的功能在屏幕中央 ;打印一行字符串 org 07c00h   ;org指令明确告诉编译器我程序开始地址是07c00h,而不是 ;原来的00000 ;int汇编指令 int 10h mov ax,cs mov es,ax mov bp,msgstr  ;es:bp  ;指向的内容就是我们要显示的 字符串的地址 mov cx

在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标

录入两个字符串,一个字符串是另一个字符串的字串,输出子串首字母在长字符串的位置. 两个解决办法 使用库函数strncmp(str1,str2,n); 功能:比较str1和str2两个字符串的前n个字母,一一比较,若str1大则返回1,若str1和str2相等,则返回0,否则返回-1: int compare(char *str1, char *str2) { int i; int lenstr1 = strlen(str1); int lenstr2 = strlen(str2); if( le

php将长字符串拆分为指定最大宽度的字符串数组

/** * 将字符串拆分为指定最大宽度的字符串数组.单字节字符宽度为1,多字节字符通常宽度为2 * @param string $msg 要拆分的字符串 * @param int $width 结果数组中每个元素的最大宽度.如10代表10个英文字母或者5个汉字 * @param string $enc 字符串编码 */ function split_str2array_cn($msg,$width,$enc = 'utf-8'){ $msg_width = mb_strwidth($msg,$e

2014年阿里巴巴在线笔试题-第3大题-公共最长字符串长度

说明 2014年阿里巴巴在线笔试题-第3大题    首先,我没参加这次的阿里巴巴在线笔试题,题目全部是从别人口中描述而来,对于以下的分析,如果有什么不对的地方还望指教.也希望大家能够有更好的办法,希望大家来能不吝赐教. 题目描述 给定一个主字符串和一个匹配字符串,现在问你,找出 "主串中可匹配到的匹配串中子串的最大长度",可能比较绕,举个例子吧 主字符串       abcdefgsdff     记为A 匹配字符串   abefgf               记为B 要求的值就是 

CSS word-wrap强制换行截断长字符串

<html> <head> <title>CSS截断长字符串,强制换行</title> </head> <style> .wordWrap{word-wrap:break-word; word-break:break-all;} </style> <body> <div class="wordWrap">rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrffffffff