Adobe PDF多行文本框:限制最大字号并延迟显示滚动条(JavaScript)
可填写PDF多行文本框字号自动调整问题
需求
- 内容较少时,最大字号固定为8pt
- 内容较多时,先大幅缩小字号再显示滚动条
- 用户返回编辑文本框时无字号异常
自动调整字号(Autosize)效果杂乱,因为多数内容较短,仅少数长内容导致字号不一致。
已尝试的设置与脚本
字段属性设置
- Multi-Line
- Scroll long text
- Autosize
聚焦(on Focus)JavaScript脚本
event.target.textSize=0 // 重新点击编辑时开启自动调整字号
失焦(on Blur)JavaScript脚本(字符数判断版)
var len = event.target.value.toString().length; //console.println("LEN " + len); if (len < 516) { // 516是该文本框出现滚动条前的最大字符数 event.target.textSize = 8; } else { event.target.textSize = 0; }
该方法仅在用户不换行输入连续文本时有效,若仅换行5次就会出现滚动条,因此改为按行数判断。
失焦(on Blur)JavaScript脚本(行数判断版)
// 获取文本字段及其内容 var textField = event.target; var text = textField.value; // 统计行数的函数 function countLines(text) { var lines = text.split("\n").length; return lines; } // 计算行数 var lineCount = countLines(text); // 判断行数是否在允许范围内 if (lineCount <= 4) { textField.textSize = 8; } else { event.target.textSize = 0; // 开启自动调整字号 }
问题:else逻辑未生效。当行数超过4行时,失去焦点后字号仍跳回8pt,仅在聚焦时显示约4pt的正确字号。
内容的提问来源于stack exchange,提问作者Walker Walker
相关产品推荐
相关产品推荐

