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

前言

最近接到一个项目,主要功能是对业务单据的流程管理。但是要实现针式打印机对业务单据的连续打印。客户提供的单据格式如下,要求针式打印机一次可连续打印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个夜晚,但总归问题都解决了。

参考链接

时间: 2024-08-31 02:24:27

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

打印机套打怎么设置?套打票据及打印机自定义纸张的教程

  一些部门因为一些原因不能直接联入系统,所以必须套打. 1.明确票据套打的位置,分别是名字.日期.收费项目,收费明细.收费大小写金额.收费员名字 2.再在excel中制作相同的表格内容,就可以打票据了 3.但首先要把打印机自定义纸张,量好票据的长宽是多少. 4.从电脑左下角的"开始"---"设置"---"设备和打印机"进入打印机控制界面 5.在空白处点击鼠标右键,选择"服务器属性" 6.在"创建新格式"前

[置顶]【结果很简单,过程很艰辛】记阿里云Ons消息队列服务填坑过程

    Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的时候,会开放思路.当然不得不说,Ons的.NET接口还很不完善,甚至没有独立在Windos 2008/2012服务器测试过,希望官方加把力. 1.阿里云ONS介绍    ONS(Open Notification Service)即开放消息服务,是基于阿里开源消息中间件MetaQ(Rocke

关于水晶报表自定义纸张打印不到位问题

问题描述 纸张:241-4的4联无碳复写打印纸,比例:241mm*279.4mm现在我在服务器端机器和客户端机器都设置了自定义纸张,比例就是按照241mm*279.4mm设置的,现在打印出来的机器数据只能够最大显示到A4纸的宽度,但是打印的时候,属性都选择了按照自定义纸张的.盼高手指点.谢谢! 解决方案 解决方案二:顶啊解决方案三:你本機列印正常嗎?服務器與本機是同一型號印表機嗎?我是覺得有些印表機對自定義紙張不夠支持解决方案四:我觉得水晶报表打印特别是Web的方式的打印确实存在些问题,大家有必

缓存爬坑记 如何解决缓存雪崩

缓存爬坑记 如何解决缓存雪崩 http://www.iqiyi.com/w_19rwgvwz4d.html

win8电脑中打印机怎么自定义纸张大小

  1.首先,咱们需要返回到win8系统的传统桌面位置,之后,咱们同时按下win8电脑键盘上的win+X快捷键打开电脑的快捷菜单,在打开的快捷菜单中,咱们选择进入到控制面板选项中.   2.在打开的win8电脑的控制面板选项中,咱们首先将窗口右上角的查看方式更改为大图标,之后,在窗口中找到设备和打印机并点击进入. 3.在弹出来的新窗口中,咱们选择目前正在使用的打印机图标,然后点击上方的打印服务器属性. 4.在接下来打开的打印服务器属性窗口中,咱们将界面切换到纸张规格中,然后就可以对纸张进行自定义

windows8电脑中如何自定义纸张打印大小

  咱们生活中经常都需要使用到打印的资料,但是根据每次的需要不同,但是打印的资料的规格也是不一样的,我们知道,在word中咱们可以对打印进行自定义的设置,那么还有其他方法可以进行相关设定吗?其实升级到win8系统之后,咱们系统中也配置有了相关的功能,下面,小编就来详细的介绍一下吧! 1.首先,咱们需要返回到win8电脑的传统桌面位置,然后同时按下键盘上的win+X调出电脑的快捷菜单,之后,咱们通过快捷菜单进入到控制面板的界面中. 2.在打开的win8电脑的控制面板中,咱们首先将窗口右上角的查看方

在ASP.NET 2.0中操作数据之二十七:创建自定义排序用户界面_自学过程

简介 显示大量已经按类别(不是很多)排序的数据但没有类别分界线,用户很难找到所需要的类别.例如,数据库中只有9个类别(8个不同的类别和1个null),共81种产品.现在用一个GridView列出所有产品,假设有用户对类别Seafood的产品感兴趣,她一定会按类别排序,把Seafood产品排列在一起.排序后,用户便寻找Seafood产品开始和结束的地方.虽然是按英文字母排列类别不难找到Seafood,但仍要花些时间在GridView寻找.为了进一步的区分类别,许多网站使用类别分界线这种排序用户界面

Andorid自定义attr的各种坑_Android

在开发Andorid应用程序中,经常会自定义View来实现各种各样炫酷的效果,在实现这吊炸天效果的同时,我们往往会定义很多attr属性,这样就可以在XML中配置我们想要的属性值,以下就是定义属性值可能遇到的各种坑. 大家都知道怎么定义attr属性,一般如下: <declare-styleable name="Sample"> <attr name="custom" format="string|reference" />

reportviewer web打印自定义纸张问题

问题描述 1.打印机属性-首选项里面已经将打印纸张设置成了自定义大小.2.页面中,浏览出报表后,点击自带的打印按钮,弹出的对话框中,设置了纸张大小(自定义),成功打印.3.再次进入,还是必须设置纸张大小.没有将第一次的设置保存下来.这样每次打印都需要设置,很麻烦.能否只设置一次? 解决方案 解决方案二:有人知道吗??