C#打印字符串内容,例如打印Textbox内容
/// <summary>
/// 打印txt文档
/// </summary>
class PrintTxt
{
System.Drawing.Printing.PrintDocument printDocument = new System.Drawing.Printing.PrintDocument(); int linesText = ;//内容行数
int linesPerPage = ;//一页的行数
int currentPage = ;//当前页
int pageCount = ;//多少页
string[] lines;//存储内容
int icount = ;//行数
string textString = "";
public PrintTxt(string txt)
{
textString = txt;//给内容进行赋值
printDocument.PrintPage += PrintDocument_PrintPage;
printDocument.BeginPrint += PrintDocument_BeginPrint;
}
private void PrintDocument_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
StringReader s1 = new StringReader(textString);
string s = s1.ReadToEnd();
lines = s.Split(new string[] { "\n" }, StringSplitOptions.None);
} private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
System.Drawing.Graphics g = e.Graphics; //获得绘图对象
float yPosition = ; //绘制字符串的纵向位置
float xPosition = ;
float leftMargin = e.MarginBounds.Left; //左边距
float topMargin = e.MarginBounds.Top; //上边距
linesText = lines.Count();
System.Drawing.Font printFont = new System.Drawing.Font("宋体", ); //当前的打印字体
System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);//刷子
linesPerPage = (int)(e.MarginBounds.Height / printFont.GetHeight(g));//每页可打印的行数
pageCount = linesText % linesPerPage == ? (linesText / linesPerPage) : (linesText / linesPerPage + ); for (int i = ; i < linesPerPage; i++)
{
yPosition = topMargin + (i * printFont.GetHeight(g)) - ;
xPosition = leftMargin + (printFont.GetHeight(g)) + ;
if (icount == linesText)
{
return;
}
g.DrawString(lines[icount], printFont, myBrush, xPosition, yPosition, new System.Drawing.StringFormat());
icount++;
}
currentPage++; if (currentPage < pageCount)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
} public void StartPrintTxt()
{
printDocument.Print();
}
}
打印的过程大致就是将Textbox里的内容获取行数,然后计算一页打印多少行,然后总共打印多少页
C#打印字符串内容,例如打印Textbox内容的更多相关文章
- 描述了say_hello函数的具体内容,调用zend_printf系统函数在php中打印字符串
下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构 ...
- 基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这个Bootstrap框架的各个主要方面的内容,总体来说基本达到了一个稳定的状态,随着时间的推移可 ...
- LODOP打印控件关联输出各内容
Lodop打印控件利用SET_PRINT_STYLEA里面的“LinkedItem”可以把多个独立的内容关联起来,让它们顺序打印.这样,就可以实现很多效果,例如一些内容紧跟着表格下方输出,关联表格后就 ...
- (转)基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
http://www.cnblogs.com/wuhuacong/p/5147368.html 在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这 ...
- vue项目-打印页面中指定区域的内容(亲测有效!)
关于打印整个页面的,没什么好说的.今天我给大家分享一个打印指定区域的方法,你想打印哪里,就打印哪里! 我也是刚刚开始接触打印这一块功能的,然后当然是找度娘深入了解了一番啦,期间试了网上的各种方法,有的 ...
- 字节流,读取 a.txt 文件内容,并打印出来
import java.io.FileInputStream;import java.io.IOException; /** 字节流,读取 a.txt 文件内容,并打印出来 */public clas ...
- Linux c字符串中不可打印字符转换成16进制
本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...
- python带颜色打印字符串
python带颜色打印字符串 之前调试pwn题的时候,有时候需要将某些特别的,重要的信息用不一样的颜色打印出来.查阅一些资料,了解了print函数的特性后,自己写了一个脚本,可以用来获取带颜色信息的字 ...
- linux echo 命令 打印字符串
打印字符串 [root@MongoDB ~]# echo "heloworld" heloworld
- DAY4(python)打印字符串以及增删改查
用while循环打印字符串 #if i in s: # print ( i ) s='nanfjkhndaol' index = 0 while 1 : print (s[index]) index+ ...
随机推荐
- iOS------自动查找项目中不用的图片资源
注意:删除的时候要谨慎!别什么图都删了,看看对项目有没有作用.这个插件有时也会有一定的误差. 具体操作步骤: 1.去github上下载LSUnusedResources(下载地址:https://gi ...
- Java中的变量与常量
Java中的常量 final 常量名=值; final PI=3.1415; //声明一个常量PI 定义常量:final double PI=3.1415926; Java三大变量分别是 类变量( ...
- Android-textview图文混排(网络图片)
工作太忙,不做过多的解释了,核心是用到了 SpannableStringBuilder Glide 和 Rxjava 直接上代码了,就两个类. public class ImageSpanAsyn ...
- [Objective-C]用Block实现链式编程
看这篇博客时最快让你上手ReactiveCocoa之基础篇看到作者介绍链式编程那一块,发现自己的钻研精神不足.想想自己使用链式编程也有段时间了,对,就是 Masonry 库.自己一直享受点语法带来的效 ...
- (网页)angularJs中怎么模拟jQuery中的this?(转)
转载自mini_fan博客园: 今天想在Angular项目中使用jQuery的this功能,发现undefined.代码如下: HTML部分: <p ng-click="testCli ...
- Android ListView的item背景色设置以及item点击无响应等相关问题
Android ListView的item背景色设置以及item点击无响应等相关问题 在Android开发中,listview控件是非常常用的控件,在大多数情况下,大家都会改掉listview的ite ...
- ORA-01440: column to be modified must be empty to decrease precision or scale
在修改表字段的NUMBER类型的精度或刻度时,你可能会遇到ORA-01440: column to be modified must be empty to decrease precision or ...
- ASP.NET MVC之从控制器传递数据到视图方式
为了演示,先定义一个类 新建基本项目在Models文件夹下定义如下类: public class Person { public int Id { get; set; } public string ...
- [HBase_1] HBase安装与配置
0. 说明 1. 简介 1.1 简介 基于 HDFS 的大表软件(实时数据库) 十亿行 x 百万列 x 上千个版本 版本是通过 mvcc 技术控制:multiple version concurren ...
- php函数long2ip与ip2long()
long2ip - Converts an long integer address into a string in (IPv4) Internet standard dotted format s ...