实例化打印文档

//声明打印对象
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. C语言讲义——函数

    为实现特定目的而编写的一段可被调用的代码 简单地讲:函数就是一组语句,取了个名字 别名:子例程(routine)/方法(Method,一般面向对象的语言使用这个叫法) 函数的组成部分 以主函数为例: ...

  2. SQL,T-SQL简介

    SQL:  结构化查询语言(Structured Query Language), 简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系型数据库系 ...

  3. ASP.Net Core 3.1 使用gRPC入门指南

    主要参考文章微软官方文档: https://docs.microsoft.com/zh-cn/aspnet/core/grpc/client?view=aspnetcore-3.1 此外还参考了文章 ...

  4. git全流程

    服务器:Ubuntu 使用git前准备工作: 下载git之前先更新: apt-get update 安装git: apt-get install git 创建本地仓库: mkdir test git初 ...

  5. PyQt(Python+Qt)学习随笔:快速理解Qt 中Action是什么

    一.引言 Qt中Action这个词接触很久了,一直以来没去学习,今天终于准备学习了,查了些资料,初步总结为: Action为界面操作的抽象,应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命 ...

  6. uniapp vue 购车计算器,贷款计算器,保险计算器

    基于vue开发的买车计算器,支持uniapp 概述 项目为工作中开发,感觉比较有意思,而且能够帮助其他人快速开发功能,我就发上来了,大佬勿喷吧,没什么技术含量! uniapp打包多端[小程序类]可能会 ...

  7. vue 编程式导航

    // 命名的路由(这里的name为路由中定义的name名称) this.$router.push({ name: 'user', params: { userId: '123' }}) // 带查询参 ...

  8. react-admin-plus 正式开源, 欢迎star

    简介 基于react.ant-ui.typescript的前端微服务框架.欢迎star. 在线地址 在线demo 项目介绍   沉淀了几个月的时间,这款框架终于正式的和大家见面了!   先说一下我做这 ...

  9. redis学习之——主从复制(replication)

    准备:拥有linux环境,并安装redis mater:主机,进行写操作 slave:从机,进行读操作 一.配置 继续前边的学习.我们是拷贝redis.conf,文件到了/root /redis 下. ...

  10. PsySH作为调试器

    PsySH作为调试器 PsySH可以用来在脚本中设置一个断点,在这个断点处它将暂停并提供对shell的访问,以检查变量并在断点所在位置的上下文中运行命令.目前它不支持逐步调试(如xdebug),但在需 ...