先将pos机设置为默认

控制面板->打印机和传真->右键->服务器属性

首先创建 ClassPrint 对象

using System;
using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Text; namespace PrintWinform
{
class ClassPrint
{
//定义一个字符串流,用来接收所要打印的数据
private static StringReader sr;
//str要打印的数据
public static bool Print(StringBuilder str)
{
bool result = true;
try
{
sr = new StringReader(str.ToString());
PrintDocument pd = new PrintDocument();
pd.PrintController = new System.Drawing.Printing.StandardPrintController();
//pd.DefaultPageSettings.Margins.Top = 2;
//pd.DefaultPageSettings.Margins.Left = 0;
//pd.DefaultPageSettings.PaperSize.Width = 320;
pd.DefaultPageSettings.Margins = new Margins(, , , ); //pd.DefaultPageSettings.PaperSize.Height = 5150;
pd.PrinterSettings.PrinterName = pd.DefaultPageSettings.PrinterSettings.PrinterName;//默认打印机
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pd.Print();
}
catch (Exception ex)
{
result = false;
}
finally
{
if (sr != null)
sr.Close();
}
return result;
} private static void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
Font printFont = new Font("Arial", );//打印字体
float linesPerPage = ;
float yPos = ;
int count = ;
float leftMargin = ev.MarginBounds.Left;
float topMargin = ev.MarginBounds.Top;
String line = string.Empty;
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
while (count < linesPerPage && ((line = sr.ReadLine()) != null))
{
yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
count++;
}
// If more lines exist, print another page.
if (line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
}
}

然后UI form

    private void button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append(" 心理测评一体机 \n");
sb.Append(" 职业倾向人格临床量表 \n");
sb.Append("***********************************************\n");
sb.Append("E量表得分为:32分,您的性格内向\n");
sb.Append("N量表得分为:28分,您的情绪稳定性高\n");
sb.Append("P量表得分为:56分,您的倔强性一般\n");
sb.Append("L量表得分为:51分,您的掩饰性一般。\n");
sb.Append("***********************************************\n");
sb.Append(" 北京XXXX科技有限公司\n");
sb.Append(" 测评结果仅供参考,最终结果请以心理咨询师为准\n");
ClassPrint.Print(sb);
}

C# print pos winform的更多相关文章

  1. pygame学习笔记

    pygame参考文档pdf版:pygame API html版 pygame API 石头剪子布的简单小游戏,待改进的地方,自适应大小.感兴趣的小伙伴可以依据get_surface()返回值(即当前窗 ...

  2. 51. N-Queens

    题目: The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two que ...

  3. 【leetcode】Search for a Range

    题目描述: Given a sorted array of integers, find the starting and ending position of a given target valu ...

  4. poj 1141 Brackets Sequence (区间dp)

    题目链接:http://poj.org/problem?id=1141 题解:求已知子串最短的括号完备的全序列 代码: #include<iostream> #include<cst ...

  5. tornado 学习笔记7 RequestHandler功能分析

           在第5部分讲到,构建一个tornado网站,必须包含一个或者多个handler,这些handler是RequestHandler的子类.每个请求都会被映射到handler中进行处理,处理 ...

  6. Reed-Solomon码,QR

    原文: Reed–Solomon codes for coders参考: AN2407.pdfWIKI: 里德-所罗门码实现:Pypi ReedSolo #译注:最近看到了RS码,发现还挺有意思的,找 ...

  7. Deformity ASP/ASPX Webshell、Webshell Hidden Learning

    catalog . Active Server Page(ASP) . ASP.NET . ASP WEBSHELL变形方式 . ASPX WEBSHELL变形方式 . webshell中常见的编码转 ...

  8. python生成中文验证码,带旋转,带干扰噪音线段

    # -*- coding: utf-8 -*- """ Created on Sun Oct 4 15:57:46 2015 @author: keithguofan & ...

  9. RDLC直接打印帮助类

    代码 /// <summary> /// 打印帮助类 /// </summary> public class PrintHelper { private int m_curre ...

随机推荐

  1. Python写一个目录检索器

    前言: 昨天看了Demon哥发的干货,有了次篇博文 干货链接: https://www.soffensive.com/2018/06/exploiting-blind-file-reads-path. ...

  2. echart改变legend样式及分页

    legend: { type: 'scroll', orient: 'horizontal', bottom:0, left:'center', itemGap: 0, itemWidth: 10, ...

  3. 4-30 HTML 细节摘录

     <b> 定义粗体文本. <big> 定义大号字. <em> 定义着重文字. <i> 定义斜体字. <small> 定义小号字. <s ...

  4. binary tree

    一.中序线索化 二叉树节点定义: class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; int isle ...

  5. CompletionPort

    [CompletionPort] 1.CreateIoCompletionPort.此方法用于创建与绑定.此方法调用后,socket即退出,只能通过CompletionKey来辨认是哪个socket的 ...

  6. mysql常用语句及关键字

    一.常用sql语句 1.创建数据库userCREATE  DATABASE user; 2.删除数据库userDROP DATABASE user; 3.使用数据库userUSE user;显示数据库 ...

  7. N 秒打开一个新窗口

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. 删除链表中的元素 · Remove Linked List Elements

    [抄题]: Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> ...

  9. Qt5 How to translate App UI languages

    Adding new language file name in app.pro file. TRANSLATIONS += lg_ch.ts \ lg_en.ts \ lg_new.ts Runni ...

  10. mybatis框架中的输入映射

    mybatis.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 输入类型: 1.传递简单类型 可以参考我之前的对于数据库增删改查的博文. ...