VFP不安装打印驱动直接调用打印而且不自动进纸

2024-04-27 03:58

本文主要是介绍VFP不安装打印驱动直接调用打印而且不自动进纸,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   之前程序要打印都是利服报表(report),设置好打印格式后,就调用report from 来打印,这样有其优点就是更改打印格式容易,但缺点是一定要安装打印机,而且要设好纸张,比如设好了A4纸,那么打印时每走一张A4纸高度就会自动进纸重新打第二页,而且打印驱动通常都自动设了页边距,这部份页边距不同于打印时设置的那些页边距,驱动中设有的页边距是不可调的,也就是说,要想打一页纸从最上边一直打印到最下面是不可能的,他总是会留下一定的上边距下页距.

   这对于要一此特殊的情况就不适用了,比如POS的打印,大多的POS打印机都没有打印驱动的,就算有要找也麻烦,找了还要装,重装了电脑,又要重装驱动,这样对于一套软件来说,其维护的成本无形就增大了,而且中国人节约的优良传统也是其最大的障碍,很多公司都要打日记帐,一打就是几十页甚至几百页,如果每一页都留有上下边距,那无形中就是一个很大的浪费,正因为此,就引申出了今天这个文章.

 

旧版本的VFP是用@ Say 来送出打印的,这个功能一直被继承到了现在,要实现不用驱动,直接打印,最主要就是利用@ Say 把所要打印的内容送到一个*.PRN打印文件中,然后,再把这个文件复制到LTP的打印口,就可以了.代码如下.

SrPrint()
SET SAFETY OFF
SET DEVICE TO FILE output.prn             &&生成打印文件

SELECT 0
USE _lj
Gs1=ALLTRIM(Gs_F)
USE

@ PROW(),0 SAY GS1+IIF(EMPTY(_Spdjhc1.Sm1_F)," 草稿","")
@ PROW()+1,0 SAY "小票清单"
@ PROW()+1,0 SAY "日期:"+DTOC(DATE())+" 收银:"+ALLTRIM(_Spdjhc1.P_Zdr_F)
@ PROW()+1,0 SAY _Spdjhc1.Sm1_F+" 会员:"+ALLTRIM(_Spdjhc1.P_Hy_F)
@ PROW()+1,0 SAY "──────────────"
@ PROW()+1,0 SAY " 品名                批号"
@ PROW()+1,0 SAY " 厂家"
@ PROW()+1,0 SAY " 批准文号"
@ PROW()+1,0 SAY " 数量       售价     售额"
@ PROW()+1,0 SAY "──────────────"
SELECT _Spdjhc2
SCAN FOR NOT EMPTY(Spzd_Sp_F)
 @ PROW()+1,0 SAY PADR(LEFT(_Spdjhc2.P_Sp1_F,20),20," ")+ALLTRIM(_Spdjhc2.Scph_F)  &&商品 批号
 @ PROW()+1,0 SAY ALLTRIM(_Spdjhc2.P_Kh1_F)       &&厂家
 @ PROW()+1,0 SAY ALLTRIM(_Spdjhc2.Pzwh_F)       &&批准文件号
 @ PROW()+1,0 SAY ALLTRIM(STR(_Spdjhc2.Sl_F,20,4))     &&数量
 @ PROW(),9 SAY ALLTRIM(STR(_Spdjhc2.Xsdjhs_F,20,2))     &&售价
 @ PROW(),18 SAY ALLTRIM(STR(_Spdjhc2.Xsjehs_F,20,2))    &&金额
 @ PROW()+1,0 SAY "──────────────"
ENDSCAN
@ PROW()+1,0 SAY "应收:"+ALLTRIM(STR(_SPDJHC1.sxlj_F,20,2))+" 实收:"+ALLTRIM(STR(_SPDJHC1.TETSSJE_F,20,2))
@ PROW()+1,0 SAY "找零:"++ALLTRIM(STR(_SPDJHC1.TETSSJE_F-_SPDJHC1.sxlj_F,20,2))
@ PROW()+2,0 SAY ""
@ PROW()+1,0 SAY ""
SET DEVICE TO SCREEN
COPY FILE output.prn TO lpt1.dos           &&送到LPT1打印口
SET SAFETY ON

这篇关于VFP不安装打印驱动直接调用打印而且不自动进纸的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939459

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务