过长邮寄地址折行打印技术
来源:互联网 发布:电脑无法观看淘宝视频 编辑:程序博客网 时间:2024/04/29 14:50
过长邮寄地址折行打印技术
在邮政详情单打印过程中,经常遇到一个这样的问题,就是地址过长,无法在一行打印完成,需要分成两行或多行来打印。而分行打印,不能简单地进行字符的截取,这里涉及到汉字的截取会出现半个汉字导致的乱码问题,还有一个就是地址中会有数字,而数字大多数是门牌号等,我们不想把这样的数字分成两半来打印。
为此,设计了一个函数,作用是把这地址格式化。需要两个参数,一个是地址字符串,另外一个是一行需要打印的字符长度。
function strWrap1(const ostr: widestring; const mint: integer): string;
var
i: integer;
nstr, tmp: widestring;
tmpstr, tmps: string;
function isbd(tmp: widestring): boolean;
begin
if pos(tmp, ', 。 ;0123456789#') > 0 then
result := true
else
result := false;
end;
begin
nstr := '';
tmpstr := '';
for i := 1 to length(ostr) do begin
tmp := copy(ostr, i, 1);
if (tmp = #10) or (tmp = #13) then continue;
tmps := tmp;
if (length(tmpstr) >= mint ) then begin//字符数够了
if (length(tmpstr) = mint ) and (length(tmps) = 1) then begin //字母
if isbd(tmp) then begin
nstr := nstr + tmp
end
else begin
nstr := nstr + '?' +tmp;
tmpstr:=''; //复位
end;
end else begin
tmpstr := tmp;
if isbd(tmp) then begin //
nstr := nstr + '?' + tmp ;
tmpstr := ''; //复位
end else //非句号
nstr := nstr + '?' + tmp;
end;
end else begin
tmpstr := tmpstr + tmp;
nstr := nstr + tmp;
end;
end;
result := nstr + '?';
end;
在自己的实际打印程序中,先是调用该函数来格式化该地址,再循环打印每一行。
…
toaddr := strwrap1(toaddr,20);
h:=0;
while pos('?',toaddr)>0 do
begin
tmptoaddr := copy(toaddr,1,pos('?',toaddr)-1);
delete(toaddr,1,pos('?',toaddr)); //打印后删除
PrintText(X,Y + h, tmptoaddr ,'PInitPoint.txt',12);
h := h +5; //每行之间的距离
end;
…
- 过长邮寄地址折行打印技术
- 邮寄信封地址打印办法
- 邮寄地址翻译
- 阿里云邮寄地址
- 程序设置,url地址过长配置问题
- 英国邮寄
- 邮寄发送
- 南京邮寄
- 《Python和R数据挖掘技术》50本内部教材,全免费邮寄!
- 打印技术
- 去掉IE浏览图片当鼠标放到图片上时出现快捷工具(打印、邮寄、另存等)
- 解决MyBatis进行数据库操作时因参数过长导致打印日志过长的问题
- 技术地址
- 关于符号运算结果过长无法屏幕打印的问题
- 打印虚函数地址
- 打印函数地址
- 变量地址打印保存
- C地址打印
- 商业计划书
- linux下b43无线网卡使用
- .NET 3.5的版本问题
- 在ORACLE 中使用Instr和Decode函数处理组合查询
- 用SQLServer2005还原数据库的时候出错,提示错误信息"C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Data/db.mdf的目录查找失败..."。这样的错误偶尔会遇到,请问是怎么回事,该怎
- 过长邮寄地址折行打印技术
- 学JAVA经验
- Dbgrideh 动态checkBox 列生成技巧
- C#引用母版
- 开发网站,您会选择什么字符编码?
- Adding Controls to Windows Forms at Runtime
- html中实现realPlay播放器
- java图形界面的时间控件
- oracle日期