打印很关键的方法,打印方法DataPrint(),将你要打印的数据信息发送到打印机就可以了,打印机将自动处理。

 public void DataPrint()
{
try
{
PrintDocument pd = new PrintDocument();
PrintDialog pdlg = new PrintDialog();
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pdlg.Document = pd;
pd.Print(); }
catch
{
//选择打印机
MessageBox.Show("请选择打印机");
DialogPrint();
}
finally
{
//MessageBox.Show("打印成功");
}
}

DataPrint

如果要手动选择打印机

 PrintDocument pd = new PrintDocument();
PrintDialog pdlg = new PrintDialog();
pd.DefaultPageSettings.PaperSize = new PaperSize("B5", image.Height, image.Width);//定义纸张大小
pd.DefaultPageSettings.Landscape = true; //横向
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pdlg.Document = pd;
DialogResult res = pdlg.ShowDialog();
if (res == DialogResult.OK)
{
pd.Print();
}

手动选择打印机的方法

打印预览的方法

 /// <summary>
/// 预览打印
/// </summary>
/// <param name="p_ShowPageSetup"></param>
public void Preview(bool p_ShowPageSetup)
{
try
{
if (File.Exists(@"123.jpg"))
{
PrintDocument pd = new PrintDocument(); PaperSize ps = new PaperSize("B5", image.Height, image.Width);
pd.DefaultPageSettings.PaperSize = ps;
pd.DefaultPageSettings.Landscape = true; //横向
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
if (p_ShowPageSetup)
{
PageSetupDialog pageSetup = new PageSetupDialog();
pageSetup.Document = pd;
DialogResult Rc = pageSetup.ShowDialog();
if (Rc == DialogResult.Cancel)
{
return;
}
}
PrintPreviewDialog previewDialog = new PrintPreviewDialog();
previewDialog.Document = pd;
previewDialog.ShowInTaskbar = true;
previewDialog.ShowDialog(); } else
{
MessageBox.Show("图片不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
finally
{
}
}

DataPreView

这里为打印预览的界面加上了图片,通过图片来控制打印的边界,但是这个地方值得注意的是打印机中的尺寸和C#程序中的尺寸的规格不一样,C#中是以图片的像素为基本单位,而打印机中则是以毫米为基本单位,而且像素是不能直接转换为毫米的,所以这个地方就会有问题。我的做法是,先在ps中定好尺寸,然后再将大小和像素统一,这样就没问题了。而到时候打印的具体设置只要在控制面板中将默认设置为横向,大小设置为你证书的大小就行了。

打印解决了,接下来将是数据的存储和信息的读取。敬请期待,谢谢你的关注。。。

C# 毕业证书打印《三》的更多相关文章

  1. C# 毕业证书打印《一》

    最近一直在做证书打印的项目,好久都没写日志了.今天将代码整理了一下,希望将自己做证书打印的一些心得写出来,也希望能和大家一起交流. 首先,证书打印必须实现打印的功能.了解打印功能是怎么实现的,打印关键 ...

  2. C# 毕业证书打印《六》

    整理思路,从新出发. 加载模版 public void loadtemplate(Label lable) { string p_tempateFile = @"fomate.xml&quo ...

  3. C# 毕业证书打印《二》

    当证书的打印功能得以实现,最关键的功能便是数据. 通过对打印的了解,打印中最关键的功能便是打印事件中的方法. private void pd_PrintPage(object sender, Prin ...

  4. C# 毕业证书打印《五》

    对鼠标操作Label的方法 #region //定义一个枚举类型,描述光标状态 private enum EnumMousePointPosition { #region MouseSizeNone ...

  5. C# 毕业证书打印《四》

    数据存储,读取控件在Panel中的位置,将控件的位置保存到xml文件中. /// <summary> /// 将当前格式写入xml /// </summary> /// < ...

  6. 【爆料】-《布莱顿大学毕业证书》Brighton一模一样原件

    布莱顿大学毕业证[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&am ...

  7. 毕业样本=[威尔士大学毕业证书]UWIC原件一模一样证书

    威尔士大学毕业证[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&am ...

  8. 毕业样本=[华威大学毕业证书]Warwick原件一模一样证书

    华威大学毕业证[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归& ...

  9. 毕业原版=[约克大学毕业证书]York原件一模一样证书

    约克大学毕业证[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归& ...

随机推荐

  1. Docker 修改默认存储位置

    首先使用 docker info 查看 docker 的基本信息 sudo docker info Containers: 0 Images: 5 Storage Driver: devicemapp ...

  2. Nginx重新编译添加模块

    原文链接:http://www.linuxidc.com/Linux/2013-06/86438.htm 找到安装nginx的源码根目录,如果没有的话下载新的源码 http://nginx.org t ...

  3. Java读取txt文件,计算2011年9月份的通话时间

    public class test2 { /** * @param args * @throws IOException */ public static void main(String[] arg ...

  4. 解决DWZ(JUI)的panel 点击关闭或者打开按钮 自己写的标签消失

    问题描述:DWZ的panel面板比较常用,我们常常需要在其标题栏上再增加一个些按钮,如下图问题出来了,增加按钮后,点面板收缩按钮,增加的按钮就消失了而且面板收缩的click事件,也跟新增的按钮绑定了, ...

  5. Linux服务器管理: 系统的进程管理pstree命令

    pstree命令是查看进程树或者结构的命令 [root@localhost~]#pstree [选项]  需要注意的是不能将 -p和-u同时使用 如果同时使用前者生效后者无效但并不报错 选项: -p: ...

  6. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  7. codevs4096 删数问题

    题目描述 Description 键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N 和S,寻找一种方案使得剩下的数字组成的新数最小. 输入 ...

  8. CodeForces 55D Beautiful numbers

    D. Beautiful numbers time limit per test 4 seconds memory limit per test 256 megabytes input standar ...

  9. Spark之Streaming

    1. socket消息发送 import java.net.ServerSocket import java.io.PrintWriter import scala.collection.mutabl ...

  10. JAVA 如何使JScrollPane中的JTextArea自动滚动到最后一行?

    1.要使JTextArea带有滚动条,需将JTextArea对象添加到JScrollPane中. JTextArea logArea = new JTextArea(15, 35); //创建JTex ...