请问如何实现单据的即打即停?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问如何实现单据的即打即停?相关的知识,希望对你有一定的参考价值。

具体的说就是如何实现对一个打印作业走纸的灵活控制,可以不分页一直到一个打印作业的结束。最好是pb,delphi(fastreport)的方法。

另外,通过指令集向打印机发送打印命令的方法就不用再说了。
如果有动态控制纸张的长度的办法或者其它方法请提供win32 api的接口函数或者相关代码,如果问题解决,再给与导分200绝不食言,谢谢!

动态设置打印纸的规格可不可以,根据需打印的内容量计算每次打印的纸张长度.

我没试过,只是想法

--------网上找了点资料-----
FR 3.x Programmer\'s manual

Modifying report page’s properties
Sometimes it is necessary to modify report page settings (for example, to modify paper alignment or size) from a code. The TfrxReportPage class contains the following properties, defining the size of the page:

propertyOrientation: TPrinterOrientation default poPortrait;

property PaperWidth: Extended;

property PaperHeight: Extended;

property PaperSize: Integer;

The «PaperSize» property sets paper format. This is one of the standard values, defined in the Windows.pas (for example, DMPAPER_A4). If a value to this property is assigned, FastReport fills the «PaperWidth» and «PaperHeight» properties automatically (paper size in millimeters). Setting the DMPAPER_USER (or 256) value as a format, would mean that custom paper size is set. In this case, the «PaperWidth» and «PaperHeight» properties should be filled manually.

The following example shows, how to modify parameters of the first page (it is assumed that we already have a report):

var

Page: TfrxReportPage;

the first report’s page

Page := TfrxReportPage(frxReport1.Pages[0]);

modify the size

Page.PaperSize := DMPAPER_A2;

modify the paper orientation

Page.Orientation := poLandscape;
------------------------

参考资料:http://delphi.ktop.com.tw/board.php?fid=100&tid=70185

参考技术A 很复杂的算法 估计给200块都没人回答 参考技术B FastReport,页面设为不限长度 参考技术C 就直接安装就行了呀,你还需要做什么呢?? 参考技术D de

报表工具实现单据套打

实际项目开发中,很多情况会涉及到单据的打印。即在一张印刷好的空白单据上,准确无误地打印上单据的内容。用传统的报表工具,我们通常会用尺子量每一个数据区域的位置,然后在屏幕上根据尺子量出的尺寸设计每一个格子的位置,反复调试。不过,这样制作一张单据打印的报表费时费力,而且一旦单据格式发生变化,报表制作人员又要重新制作报表。

接下来,小编给大家介绍一款可以轻松搞定套打问题的爆款神器 — 润乾报表 (别问小编为什么这么热心 – 任性!!!),此神器采用底图描绘的方案来解决套打时报表绘制的问题。具体操作如下:

首先,准备扫描空白单据。

注意:扫描仪单位为像素,保证其和标准纸张大小一样,扫描分辨率一般为 72dpi。得到空白单据图片如下图:

技术分享图片技术分享图片

其中发票名称、表格线、表格中的各个标题都是空白发票已经印刷好的,报表需要填写生成的是空白部分。

接下来,开始制作报表

第一步,新建空白报表,并插入背景图(在菜单栏上选择“报表 – 报表属性 – 其他 – 背景图 – URL 或者表达式”,然后选择要作为背景图的单据扫描件 ,最后选择“ 确定”)。

技术分享图片技术分享图片

然后,我们调整报表的行高列宽,使报表中要填入数据的单元格与扫描件空白区域对应,比如:C2 单元格对应“发票单位”,D5 单元格对应“日期”等,如图蓝色字体所示。本例中是直接填写的字符串,实际应用中也可以从相应的数据集中读取。

技术分享图片技术分享图片

接下来,在”报表属性”中设置”打印背景图”并且”报表不分页”。如下图:

技术分享图片

技术分享图片

最后,保存报表就可以进行展现打印了。

好了,一个完美的单据报表就完成了。我们来回顾一下其中的关键操作:

  1. 空白单据引用

2. 打印背景图

3. 图表制作

最最后,温馨提示:

不同扫描仪的尺寸单位不同,扫描时如果没有选择扫描的像素,会导致扫描出来的图片大很多。

解决办法:扫描的时候设置像素单位,使得最后的图片与目标纸张大小一致,或者用画图软件根据打印机的分辨率将图片压缩成目标纸张大小。

像素换算方法为:像素点数 = 纸张宽度(毫米)* 25.4(换算成英寸)* 分辨率(常用打印机是 72dpi)

作者:IBelieve

链接:http://c.raqsoft.com.cn/article/1533028271062?r=IBelieve

来源:乾学院

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上是关于请问如何实现单据的即打即停?的主要内容,如果未能解决你的问题,请参考以下文章

(紧急求助)请问PB中如何实现单据的审核,单据的状态有未审核以及审核两种状态,谢谢

[UE4]让子弹飞

如何实现从一个进程到另一个进程的即发即弃消息传递?

会计科目分配后如何取消?

金碟K3软件:没有对应单据体

前端报表如何实现无预览打印解决方案或静默打印