实例化打印文档

//声明打印对象
PrintDocument pd = new PrintDocument();
int ilvPreviewIndex = 0;

在打印事件中设置基本属性

private void btnPrint_Click(object sender, EventArgs e)
{
//获取和设置标签的高宽和边距
decimal dLabelHeight = nudLabelHeight.Value;
decimal dLabelWidth = nudLabelWidth.Value;
decimal dTopMargin = nudTopMargin.Value;
decimal dLeftMargin = nudLeftMargin.Value;
//设置边距
Margins margin = new Margins(0, 0, 0, 0);
pd.DefaultPageSettings.Margins = margin;
pd.DefaultPageSettings.Margins = margin;
//横向打印
//pd.DefaultPageSettings.Landscape = true;
//循环打印
for(; ilvPreviewIndex < dgvPreview.Rows.Count; ilvPreviewIndex++)
{
//页面尺寸
pd.DefaultPageSettings.PaperSize = new PaperSize("Custom", Utility.GetPixelByWidth(dLabelWidth), Utility.GetPixelByWidth(dLabelHeight));
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
pd.Print();
}
}

打印事件处理

/// <summary>
/// 打印事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
//排架号中的行间距
int iMiddle = int.Parse(Utility.ConfigGetItem("ShelfMiddle"));
//获取和设置标签的高宽和边距
decimal dLabelHeight = nudLabelHeight.Value;
decimal dLabelWidth = nudLabelWidth.Value;
decimal dTopMargin = nudTopMargin.Value;
decimal dLeftMargin = nudLeftMargin.Value;
//获取排架号
string sBeginCallNo = dgvPreview.Rows[ilvPreviewIndex].Cells[0].Value.ToString();
string sConnectSymbol = txtConnectSymbol.Text.Trim();
string sEndCallNo = dgvPreview.Rows[ilvPreviewIndex].Cells[1].Value.ToString();
//设置水平文字对齐方式
StringFormat stringFormat = new StringFormat();
stringFormat.LineAlignment = StringAlignment.Center;
stringFormat.Alignment = StringAlignment.Center;
//将排架号进行拼接打印
Graphics g = e.Graphics;
float leftMargin = Utility.GetPixelByWidth(dLeftMargin); //左边距
SolidBrush myBrush = new SolidBrush(Color.Black); //刷子
float yPosition = Utility.GetPixelByHeight(dTopMargin); //行定位
Font printFont = new Font("宋体", 12 f, FontStyle.Bold); //设置字体
g.DrawString(sBeginCallNo, printFont, myBrush, leftMargin, yPosition, stringFormat);
yPosition += Utility.GetPixelByHeight(iMiddle); //另起一行
g.DrawString(sConnectSymbol, printFont, myBrush, leftMargin, yPosition, stringFormat);
yPosition += Utility.GetPixelByHeight(iMiddle); //另起一行
g.DrawString(sEndCallNo, printFont, myBrush, leftMargin, yPosition, stringFormat);
}

C#中打印拼接的字符串的更多相关文章

  1. SQLServer 存储过程中不拼接SQL字符串实现多条件查询

    以前拼接的写法 set @sql=' select * from table where 1=1 ' if (@addDate is not null) set @sql = @sql+' and a ...

  2. jquery 获取多选select的文本中并拼接成字符串

    //拼接产品字符串 var productArray = new Array(); $.each($("#fmeatask-subSystem").find("optio ...

  3. python 中 打印及格式化字符串的相关方法

    原文 将值转换为字符串 Python 有多种方式将任何值转为字符串: 将它传给 repr() 或 str() 函数. repr() 和 str() 的区别,看几个例子: >>> pr ...

  4. oracle中,拼接的字符串给游标赋值

    直接open cur from sql;即可. 例子: create or replace procedure test(tableName varchar2) is TYPE cur_type IS ...

  5. 描述了say_hello函数的具体内容,调用zend_printf系统函数在php中打印字符串

    下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构 ...

  6. 基于easyui框架中input 类型的checkbox拼接成字符串存入数据库和读取选中---善良公社项目

    项目中我做修改用户个人资料的时候,有一个需求是帮助人员的帮助类型如图下所示: 当初想如果是asp.net控件的话应该很简单实现,如果不是基于easyUI框架那就太简单了,现在是受框架的限制与是前端ht ...

  7. java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法

    字符串常量池:字符串常量池在方法区中 为了优化空间,为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池.如果字符串已经存在池中,就 ...

  8. jquery中选择checkbox拼接成字符串,然后到后台拆分取值

    jquery中选择checkbox拼接成字符串,然后到后台拆分取值 js中的代码 $("#btn").click(function(){ var chenked=$("i ...

  9. Java如何从文件中打印与给定模式匹配的所有字符串?

    在Java编程中,如何从文件中打印与给定模式匹配的所有字符串? 以下示例显示了如何使用Util.regex类的Patternname.matcher()方法从文件中打印与给定模式匹配的所有字符串. p ...

随机推荐

  1. SRX_Test_2_sound

    声音(sound) [问题描述] 雅礼中学的校门口在修建地铁,而由此带来的噪音问题让周边的居民困扰不已.环保局正在研究 一项评估模型,可以定量评价噪音的危害程度.这项评估模型是这样的:将每一条街道视作 ...

  2. 决胜IT十八招-前言

    决胜IT十八招 走资讯这一行转眼间八年多了,从大学的时候,我有长达十年的时间思索在从事软体开發这一行到底怎麽存活下来,这思考下来,为自己总算找到一个出口来,这十八招只是其一的绝学,见阵这一行干软体开發 ...

  3. rest-framework 版本控制

    一 作用: 用于版本的控制 二 内置的版本控制类: from rest_framework.versioning import QueryParameterVersioning,AcceptHeade ...

  4. MAC下go语言的安装和配置

    Mac下安装一些文件都是比较简单的.安装了brew以后,很多的程序只要一条命令就搞定了. brew install go 安装好go语言以后主要是配置go_path,和go_root的地址. go_r ...

  5. 保姆级别的RabbitMQ教程!包括Java和Golang两种客户端

    目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitMQ 启动RabbitMQ 什么是Authentication(认证) 指定RabbitMQ的启动配置文件 如何让guest用户远程 ...

  6. Moviepy音视频开发:开发视频转gif动画或jpg图片exe图形化工具的案例

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完 ...

  7. 利用Python特殊变量__dict__快速实现__repr__的一种方法

    在<第8.15节 Python重写自定义类的__repr__方法>.<Python中repr(变量)和str(变量)的返回值有什么区别和联系>.<第8.13节 Pytho ...

  8. 从Excel获取整列内容进行批量扫描

    实习工作原因,需要测试excel表里面ip地址是否存在漏洞,扫了一眼,呕,四五百个IP,光是挨个进行访问,都是一个浩大的工程,所以准备开始摸鱼认真工作 思路是:excel按列提取->将IP按行存 ...

  9. SQLMap使用指北

    简介 sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限.它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存 ...

  10. 打造云原生大型分布式监控系统(四): Kvass+Thanos 监控超大规模容器集群

    概述 继上一篇 Thanos 部署与实践 发布半年多之后,随着技术的发展,本系列又迎来了一次更新.本文将介绍如何结合 Kvass 与 Thanos,来更好的实现大规模容器集群场景下的监控. 有 Tha ...