javascript - 多行字段中的行间距

标签 javascript acrobat acrobat-sdk

我正在尝试调整多行 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/

相关文章:

asp.net - 动态 PDF 并可通过 ASP.net 访问

user-interface - Acrobat DC - 更改应用程序背景颜色? (GUI太亮了)

javascript - 基于美分的条件格式

python - 使用 Python pywinauto 自动化 acrobat

javascript - Kendo UI 图表中的 Y 轴和 X 轴标签

javascript - 为什么 setTimeout 返回数字而不是文本? ReactJS

php - 使用参数重新加载页面

javascript - jQuery imgAreaSelect - 从表单传递的图像和区域选择问题

javascript - 如何使用pdf在浏览器中进行重定向?

javascript - 如何为 javascript "this.path.split(' "/');"编写 C++ 代码