首页> 中文期刊>网络新媒体技术 >PB中西文字符串的打印控制技术

PB中西文字符串的打印控制技术

     

摘要

@@作者利用PowerBuilder提供的字符串处理函数和打印控制函数,编制了适当的处理算法,成功地实现了中西文字符串的打印控制,使得输出中西文字符串时的字体、字号、打印位置、打印宽度等都可由用户自行设置和改变.为了控制字符串的打印宽度,必须对字符串进行截取分解,以得到合适宽度的子串,而在截取分解子串时要判断子串的最后一个字符是否为中文字符,若是则采用2字节进行截取,反之采用1字节进行截取.下面给出打印控制技术的程序清单:rnstring str,substr,slint wid,ry,px,py,fi,fj,fllong job,strlenrnwid=″…″str=″…″ry=200px=0py=0job=printopen()rn∥打印宽度赋值∥中西文字符串赋值∥打印高度赋值∥打印位置x赋初值∥打印位置y赋初值∥打开打印作业rn∥定义并设置打印字体、字号rnprintdefinefont (job, 1,"宋",-10,400, fixed!,anyfont!,false,false)printsetfont rn(job,1)rn∥若str的宽度大于wid,需采用打印宽度控制算法进行处理rnif printwidth(job,str)>wid thenrnfj=1substr=len(str)for fi 1 to strlenfl=fi-fj+1substr=mid(str,fj,fl)rn∥字符串起始位置赋初值∥字符串长度赋值∥子串截取长度赋初值∥截取子串rnsl=right(substr,1)rn∥截取子串最右边一个字符rn∥若最右边一个字符为中文字符,截取长度加1,重新截取子串rnif asc(s1)>127 thenfl+ +rnfi+ +substr=mid(str, fj, fl)end ifrn∥若子串宽度达到打印宽度,进行输出处理rnif printwidth(job,substr)>=wid then rnprinttext(job,substr ,px,py)rn∥打印子串rnpx=0py=py+ryfj=fi+1rn∥修正下一打印位置x∥修正下一打印位置y∥修正下一子串的起始位置和截取长度rnelsern∥若子串已截取到str的尾部,进行输出处理rnif fi=strlen thenprinttext(job,substr,px,py)rn∥打印子串rnpx=0py=py+ryend ifend ifrn∥修正下一打印位置x∥修正下一打印位置yrnnextrn∥若str的宽度小于等于wid,直接进行输出处理rnelseprinttext(job,str,px,py)px=0py=py+ryend if printclose (job)rn∥打印字符串∥修正下一打印位置x∥修正下一打印位置y∥关闭打印作业rn此程序已经过上机调试,达到了预期的输出效果.

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号