前言

最近接到一个项目,主要功能是对业务单据的流程管理。但是要实现针式打印机对业务单据的连续打印。客户提供的单据格式如下,要求针式打印机一次可连续打印50-100张单据。

接到需求以后,迅速开搞,单据的流程管理开发非常顺利。但针式打印机连续打印单据的开发过程异常艰辛。本文主要讲述开发选型的过程、遇到的问题、以及填坑过程。

选型

之前开发过的票据打印程序使用的是GoldPrinter(金质打印)。不过客户提供的单据格式和传统的发票类票据格式不太一样。思来想去决定使用报表工具。之前使用过ActivexReport,但是感觉太庞大了。发现.NET自带了报表工具RDLC,决定尝试一下。

RDLC 是一个坑

根据用户提供的纸张格式,结合网上的教程,2个小时就开发出了RDLC的报表。开发完毕后感觉自信感爆棚,我就想问"还有谁?"。

设置纸张大小设置横向打印。

使用针式打印机测试打印。发现一个比较奇怪的问题。只有将纸张竖向放入针式打印机才能正常打印。横向放入只打印一半。这个时候,我还不理解为什么。从网上胡乱搜索资料。搜索到一些RLDC不能自定义纸张,RDLC不能横向打印机等文章。当时也不是很理解。捣鼓了一天一直不行就放弃了,改用ActivexReport

ActivexReport 开发

ActivexReport的开发过程也比较简单,开发报表差不都也是用了2个小时的时间。开发初期还是使用的和RDLC报表参数的设置。

使用打印机测试打印,问题照旧。还是竖着能打印,横着打印一半。此时挫败感非常强烈,但是生活还得继续啊。开始分析思考问题。

  • 是不是打印机设置有问题?、
  • RDLC网上说的问题到底什么意思。
  • 感觉好像也没什么问题啊,使用的A4纸打印机。横向打印和竖向打印的放纸也都是一样的。是不是应该调整报表?

带着上面的问题,楼主开始搜索。后来找到一篇文章说针式打印机实现连续打印需要自定义纸张,具体过程如下。

[1] 打印机添加自定义纸张设置成纵向,调整纸张的宽度和高度。

[2] 调整报表的纸张于面前打印机设置的纸张一样的规格。

测试打印成功了,完美。

连续打印调试

连续打印的测试过程还是比较轻松的。用了两个晚上搞定的。第一夜将纸张的高度设置成了14.0,打印了20张以后。打印错位就比较严重了。隐隐感觉是纸张设置的有点大了。

于是开始各种找资料,使用的打印机型号EPSON LQ-635K,从爱普生的官网下载了LQ-630K635K730K735K新机使用指南。在文档中发现常用的纸张规格有21.4*13.97。瞬间感觉有救了,晚上回家重新设置了报表纸张格式和打印机的自定义纸张格式。测试打印了30页,没有出现偏移。爱普生的打印机还是非常靠谱的。说明书更靠谱。

总结

通过这个项目了解到了微软的RDLC报表,也学会了如何使用。最终也明白了RDLC目前存在的问题,设置自定义纸张大小如果宽度大于高度,报表会将纸张自动改成横向的。所以想实现针式打印机连续打印是不太可能的。也了解了针式打印机的安装使用,以及自定义纸张的意义。耗费了楼主2个白天3个夜晚,但总归问题都解决了。

参考链接

  • 针式打印机打印241×140mm连续纸时如何调整设置技巧
  • 针式打印机进纸安装教程
  • 爱普生LQ-630K打印机的打印方向是竖的怎么改成横向的
  • C# WinForm开发系列 - RDLC

C#针式打印机自定义纸张连续打印爬坑过程相关推荐

  1. Python+Django+Nginx+Uwsgi 详细部署过程(爬坑过程,可以了解各个软件的执行流程,看过)

    这个部署,我真的是爬了好久的坑,才爬出来,所以给大家分享一下,避免入坑. 首先我们先了解一下相关知识: wsgi:   一种实现python解析的通用接口标准/协议,是一种通用的接口标准或者接口协议, ...

  2. 微信支付返回-1的问题集锦与各种爬坑过程

    之前公司做微信支付的时候,负责这一模块的同事,天天抱怨微信支付的各种坑还有文档的不清晰,最近帮朋友做了一个app,里面就有这一功能,看了一上午文档,瞬间发现我的语文也没学好,各种看不懂就算了,提供的代 ...

  3. Nvidia TX2爬坑过程——1、入手刷机教程

    一.资源简介 TX2作为TX1的改进版,资源配置相当强劲. 1. 模组配置  256 core NVIDIA Pascal GPU.  ARMv8 (64-bit) Multi-Processor ...

  4. 京东jos对接爬坑过程

    需求:获取京东商家的订单 环境:java,官方宙斯SDK 1.申请账号注册开发者创建应用参考官方文档注册 注意一点是回调页面url:地址为用户访问应用的地址,当用户访问您的应用时,jos会把相关授权参 ...

  5. Nuxt爬坑系列之vuex

    坑的背景介绍 要用 bootstrap-vue 这个vue的ui框架来重构公司的官网,因为公司官网之前使用bootstrap搭建的,现在想用nuxt框架来重构,恰好bootstrap出了结合vue的版 ...

  6. virtualbox 安装kali linux虚拟机,kali Linux安装virtualbox虚拟机之爬坑经历

    原标题:kali Linux安装virtualbox虚拟机之爬坑经历 很多kali爱好者想把kali linux作为系统使用,但是有些win下的程序有时候也需要用到,此时需要虚拟机. kali系统在安 ...

  7. 阿里云EMAS的爬坑之旅

    EMAS爬坑之路 一.Sophix 二.崩溃分析 1. Application not Set 2. 崩溃日志后台无数据 总结 我将分块讲解不同模块的爬坑之路,对于Sophix我将在一篇单独的博文中进 ...

  8. python闲鱼爬虫_Python 爬虫爬坑路(二)——B站图片,咸鱼的正确 GET 姿势

    前言 昨天在写完 入门级爬虫之后 ,马上就迫不及待的着手开始写 B站的图片爬虫了,真的很喜欢这个破站呢 (〜 ̄△ ̄)〜 这里不涉及到 Python 爬虫的高级技巧,没有使用框架,没有考虑反爬机制,没有 ...

  9. SMARTFORM A5单据打印(自定义纸张/针式打印机)格式问题

    一张A5横放的单据,做SmartForm时很自然的选择了DINA5,然后横放,测试的时候一直用激光打印机,感觉挺正常.实际使用时发现异常,不得己自己定义了一个A5横放的自定纸型(210mmX148mm ...

  10. 萌新爬坑系列-百度小程序自定义组件

    萌新爬坑系列-百度小程序自定义组件 百度小程序自定义组件的一个小问题 本人小萌新一个,毕业不久,入行前端也不久,摸索着写点东西,也当是自己爬坑的一个记录吧. 最近做了微信小程序,转百度小程序简直痛不欲 ...

最新文章

  1. Java面试之Java基础下册(含答案)
  2. 达摩院2021年十大科技趋势出炉:量子计算、脑机接口、第三代半导体应用……...
  3. 2008R2文件服务器迁移到2012R2
  4. [概统]本科二年级 概率论与数理统计 第四讲 连续型随机变量
  5. php 获取用户名,PHP如何获取当前windows系统的登录用户名
  6. promise间隔时间添加dom
  7. PHP调用外部服务获取IP地域信息实现信息的地域性关联
  8. 使用Sidecar支持异构平台的微服务
  9. SpringCloud:Ribbon负载均衡(基本使用、 负载均衡、自定义配置、禁用 Eureka 实现 Ribbon 调用)
  10. 何雯娜 (为奥运冠军名字作诗)
  11. qstandarditemmodel 重写data函数后无法实现拖拽_实现类似百度网盘上传的功能
  12. 交易系统高并发下的幂等性设计原则
  13. 车牌识别的matlab程序(程序_讲解_模板),车牌识别的matlab程序(程序讲解模板)
  14. ajax注册用户名为空,怎么用ajax和js检测用户名是否合法和不能为空
  15. mysql 5.1 到 mysql 5.2的出现的索引BTREE问题 use near 'USING BTREE
  16. open函数返回-1_牛逼!Python函数和文件操作(长文系列第3篇)
  17. Android CI with jenkins in ubuntu
  18. 优秀的求职者,是如何巧妙应对面试提问呢?
  19. oracle10g精简版配置,oracle 10g 精简版安装步骤分享
  20. BeautifulSoup中find和find_all的使用

热门文章

  1. 奉子成婚,永远不可能成为潮流
  2. 【LLS-Player】VS构建
  3. ListFields
  4. 邮箱客户端 gmail支持_如何在新的Gmail中启用离线支持
  5. linux查看硬盘插槽_SSD小讲堂丨自己动手丰衣足食 手把手教你安装M.2固态硬盘
  6. 批量改变图片尺寸大小的方法!一分钟搞定!
  7. 让苹果CEO库克折服的程序员仅10岁!?
  8. d3中为每个rect元素绑定带数据的点击事件
  9. 在MAC下如何显示隐藏文件夹
  10. 汇编语言学习-DOSBox-MASM-安装及使用教程