`
javababy1
  • 浏览: 1174452 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

记事本打印功能的一段代码

 
阅读更多

最近要做一个合同打印的功能,合同中的文字是富文本,有一定格式,但是不限填写的内容.在网上也没有找到相关的文章,下面写了一个记事本打印的功能, 不过只能做到都是采用相同的字体,可以换页处理.
string strPrintText;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
System.Drawing.Font font = new Font("宋体", 14);
Graphics g = e.Graphics;
float cyFont = font.GetHeight(g);
StringFormat strfmt = new StringFormat();
RectangleF rectfFull, rectfText;
int iChars, iLines;

if (g.VisibleClipBounds.X < 0)
{
rectfFull = e.MarginBounds;
}
else
{
rectfFull = new RectangleF(
e.MarginBounds.Left - (e.PageBounds.Width -
g.VisibleClipBounds.Width) / 2,
e.MarginBounds.Top - (e.PageBounds.Height -
g.VisibleClipBounds.Height) / 2,
e.MarginBounds.Width, e.MarginBounds.Height);
}

rectfText = RectangleF.Inflate(rectfFull, 0, -2 * cyFont);//去掉二行,可以打印标题和页码

int iDisplayLines = (int)Math.Floor(rectfText.Height / cyFont); //计算可以打印的行数
rectfText.Height = iDisplayLines * cyFont; //计算可以正式打印的高度

strfmt.Trimming = StringTrimming.Word;


if (strPrintText.Length == 0)
{
e.Cancel = true;
return;
}
g.DrawString(strPrintText, font, Brushes.Black,rectfText, strfmt); //所有文字全部打印

g.MeasureString(strPrintText, font, rectfText.Size, strfmt, out iChars, out iLines); //获取该区域能打印了多少个字符
strPrintText = strPrintText.Substring(iChars); //把打印过的字符去掉,下次就没有了.
e.HasMorePages = (strPrintText.Length >0);//判断是否还有字要打印.

}

private void printDocument1_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{

strPrintText = richTextBox1.Text;
}

对于富文本的处理,不知有没有好的办法.

分享到:
评论

相关推荐

    asp.net学习积累的代码段

    页面中传值到另一个页面上的控件).txt 页面中控件的传值.txt 用TREEVIEWKOk控件使用的站点地图文件.txt 用户控件.txt 在.NET中利用XMLHTTP下载文件.txt 在ASP.NET中实现POST发送数据.txt 在IE浏览器中使用Windows...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java源码包2

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java解析word文件的相关代码

    为了说明POI提起Word文件的方便和简单,通过提取一个Word文件的文本来,来了解POI API的功能。 假设在本地磁盘中存在一个Word文件 E:\POI\word\JBoss3.0 下配置和部署EJB简介.doc文件是具有格式的,内容如图所示:...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    notepad++ v5.30 汉化版

    Notepad++ 是在 Windows 环境之下的一个免费的代码编辑器。 为了产生小巧且有效率的代码编辑器,这个在GPL许可证下的自由软体开发专案采用 win32 api 和 STL 以 C++ 程式语言撰写成,并且选用功能强大的编辑模组 ...

    java源码包3

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包4

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    vc++ 开发实例源码包

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

    Python数据分析实践:pandas读写文件new.pdf

    csv文件用记事本和excel都能打开,用记事本打开显示逗号, 用excel打开,没有逗号了,逗号都用来分列了。 .txt文件和.csv文件没有太大差别,.txt文件也可用逗号进行分割,直接将.txt文件改成.csv文件即可,.txt文件...

    EmEditor Pro(文本编辑器) V15.9.0 绿色中文版

    一开始可能不习惯有这些,一段时间后,没有它们您会不习惯。 打印:可以把您漂亮的页面打印出来哦。不过,如果要打印,建议别像polaris一样用黑底白字。 链接:建议改为polaris这样。这个主要对网址和邮箱等起作用了...

    JAVA课程设计题目及要求..doc

    1、编写一个记事本程序 要求: 用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 2、编写一个计算器程序 要求: 界面模拟Windows中的计算器程序。 实现基本数学运算、...

    c#学习笔记.txt

    Sun就从来没有将它的Java交给过ECMA,以至于正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起的时候,Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中...

Global site tag (gtag.js) - Google Analytics