我正在尝试调整多行 pdf 表单字段中的行距。 这些是我已经尝试过的事情:
使用富文本字段并通过“表单字段文本属性”工具栏调整行距: 这有效,但是当您重置表单时,更改会丢失。
使用 JavaScript: 我向多行文本字段添加了击键事件。
var spans = event.richValue;
if (spans !== undefined) {
for ( var i = 0; i < spans.length; i++ ) {
spans[i].linespacing = 14; // linespacing
}
event.richValue = spans;
}
使用此脚本,行距工作得很好,但无法再手动插入换行符。一旦执行 event.richValue = spans
,它们就会被删除。
我尝试的最后一件事是对该脚本进行了稍微修改的版本:
var spans = event.richValue;
if (spans !== undefined) {
for ( var i = 0; i < spans.length; i++ ) {
spans[i].linespacing = 14; // linespacing
if (i < spans.length - 1) spans[i].text += "\r";
}
event.richValue = spans;
}
我尝试通过在每个跨度的末尾添加“\r”来修复消失的换行符。结果,Acrobat 还将双空格视为单个跨度,因此此脚本在两个空格后添加换行符。
有没有办法在多行文本字段中永久设置行距而不弄乱所有内容?
最佳答案
我想我自己找到了解决方案。仔细研究 SPAN 属性后,我偶然发现了 endParagraph
。
这是我最终的自定义击键脚本:
var spans = event.richValue;
if (spans !== undefined && event.willCommit) {
for ( var i = 0; i < spans.length; i++ ) {
spans[i].textSize = 9; // font size
spans[i].linespacing = 14; // linespacing
// restore line breaks
if (spans[i].endParagraph) spans[i].text += "\r";
// reset styles to default
spans[i].fontStyle = "normal";
spans[i].fontWeight = 400;
spans[i].strikethrough = false;
spans[i].underline = false;
spans[i].textColor = color.black;
spans[i].alignment = "left";
spans[i].fontFamily = ["Arial"];
}
event.richValue = spans;
}
我没有做太多测试,但看起来这个解决方案工作正常。
关于javascript - 多行字段中的行间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25380882/